Monday, April 25, 2005

Notes Release Candidate

Download Notes [Non-Universal Binary]
Notes

If you have any suggestions on improving Notes, e-mail me at: troypayne(at)gmail(dot)com

Implementation Plan



Click image to enlarge.

Deployment Diagram



Click image to enlarge.

Known Bugs

    Known Bugs
  • Drag & Drop from within Notes.
  • Search highlight results remain highlighted.
  • Multiple Grab windows open is not supported or handled correct.
  • Cards does not tell users when they are incorrect.
  • Random crashing caused by memory management.
  • Audio playback is not implemented.
  • Text must be present in the textbox to enter image or audio links.
  • Outline mode is not user friendly.
  • Deleting a calendar event in Notes does not unhighlight the calendar date.

Self-evaluation

For the pdf version of my Self-evaluation, click SelfEvaluation.pdf.

Lessons Learned

For the pdf version of my Lessons Learned, click LessonsLearned.pdf.

Wednesday, March 30, 2005

Formal Scenarios

For the pdf version of these Formal Scenarios, click Scenarios.pdf.

Human-Computer Interface Description

For the pdf version of this Interface Description, click InterfaceDescription.pdf.

Screen Shots





Click images to enlarge.

Low-Level Class Diagrams



Click image to enlarge.

Object Diagrams









Click images to enlarge.

CRC Cards



Click image to enlarge.

Class Diagram



Click image to enlarge.

Tuesday, January 18, 2005

Use Cases

For the pdf version of the use cases, click UseCases.pdf.

Use Case: AddNote


Precondition
The actor has successfully loaded up a course file.15.

Main flow of events
The use case starts when the actor presses the Add button1. The actor will be prompted to enter a title and then commit by pressing the Tab key to change focus to the text field. The actor can then type in outline notes10, free notes12, or draw using the scratch pad11.

Exceptional flow of events
If the actor does not enter a title, the null placeholder will be the title.

Exceptional flow of events
If the actor does not press the Tab key, the actor can use the mouse to change focus to the text field.

Postcondition
If the AddNote use case does not end with a new note added to the course, nothing in the entire system has changed when this use case ends. If a new note was added to the course then the Notes list is updated with the new note entry and there is a new text field to enter notes.


Use Case: CreateFlashCardsAndStudy


Precondition
The actor has successfully loaded up a course file.15.

Main flow of events
The use case starts when the actor opens the flash cards drawer19. The actor then clicks the add flash card button indicated by a plus sign5. A dialog window will prompt the actor to enter a question. The actor then presses enter. Another dialog window will prompt the actor to enter a answer. The actor then presses enter. The actor may repeat this step as many times the actor wishes. The actor then presses the Start button7. The flash cards drawer will close to hide the answers from the actor19. The system voice will read the questions and wait for the actor to answer correctly27. This process is repeated throughout the duration of entered flash cards using set size specified in the preferences16. After completion of one set, it will test the previous set plus a new set.

Exceptional flow of events
If the flash cards drawer is already open, then the actor does not need to open it.

Exceptional flow of events
If the actor does not enter any question, the entire process will cancel.

Exceptional flow of events
If the system speakers are not on the actor will not hear any of the questions.

Exceptional flow of events
If the actor answers incorrectly, the system voice alerts the actor.

Postcondition
If the CreateFlashCardsAndSutdy use case does not end with studying of a set of flash cards, there can be new flash cards added and nothing else in the entire system has changed when this use case ends. If the use case does end, the actor is more educated.


Use Case: Grab


Precondition
The actor has successfully loaded up a course file15, added a new note1, and attached an iSight camera.

Main flow of events
The use case starts when the actor opens the grab drawer20. The actor presses the space bar "grabbing" a picture and an audio wrap associated with it14. The actor then clicks the image thumbnail loading it into the image viewer14. The actor then plays the audio wrap associated with it14.

Exceptional flow of events
If the actor presses a key other than the space bar, nothing happens.

Exceptional flow of events
If the actor does not press the Tab key, the actor can use the mouse to change focus to the text field.

Exceptional flow of events
If the system speakers are not on the actor will not hear any of the questions.

Postcondition
If the Grab use case does not end with a image capture and audio wrap added to the course, nothing in the entire system has changed when this use case ends. If the use case does end, the actor has a new image and audio wrap associated with the image for viewing and listening.

Supported Activity List

For the pdf version of this supported activity list, click SupportedActivityList.pdf.

