My first TurboGears project will be a web-based GTD application. GTD stands for Getting Things Done, and is a method for managing time and commitment.
Of all my ideas I chose this because of the interesting model, which will consist of one-to-many and many-to-many relations. It also has all kinds of database operations (CRUD).
I also hope to learn some advanced kid templating, since the UI will consist of many panels: header, footer, left, right and middle.
Main object is the Project, which has Actions (tasks). When all actions are done, the project is complete. Actions belongs to a Context, which describes where this Action can be done (home,computer,phone,work etc).
Actions are usually listed by Context or Project.
Actions also has Tags. They help to find things, and gives me a chance to try out many-to-many relations.
I will add more functionality to the model later, for example a history view of changes.
Here’s a simplified diagram:
The User Interface
I have used a GTD-application before called d3. It has such a good interface that I will use it as a base for my project.