ClueTimer

A separate WSGI app for managing time booked on "tasks". Primary function is to be integrated with ClueMapper (but with no dependencies on ClueMapper). The current incarnation is being written with Django but isn't far enough along to be useful for anything yet.

The source can be directly accessed at:

Why Django?

  • Because it would be nice with little fuss to have ClueTimer working on the Google App platform for standalone reasons
  • Because the author (Rocky Burt) wanted to learn Django to strengthen his toolset

Work Proposal

Concepts

Time Booking

A unit of time with two fields: date and summary

(Gerry) A booking consists of a time duration (required), date of booking (required), and a comment (optional). When you make a time booking, you can also update the task status and time remaining for the task.

Task

A unit that a time booking can be applied against. This has more meaning within the setting of a full prj mgt tool like ClueMapper

Task Group

A grouping of tasks. These can be nested so groups can be in groups. In a full prj mgt tool setting like ClueMapper a "story" would be a task group as as well as an "iteration" and a "project" itself (nested of course).

Standalone Functionality

Standalone in this setting means outside of a full prj mgt tool like ClueMapper

There would be three major "screens" for functionality.

  1. Task Definition Screen This would be a simple web form for creating/modifying tasks as well as a listing of existing tasks that maps to the current user.
  1. Time Booking Screen A screen listing today's bookings for the given user plus lists the tasks assigned to this user with a web form that allows submitting a new time booking
  1. Time Reporting Screen This will be the most frequently used section where users would have the ability to do time reports based on date ranges, tasks, etc. Users with "manager" access would additionally have the ability here to do reports on any arbitrary set of users.

ClueMapper Integrated Functionality

Project management tool functionality should be as uncoupled as possible. The Trac integration for ClueMapper would consist of a Trac plugin that provides javascript to be included on each page. When viewing a ticket, the javascript would be triggered and produce (on screen, possibly on the right side) a box of booking time against this ticket and possibly additional info like time already booked on this ticket. Submitting a time booking in that box would make an ajax request back to the server to do actual booking and update itself.

The reporting of time bookings could be exposed exactly as screen #3 above and just be a link accessible from the ClueMapper project listing area. I don't think we need this reporting functionality inside Trac itself (it might be nice to be inside Trac, but we already get the other functionality for free so doing it again in Trac isn't really *worth* it).