I have a few features I'd like to add to my GTD Rails app eventually. I can see how I'd code some of them now (I just haven't got around to adding them. Others will take a bit of thought and some more learning about Ruby before I'm ready to tackle them:
- List appointments. It would be nice to pull in the appointments for the current day from iCal, so that I can see everything I have to do at a glance. I think it should be possible to use iCal.rb for this purpose — it would just be a read-only listing.
- Dependencies. At the moment, all items in Projects appear in the main listing. I'd like to set up some way of marking some items in Projects that are contingent upon other items. That way, I could suppress the listing of those items until they can actually be done. One way of getting round this would be to set the context of those items to 'Waiting' so that they appear at the bottom of the list, and there's some acknowledgement of the fact that these things can't be done right now.
- Recurring action items. Sometimes you have an action item that regularly recurs. It would be good to be able to set the recurrence, and have the item mark itself as un-done after a certain interval, like you can do with Life Balance.
- Statistics. This probably really marks me out as a geek, but I love to have statistics and graphs. I think in this case it would really help me to understand how I work. For example, if I could plot my 'completion index' (no. completed items/no. items added per unit time) against number of items added, I could see whether I tend to wait for quiet periods before churning through work, or if I procrastinate until the situation becomes critical. I have my suspicions, but I'd like some hard data. This means that I'm going to have to learn how to draw graphs using Ruby. Does anyone know of a good module/library for this?
- RSS/PDA compatible version. This shouldn't be too hard, as Rails comes with built-in commands to build RSS feeds.
This will probably all be a while in coming, as I want to tidy up the existing code and incorporate the fixes people have suggested so far, as well as making a proper edit action. I must say that it has really been fun making this app, and I've learned a lot faster than I would have done if I was just reading a book about Ruby (although Programming Ruby has been a vital reference and source of information and inspiration).