Filed under

projects

 

Can I build a working task management web app in a weekend? Maybe with this spec I can. #twittledo

I took a break from my home office today and spent a couple hours at the local Starbucks with my netbook.  While sipping my $2 grande coffee, I was thinking about how I always have trouble managing my task lists for multiple projects.  I have lists for my day job and lists for my side projects.  Going back and forth between them can be confusing and discouraging at times because tasks  sometimes can be lost or forgotten.

I've tried some of the popular task and project management web apps like Remember the MilkToodledo, and Basecamp. I used each for a few days but I never fell in love with any of them. Either I didn't like their interface or they were lacking a specific feature that I wanted. However, the primary reason why I don't use them is because none of them have a simple user interface.  Remember the Milk comes close but I found it too difficult to manage multiple lists for different projects. Google Tasks is another task list app and it's the one that I currently use. However, I do not like how it only shows you one list at a time so it makes it difficult to juggle tasks between projects.

All I want is a simple online to do list app that allows me to view and manage multiple task lists with a very simple interface like a Post It note. 

Since I'm not happy with existing solutions why don't I scratch my own itch and create my own.  This sounds great but when am I going to find the time to do this? Like I said, I have my day job and some side projects that will eventually bring in revenue. I also have a family and I don't want to sacrifice too much family time. Why should I take time out of my nights and weekends to reinvent the wheel because there are already so many task management applications?  I tried to answer this question while I finished my grande coffee. Then I thought why not? It could be fun.

I decided that if I am going to do this it needs to be completed by the end of the weekend and within 16 to 20 hours. In order to accomplish this I need to create a set of requirements that limit the functionality and features.  However, while the functionality will be minimal, I want this to be a working app that anyone can log into and use.

Project Requirements:
  1. Completed within 16 to 20 hours and released by the end of the day on Sunday (01/10/10)

  2. Hosted for free without a web server - I won't have the time or money to setup a dedicated or virtual server for this project. This could be hosted on a cheap shared hosting account but I'm not a fan of those.  Hosting the app on Google App Engine will allow me to host it for free and I won't have to setup a server.  Also, App Engine will take care of the user authentication.

  3. No Account Registration - Users should be able to use their Gmail user name and password to use the application. Google App Engine provides authentication methods to allow anybody with a Google account to login with their Gmail email address and password. 

  4. Maximum of 3 different lists with each list have a maximum of 10 tasks - More lists can come in the future.

  5. The app will only have basic CRUD (Create, Read, Update, and Delete) functions.
    1. To CREATE, each list will have 1 "Add New Task" button to trigger a text box to add a new task.
    2. To UPDATE, the user will click on the task's text and a text box will appear with a save button
    3. To DELETE, the user will click on the task's text and a text box will appear the user will need to clear the text and save in order to delete it.


      A UI mockup of the app

  6. The user's task list data will be saved as the user makes a change.

  7. No AJAX or dynamic effects - While I believe that AJAX adds usability and speed to web apps, it takes time to add it. I believe in initially building web applications that work without the need for JavaScript. JavaScript can be added later on after the first version is released. 

  8. No Images - Like JavaScript, images and visual elements can be added later.  The initial design should only use HTML, CSS, and form elements.

Estimated Schedule:
  1. Saturday Morning (2 Hours)
    1. Setup project with google-app-engine-django template
    2. Apply HTML and CSS template with YUI grid base
    3. HTML for Main Task List Boxes
    4. HTML template for individual tasks, update form fields, and add buttons
  2. Saturday Afternoon (6 hours)
    1. Define data objects for the data store
    2. Authentication with Login and Logout functions
    3. Add task event to display text input box
    4. Save functionality for task input box
    5. Read method to retrieve tasks for a list ordered by task_id
  3. Saturday Night (2 hours)
    1. Test and debug add and functionality on all 3 lists
  4. Sunday Morning (2 hours)
    1. Update event by selecting a task that will reload the text into a text box
    2. Save function for the updated task
    3. Delete the task if no text is in the update box 
  5. Sunday Afternoon and Night (6 hours)
    1. Complete any remaining tasks
    2. Test and debug application
    3. Release the app to twittledo.appspot.com
    4. Setup Google Apps and Godaddy DNS for the twittledo.com domain so that the app can be re-mapped to www.twittledo.com
You might be wondering why I'm blogging this and why did I set a 48 hour deadline for myself?  Well, there is nothing better than a short deadline and little peer pressure to get a project done.  I'm going to try to document this process with screenshots and updates so watch for this on Twitter @markkoberlein.

Filed under  //   projects  

Comments [2]