Efficient todo management tool “Todos”
Web application specification version 1.0 (2011/12/01)
Request
I am looking for an experienced PHP developer to build a tiny todo management web application in the style of an Eisenhower/Covey 2x2
matrix, allowing users to manage their todos by importance and urgency. I will be providing a HTML5 template with different header states
and overlays information notices, CSS and graphics.
Background
Using oDesk, I wish to create a minimum viable product to collect early adopter feedback and further develop this concept towards market
needs. Nevertheless, I prefer a clean and smart technical solution, because I would like to have the code maintained as the product scales.
Scope
The site itself consists of a navigation header, a form which stores all todos in a MySQL database anytime a save button is clicked, and a static
footer. On page reload or login, a user's saved data will be retrieved from the database. Users are able to use, sign-up for the service, login and
logout on a single page.
Sign-up
Following sign-up with e-mail address and password, an e-mail confirmation request is sent to the new user. The e-mail address needs to be
confirmed before the corresponding user account is finally set-up and the ability to save the todo list gets enabled.
Log-in
After sign-up or log-in (following a log-out), please create a cookie so that users do not need to log-in again. This cookie might expire sometime
like after a month or (even better) never, depending on what is easier to implement.
Use case
1. Guest visits page
2. Guest enters first todo in form
3. Guest hits save button Guest sees information notice that to save his todos, sign-up is required
4. Overlay appears, requesting sign-up to save Guest clicks information link that lets the sign in form switch to a sign up form
5. Guest enters e-mail address (must not be in database already) and chooses a password
6. Overlay Information notice says that e-mail address needs to be confirmed to enable save button
7. Guest confirms his e-mail address by clicking a link in a confirmation request e-mail
8. User account is created, the user is logged in with the ability to save todo list
9. User enters todos and saves them
10. User leaves page by navigating away or logging out
Technical solution
I wish to get a deployment-ready PHP solution with database configuration file. When running, I expect a user's save operations to be
performed using Ajax without the need to refresh the page. The same is true for the sign-up overlay yellow information notices and
information link. Using proven frameworks for PHP (f.e. symfony/CakePHP) or JavaScript (f.e. jQuery) to speed up development time is
appreciated.
Deployment scenario
Linux server, running Ubuntu, Apache and MySQL
Design templates
Please see below
A. Landing page or logged out (new page loaded following deep link to index or logout)
C. Account created, logged in and waiting for e-mail confirmation (following Ajax form submit and JavaScript
updates to the header without page refreshes)
D. E-mail address confirmed (new page loaded following confirmation request e-mail link clicked)
Saved (Ajax “submission saved” response processing and JavaScript button text update without page refreshes)
“Saved” will stay as long as no input has occured. As soon as the user starts changing the textareas’ content, the button will again be updated
by JavaScript, then showing the regular “Save now” button text as long as no manual or auto save occurs. This behaviour is comparable Google