...
Our system is targeted toward the English-speaking, non-technical population with special emphasis on three user groups: students, businesspeople, and families. Although our different user groups have varying levels of technical competence, we will gear our application toward people who have basic web experience.
Businesspeople: Businesspeople, who are between 20 and 70 years old, need calendars to keep track of their own schedules and those of their employees, clients, and colleagues.
Students: Students, who are between 14 and 22 years old, would use a calendar to organize class, homework, employment, and extra-curricular schedules.
...
Families: Families have a lot of tasks that need to be done, but that don't necessarily have deadlines. They currently make paper todo lists. A mother we spoke to wished that her current calendar system would allow her to jot down a todo list, just as she might scribble notes in the margin of her physical calendar.
System Tasks: (tasks in gray were removed due to scope reductions)
1) Manage Account
- Create
- Log In (precondition: create)
- Read (View) (precondition: log in)
- Update personal info (precondition: log in)
- Delete account (precondition: log in)
2) Manage Categories/Events (precondition: log in)
- Create (frequency: multiple times per day)
- Date
- Time
- Description
- Type: Activity/Todo/Deadline
- Access control (who can read from/write to the category/event)
- Categorize** add parent, move the event up/down the event hierarchy
- Read (View) (frequency: multiple times per day)
- Yearly
- Monthly
- Weekly
- Update created fields
- access control (share)
- date
- time
- description
- Delete
3) Offline viewing (precondition: log in)
- Create PDF
- Email PDF
- Print PDF
Domain analysis
By default, events that users create are put in the "My Calendar" category. "My Calendar" is analogous to the root of a filesystem. We can create sub-categories, such as "My Extracurriculars", which in turn can have events or another sub-category, such as "Choir Rehearsals".
A category can have multiple parents. For example, "Choir Rehearsals" can belong to the "My Calendar" category as well as to the "Your Calendar" category. When I share my calendar with another user, I am really sharing one or more of the categories that are associated with the "My Calendar" category.
...