Requirements - massbay-cs/cs225-proj4 GitHub Wiki
Functionality
- Calendar
- Participants
- Organizers
- Admins (fka "Privileged")
- Add events to calendar
- Add tasks to events
- Add other organizers
- Committee leaders (fka "Non-privileged")
- TODO: Clarify role later
- Admins (fka "Privileged")
- Non-privileged participants
- Added by organizers along with contact info
- Can customize own contact info (?)
- Organizers
- Events
- Each event has associated tasks
- Track completion of tasks
- Track completion of events based on completion of its tasks
- Committees
- Managed by organizers
- Email
- SMTP (real email)
- Can be sent from and received by users/groups
- What's a group?
- Automatic email reminders for important dates/events
- Budget
- Managed by organizer
- Reports
- Budget
- Calendar of events/tasks
- Event details
- Name
- Location
- Duration
- Required tools/equipment
- Handler/manager/chair
- Task progress
- Forms
- Registration
- Budget
- Expense
- Location
- Usage:
- Hourly
- Daily
- All event
- Description
- Income
- Registration fees
- Fundraising
- Expense
- Sub-events
- Used to create schedule
- Types:
- During actual event
- Pre-events
- Post-events
- Fields (see Data)
- Buttons on each form
- Save
- Cancel
- Non-privileged participants
- Read-only access to events/tasks
- No access to other participants' contact info
- Read-write access to own contact info
- Low priority:
- Printing/previewing
- Exporting
Data
- Participants
- Name
- Address
- Phone number
- Email address
- Affiliation
- Selected sub-events that they will be attending
- Biographies
- Are they presenting?
- Abstract: Event base
- Name
- Type (pre, post, during)
- Duration
- Date/time
- Location
- Description
- Event
- Extends: Event base
- Sub-events
- Extends: Event base
- Budget items
- TODO: Discuss further
- Expense
- Location
- Usage:
- Hourly
- Daily
- All event
- Description
- Income
- Source
- Documentation for events
Usability
- Tab focus order should be taken into accounts #1
- Unified button labeling (Save, Cancel)
- Enter should submit dialog forms #10
- Only one layer of tabs #18
- Calendar
- Descriptive section labeling
- Controls should be sized to dialogs
- Calculated totals should be displayed on forms that take numerical input
- Validation of fields #3
- Everything should be cancelable
- Confirmation dialogs for destructive events
- Simplified UI
- In-program manual
- Placeholders for form fields where lacking labels #2
Reliability
- Security #19
- Shouldn't crash
- Preservation of data; avoid data loss
- Reliable database implementation (e.g. SQLite)
- Consistency
- CAP theorem
- Allow corrections to all information
- Exception handling
Performance
- No significant delays
- Threading for long-running tasks (low priority?)
- Exporting
- Printing
Supportability
- Logging
- Enforce code style