Note: This page has changed from the original version. This is the current vision. You may also view the original vision document
The vision of Day Planner is to create a Day Planner that:
- Is easy to use
- Is simple to learn
- Is consistent
- works offline, does not require an internet connection
- goes out of its way to make sure the user knows about an appointment
- follows the GNOME HIG
- has the features people need, but not more. No bloat, no excessive features
- has a clean, well documented and extendible codebase
- does one thing, and does that well
User interface
The user interface is going to be simple. It should not be bloated like many other
planning applications (such as the Mozilla sunbird and Evolution planners). It should follow the GNOME human interface guidelines and use the GTK GUI libraries.
Read-only web interface
Day Planner is able to export to html (read-only). This is possible to do both
when X is running and when it isn't. This so that the user can access her or his
events from a web interface. Further on perhaps it could be an idea to
have an actual web client. This is however not a priority and there is by no means
any ETA. when or if this might happen.
Underlying daemon ("the reminder")
The daemon is hidden from view most of the time. The user shouldn't know about it.
The daemon takes care of access control (making sure only one client is running at any
one time) and running the notification program to notify the user about events.
Day Planner shouldn't be running without it. When speaking about the daemon to the
user it should be referred to as the "Day Planner reminder".
Underlying notification software
The notification software takes care of making sure the user knows about an event.
It displays a GUI pop-up dialog and takes care of the "postpone" button in those dialogs.
It writes to all terminals of the user when X is not available.
Perhaps it should also be able to notify the user in other ways. This can be achieved by for instance:
Mailing the user
Innovative notification - aka. in a perfect world...
SMS notification is a very interesting option. Sending the user an SMS or MMS
with the description and time of the event. This is not currently possible, SMS costs money
and there is no good web interface to send it from. This could be solved by using
online websites to send free SMS messages, but it would be a very hacky, ugly and
time-consuming thing to write and wouldn't really be reliable. Still, this is a vision
document, and in a perfect world this would be possible. Perhaps if
mobile phones one day get a permanent internet connection we can have a
mobile phone client. I doubt it though...
Networking and calendar sharing
Networking
Day Planner has the Day Planner services system which allows you to synchronize
with a central server. That server can again generate
a web interface for you automatically so that your calendar will always be
available. It also allows you to synchronize Day Planner at multiple
locations (for instance one at work and one at home). But even with this
the calendar is also saved locally and you can make changes without networking
which will be uploaded once networking is available.
This system will some time in the future be replaced by a Conduit-
based solution. This will allow Day Planner to have much more versatile synchronization,
not only limited to the Day Planner services system, but also possibly to online
calendars, mobile units and so on.
Calendar sharing
As the services will have all of the networking stuff in place, it
should be fairly simple to get calendar sharing on that server too.
Then we would have to allow the user to make stuff public and private
so that not everything is shared (and by default nothing). The user
can then grant read-only access to other users.
Internet calendars
Day Planner will in the future be able to subscribe to online iCalendars,
this will allow users to easily and efficiently keep up to date with
interesting dates.