Supported Activity List for Notes
1. Adding a note to the course file.
2. Removing a note from the course file.
3. Adding a pdf, for instance a syllabus, to the course file.
4. Adding a image to the course file.
5. Creating flash cards,
6. Importing xml files of flash cards.
7. Learning with flash cards.
8. Taking pictures of the board and audio wraps.
9. Adding a homework assignment to the reminder calendar.
10. Creating notes with an outline mode.
11. Creating notes with a scratch pad mode.
12. Creating notes with a free text mode.
13. Highlighting custom notes.
14. Viewing and playing the snap-show and audio wrap.
15. Creating multiple course files.
16. Changing the preferences.
17. Saving the notes, audio, pdfs, and images.
18. Searching the entire course file.
19. Showing or hiding the flash cards drawer.
20. Showing or hiding the grab drawer.
21. Showing or hiding the toolbar.
22. Dragging and dropping notes from one course file to another.
23. Dragging and dropping text to create new notes.
24. Dragging and dropping notes into text views.
25. Dragging and dropping pdfs and images into Notes.
26. Viewing help and instructions manual.
27. Speaking to answer flash card questions.

Monday, January 17, 2005

Mock-up

Here is a mock-up drawing of the Notes interface layout:


Click image to enlarge

Sunday, January 16, 2005

Project Proposal

For the pdf version of this project proposal, click Proposal.pdf.

Project Description
I would like propose the develop of a program called Notes. Notes is a document-based application where each document type is a high school class or college course. Downloaded pdfs of a class' syllabus, PowerPoint slides, etc can be dragged and drop into this document for extreme organization. Notes consist of three modes: free-notes, outline, and high-lighter. Notes will also have an alert calendar for jotting down homework assignments and reminder alerts when assignments are due. Notes will have global search capabilities and modules for input devices such as the iSight camera for audio recording and snap-shots of the board. This provides explanation of a physics problem along with an image of the written solution on the board. The problem with audio recording an entire lecture is that when studying this media, it is like sitting through an entire lecture again. It is also heavy on resources. With this system, students eliminate the problem of sitting through an entire lecture by having exactly what they want to review at their fingertips. Notes will also provide a study mode which can prepare students for a test. Using Cocoas voice recognition and speech technology, students can answer questions asked by Notes from created flash cards. Notes will reply if they are correct or incorrect. The first five flash cards will be tested and upon getting those correct, Notes will test the first five plus five more cards. This is the best way to memorize a lot of things quickly. Unfortunately finding a study partner to do this activity is difficult. Notes becomes that study partner. Notes will be successful because of its simple interface, its incredible organization, and helping students enjoy lectures and studying more.

Objective and Benefits
Here at Loyola Marymount University, I use my laptop to take notes in class. I don't see a lot of students taking advantage of this when learning. My vision is to create software that will give students of all ages the tools necessary for taking custom notes in class and still be able to concentrate and participate in the lecture. With these tools, students don't need to have their heads buried into their notebooks; they can have custom notes to go over while studying and stay completely organized. There are disadvantages to taking notes using a pencil and notebook. Students are unorganized, writing is hard on their hands, students can't focus as much, and notes are not useful when restudying. There are also disadvantages of prepared notes by the professor. Prepared notes are hard to follow because they aren't custom notes and reading them is like sitting through an entire class lecture again

Scope
To develop this project, I will need several resources. Hardware resources include one iSight camera, one iFlex to house the iSight camera, and one Powerbook computer. I will also need virtual resources such as the latest MacOS X operating system and its development tools. I will need access to the internet for research and distribution of documents and nightly builds. I will need hosting space for formal documents and nightly builds. I will also need human resources. Students who can provide test cases using an alpha version of Notes, in their classrooms, to give me positive and negative feedback.

Major Deliverables
Major deliverables consist of a completed final project build of Notes, formal documentation, presentation slides and presentation, and a blog that has tracked all development.

Budget/Resources
All resource cost have been taken care of by myself, Troy Morgan Payne, and Loyola Marymount University.

Risks
With every decision in life, there are risks. Risks of this project include unrealistic goals for the time alloted throughout the semester and technology constraints.

Project Governace
This project will be managed by myself, Troy Morgan Payne, engineered by myself, and tested by fellow student Ivy Baldeo and myself. All formal documentation will be developed by myself and website development will also be done by myself.

Sponsor
Loyola Marymount University