Barbaric August: Building a Pseudo-Intelligent Personal Task Management System

| Comments

Barbaric Monthly is my attempt at building/improving a coding project per month so that I can experiment with old and new technologies, learn ad infinitum, remain excited about the craft and nurture my passion for software development.

A handful of co-workers and I have been secretly planning an exciting programming event at our company. During our weekly brainstorming sessions we usually have very interesting conversations and plenty of exciting ideas are shared back and forth (How refreshing! :) ). In the last meeting specially, one idea stroke my fancy greatly, the idea of developing something similar to hubot – a cute robot assistant – that would automate repetitive tasks or provide a centralized control for different systems within the organization.

At the same time, I am very into personal task management systems that help you increase your productivity (GTD, Pomodoro, Getting Results the Agile way, Personal Kanban, Zen to Done…) and throughout the years I have perfected my own. Something that I have been considering for quite some time is to implement this Ultimate (XDDDD) system in the form of a web application. While I am aware that plenty of applications exist out there in the wild, I would love to build something completely tailored for me, and moreover, I would like to have the possibility to control my system with a Console interface! Old School! But really, is there anything more productive than a command-line shell? than a personalized hubot?

So here we are at this point, the planets aligning, the full moon rising, the wolves howling, and I… switching my Barbaric Monthly from CMS to the Ultimate Personal Task Management System Of Awesomeness. Here is a mock-up of what it might look like:

Ultimate Task Management System Mockup

Simply put, it will be SPA (Single Page Application) with a regular web interface and an embedded Console – let’s call him Mike. Mike will let the user (a.k.a. me) manipulate the different tasks, projects, tags, filter what’s being displayed, etc. Furthermore, the user (a.k.a. me again) will be able to modify or extend the DSL (Domain Specific Language) that Mike understands at runtime. For instance, I would be able to define a tag like “e-mail” and then use that to tell Mike: “e-mail”.

I anticipate a lot of AJAX/WebSockets and DSL design goodness! Yey! Now… let’s see if I can come up with a prototype in 2 weeks.

P.S. On a totally unrelated topic: You really need to go and listen to Leo Lapote geek out with Daniel Suarez writer of the internationally acclaimed techno thrillers Daemon and Freedom. It was Epic.