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.
The Model
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.
Hmm, I was also considering starting a GTD app in TG. I’ve been using MonkeyGTD which, like d3, is based on TiddlyWiki. It’s been relatively good, but being all JS it’s a bit slow at times and I occasionally have problems with opening it in multiple browser windows.
I’d love to help with this project, and if you’d like I can host a Darcs or Subversion repository and Trac project for it. You can email me: matt@matt-good.net.