CSCI E-180 Project 2 Philipp Hanes - hanes@fas.harvard.edu Ellen Jervis - ejervis@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. There is also an alterate keyboard control mode. The code consists of: 1) a Perl back-end, accessing a mysql database. It responds to Ajax requests from the browser. 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 use 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 unlimited undo capability, allowing you to back out of anything you didn't mean to do.deletion or move (but not edits). All changes are immediately saved to the database. Also, any changes another user is making to the same list will be reflected in your display. 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. Lists are password-protected, and all encryption/decryption is done on the client side, meaning your data is stored encrypted, and the server administrator does not have access to it (since the password itself is never sent to the server). This does mean that if you forget your password, it is unlikely you will be able to recover your data.