Confucius Task Manager


Confucius Task Manager or simple Conficius. The idea is standing behind was to create an interactive, annoying, really annoying tool which is able to manage your life daily TODO list, makes sure you are making  progress in your current task, reminds you about your uncompleted work, and again makes sure and reminds you and, finally, rates you progress at end of the day.


How it works

Currently Confucius is iteracting you using GTalk instance messenger and able to spying on your TODOIST tasks list. If you want to enjoy such experience, just create your daily list on TODOIST and add to you GTalk buddies. From now you will find your self chatting with Confucius. Did I mention you also need to be a member of Confucius club? No? So you do need to become a member of our club.


Technologies Behind

Confucius is a Django based application deployed on GAE cloud. We are using:

  1. Django-nonrel for GAE integration.
  2. XMPP Python API for sending, receiving chat messages and detecting changes to a user's chat presence.
  3. TODOIST API for watching an user's tasks.
  4. Mercurial for source control and source management.
  5. Mindmeister for ideas sharing and project life-cycle management.


Making Progress

A GAE application can send and receive chat messages to and from any XMPP-compatible chat messaging service, such as GTalk. By default the application has several GTalk accounts. In order to use XMPP the application must be configured to enable the service.

You can enable the service by including an inbound_services section in the app.yaml file:

- xmpp_message
- xmpp_presence
- xmpp_subscribe


With the XMPP service enabled, App Engine makes:

  1. an HTTP POST to /_ah/xmpp/message/chat/ URL when your app receives a chat message.
  2. an HTTP POST to /_ah/xmpp/presence/available/ as signal that the user is available and provide the user's chat status.
  3. an HTTP POST to /_ah/xmpp/presence/unavailable/ as signal that the user is unavailable.


To handle them, you simply add a request handlers that accepts POST requests at this URL pathes to file :

urlpatterns = patterns(
(r'^_ah/xmpp/message/chat/', 'chat_be.gt_im_provider.handle_user_message'),
(r'^_ah/xmpp/presence/available/', 'chat_be.gt_im_provider.handle_user_online'),
(r'^_ah/xmpp/presence/unavailable/', 'chat_be.gt_im_provider.handle_user_offline')


Do not forget to return HttpResponse at the end of the request processing.



Site address:

Todoist API:

Todoist Python Library (that some guy wrote):

Bitbucket project site: