CSCI E-180 Project 1 Philipp Hanes hanes@fas.harvard.edu PROJECT DESCRIPTION =================== This project is a web-based To-Do list manager. the user interface concentrates on in-place editing, and drag-and-drop idiom. It doesn't currently support keyboard navigation at all (the only keyboard use is for editing To-Do items). The code consists of: 1) a minimal Perl back-end, which allows persisting of lists, and generates an initial HTML page. 2) a fair amount of JavaScript that runs in the browser, allowing manipulation of both the content and view of the To-Do list. The basic concept (in terms of goal, though certainly not in terms of user interaction) is based on the Konfabulator (Yahoo Widget Engine) widget at http://hometown.aol.com/kwpapke/Todo%20Widget.html It is loosely based on the ideas presented through Stephen Covey's "Seven Habits", categorizing tasks by axes of importance and urgency, and also associate each task with a role you play in you life. The ability to mark a task "done", but keep it around, also provides a record of what was achieved, which can simplify acocunting for one's time (every wondered what you did all week? or had a superior ask you and you draw a blank, even though you know you got a lot done?) Basic usable involves creating new To-Do tasks by dragging a role into the importance/urgency grid, and then typing a description of the task in the textarea that it presented. The roles are color-coded, so it is easy to see what role a task is associated with at a glance. Existing entries can be edited by clicking on them, moved to a different location by dragging them, and dragged to the trash can to be deleted. There are also shortcuts that appear when the mouse pointer is over an entry that allow both deletion and moving to the "Done" column with a single click. There is a single-level undo capability, allowing you to back out of a deletion or move (but not edits). Saving all changes is only available when changes were made, at which point there is also the option to revert to the last saved state. Columns, rows and roles are minimizable, to get a more focused view of certain subsets of tasks, but there is always a tiny representation of each item, and holding the mouse over it will bring up a tooltip containing the task description. You can also toggle between showing full task descriptions, or just showing the first part of each, to allow more tasks to be scanned at one time. There are shortcuts to completely display everything or completely collapse everything, allowing very selective viewing of a vast overview. Saving entries simultaneously saves the display state (what is expanded/collapsed).