This page is a collection of random ideas for extending or improving the iTasks system that we think are fun, but haven't gotten around to implementing. If you are a student looking for a small project, or otherwise want to contribute, this might be the place to find something interesting :)
To make the completion of tasks easier, it would help if you could communicate directly about a task with the person who defined the task or assigned a task to you. An easy way to facilitate this is to build instant messaging linked to tasks in the client. This is mostly an interface design project, because the server side is relatively simple.
Feature: E-mail / SMS
Not everyone is logged in to a workflow system 24/7, but a lot of people have access to their e-mail most of the time. Therefore would it be nice to have e-mail or even SMS notification when new tasks are assigned to you, when the status, priority, deadline or other properties of a task change, or something else that is worth knowing happens. Because not everybody likes to be spammed by such a system, it would have to be configurable for each user.
Ideas for spam control: Do not SMS/mail when the user is logged on. Send at most one SMS/mail in a period that a user is not logged on (or at least block later lower priority alerts) until the user logs on. Postpone alerts if possible (deadline), because tasks may vanish in the meantime (because of the or-combinator). [Erik Zuurbier]
Feature: Ad-hoc signup
You do not always know in advance, which people will be involved in some task or workflow. Sometimes you want to assign tasks not to an existing user, but to someone who is not a user yet. In these cases you want to be able to create a new user account instantly and provide some quick and easy signup mechanism for the new user to be introduced to the system. A possible solution would be to allow task assignment to arbitrary e-mail addresses, and when the e-mail adress does not belong to a known user, create a new user with the e-mail address as username and sent her an e-mail with a link that activates the new account and directly opens the assigned task.
Workflow: Schedule a meeting with a group of people
The idea of this example workflow is to agree on a date with a group of people. One person who initiates the workflow defines a list of possible dates and the people she wants to invite. The list of options is then offered to each group member who indicates what subset of the options suits her. Finally the organizer picks a date from the set of dates that is possible for everybody.
This can be generalized: a group of people/organizations need to agree on delivering something (here a future meeting, but it could be an automated system, a holiday [hotel, flight, rental car, insurance]). A kind of two-phase-commit-protocol could be followed: prospective participants are sent an invitation to offer/quote on a proposal (or a list of alternative proposals). The organizer then collects the offers/quotes, decides on one of the alternatives and distributes appropriate acknowledgements of offers/quotes (commit-requests) and rejections (roll back-requests). This should take care of limited validity periods of offers/quotes, and it should consider the possibility that a participant might not be able to live up to an offer/quote after all. [Erik Zuurbier]