Calendars
I've been thinking about calendars recently, specifically of the PIM kind. Mozilla now implements the 'ical' open standard, as does Apple's (rather annoying named, IMO) iCal. I don't have a Mac, but I can drag Moz's ical file onto the correct folder of my iPod and sure enough the calendar appears on my mp3 player (!)
This is all very nice, but since we are looking at a 'lifestyle app' and my lifestyle is a particularly lazy one, I have some rather more demanding requirements. Here are some 'stories':
- I would like to be able to add, edit and view my calendar entries wherever I am. So this means probably on my mobile phone when I'm out and about (including when I don't have any signal coverage), on any one of my computers when I'm at home, on a laptop (probably disconencted from the internet) when I'm travelling, or via a (secure) website when I'm at a client office.
- I would like any of these devices to be in 'sync' with the actual state of my calendar if possible when I use them, and the amount of effort I need to keep devices in sync should be trivial.
- I would like typical Calendar view / manipulation behaviour on each device, e.g. filtering by cetegory; viewing by month, week, etc (and all entries, linearly); alerts.
Here are some 'nice to haves' :
- I would like to be able to have some of my calendar entries to be viewable publically on a website. I would like to be able to specify which entries these are from any of the devices above
- I would like to be able to load external calendar entries from other sources into my calendar (e.g. with ical you can import a file for all your public holidays, see http://www.apple.com/ical/library/)
- I would like to be able to sync with existing systems, e.g. Outlook / Exchange.
OK, so now some implementation ideas for these. Backing all of this needs to be some calendar domain model. Ical may be sufficient, but I don't know enough about it. Someone told me it didn't have a 'location' field and if that's the case that sounds a bit of an oversight.
The whole 'syncing' thing would work really nicely for a mobile phone using one of:
- Syncing over internet (exactly how would be dependent on the phone client software, but say we were to use a SonyEricsson P800 we could write our own Symbian app that synced over http, using GPRS underneath that)
- Syncing over bluetooth whenever I walk into my flat.
Its fairly obvious that we need a publically accessable server somewhere to store the state of my calendar. Keeping it simple, I don't see why this isn't just a plain web server. It will probably need funky dynamic behaviour for viewing, but as a start for syncing purposes it could just be a static web server with some (probably XML) content on it. The client app could then use http to request content and FTP or SCP to upload changes. This isn't a scalable solution, but I have introduced a story for that yet. :)
These ideas also extend to other PIM activities like address books and task lists, and there's probably scope for integration with email too.
1:14:55 PM
|
|