...
We have three main types of users represented by the following people (fictional names):
- Jimmy: Ski ski school director
- Darryl: Administrator administrator and Daily Supervisordaily supervisor
- Sam: Ski ski instructor
Jimmy: the ski school director
Jimmy is the director of the ski school. He is comfortable using a computer, but does not have any experience in web development. Jimmy needs a way to monitor how many instructors he has scheduled for each shift and to track if instructors are missing their shifts. He would like a way for instructors to request a schedule change directly from the supervisor of the shift they are requesting to change and would like a copy of the request to go to the central supervisor email address. He does not like having to make the changes to schedules himself and would prefer that the request go through the supervisor of the shift. If the instructor is making a change near the time of their shift, he would like the computer to block the request and direct the instructor to call the appropriate supervisor, since often supervisors may not check their email before heading out onto the snow if it is a last minute change. He would also like to track how many clinic hours instructors have and whether or not they have taken certain required clinics. Additionally, it would be helpful if instructors could submit requests for clinic hours that they got outside the ski area or that didn’t make it onto the sign-up sheet. He would also like an interface that would allow him to post announcements and links to training materials for his instructors without having to directly edit html code.
...
What the current system does well:
- Jimmy can view instructors’ schedules and print of a list for the supervisors each day
- He can also track the number of clinic hours instructors have
What the system currently lacks:
- Instructors can’t enter/edit their schedules
- He has no way to track how many shifts instructors have missed (either excused or unexcused). He would like a way to see how often instructors are being excused from shifts.
- He has no way to track what required clinics instructors have taken so he uses an excel spreadsheet, which instructors can’t view. Furthermore, clinic hours are sometimes missed since there is no easy way for instructors to request missed hours and he has to personally try to keep track of clinic hours taken outside the area (ex. exams taken through the Professional Ski Instructors Association)
- An easy way to post announcements and outside links
Darryl: an administrator and daily supervisor at the ski area
...
What the current system does well:
- He can view instructors schedules and print out a copy to take with him on the snow
What the system currently lacks:
- A way for instructors to submit/change their schedule
- A way to track changes that are made to an instructor’s schedule though out the season.
Sam: a ski instructor at the ski area
...
What the current system does well:
- He can view his schedule and who else is on the schedule with him
- He can view other instructors’ contact information
What the system currently lacks:
- He hates filling out a paper schedule and wants to be able to submit it online
- He would like a way to request a schedule change if it is a long way in advance
- He would like the to be able to see which instructors in the children’s area and skiers and which are boarders. The current system only breaks instructors down by supervisor and since there is only one supervisor for skiers and boarders in the children’s area, they appear together online.
Task Analysis
There are a few tasks that are very important for this application:. Notes relating to the scope of the project within 6.813/6.831 are in parentheses and the tasks we focused on are bolded.
- Create season (can be done annually using Django's interface to the database)
- Submit schedule
- Change schedule
- View schedule
- View instructors for shift (generating a list of text data is not an interesting problem from a UI standpoint)
- Track instructors’ attendance
- Track clinic hours
- Post announcements (the mostly empty home page in our implementation can be used for this)
Create Season
Goal: The ski school director or an administrator wants to create a "season" to store information (schedules, announcements, etc.) about the coming season.
Subtasks:
- The user opens the interface
- A new season is created for the coming winter
- The user designates which disciplines are taught during which shifts for each day of the season (since the schedule is dependent on holidays)
- Possible disciplines: adult: ski, adult: board, child: ski, child: board, racing (not all disciplines are taught every shift)
- The season becomes visible to the ski school director, all administrators, and all instructors
Preconditions:
- The user has administrator privileges (ski school director or an administrator)
- The season has not already been created
Time constraints:
- Should be before the ski school opens for the season
Frequency of use:
- Once per year
Submit Schedule
Goal: An instructor wants to submit his/her schedule and be notified of its approval or denial.
Subtasks:
- Instructor selects which shift to teach and specifies which discipline for each shift
- Schedule is submitted
- Schedule is approved by admin or ski school director
- Instructor is notified of approval (or denial)
Preconditions:
- Instructor must have an account
Time constraints:
- Must be before Thanksgiving
Frequency of use:
- Once per instructor per season
Change Schedule
Goal: An instructor wants to request to change his/her schedule for a shift, and be notified of its acceptance or denial, and if it's accepted, to see the change reflected in the schedule.
Subtasks:
- Instructor selects which shift he/she would like to change
- Sends request to supervisor
- Supervisor approves/rejects
- Instructor is notified of result
- Changes are logged so that supervisors can review changes at a later date
Preconditions:
- Instructor has submitted a schedule
Time constraints:
- It is at least 72 hours prior to the start of the
...
- instructor's shifts
Frequency of use:
- A couple of
...
- times per season per instructor
View schedule
Goal: Any staff member wants to view a schedule.
Subtasks:
- Select instructor
- Display schedule
Preconditions:
- Instructor has submitted a schedule
Time constraints:
- None
Frequency of use:
- Once a season to a couple of times per week, depending on instructor
View instructors for shift
Goal: A staff member wants to view the instructors scheduled for a given shift.
Subtasks:
- Select shift
- Display instructors in printable format
Preconditions:
- Instructors have entered schedules
Time constraints:
- None
Frequency of use:
- Several times per day
Track Instructors’ attendance
Goal: An administrator wants to manage an instructor's attendance.
Subtasks:
- Select instructor
- Display shifts instructor is scheduled for, shifts the instructor was excused from, and shifts the instructor has missed
- Mark a shift as missed or excused
- Any shift can be marked as excused
- Only previous/current shifts can be marked as missed
Preconditions:
- Instructors have entered schedule
Time constraints:
- None
Frequency of use:
- Several times per day
Track clinic hours
Goal: An supervisor/clinic instructor wants to enter hours for clinics. Everyone wants to view the clinic hours and requirements fulfilled. Instructors want to request clinic hours that got missed so that supervisors/clinic instructors can approve them.
Subtasks:
- Clinic
...
- instructor/supervisor enters hours and if the clinic fulfilled a requirement
- View current hours/requirements fulfilled
- Request clinic hours
- Approve requests for clinic hours
Preconditions:
- Instructor is in the system
Time constraints:
- None
Frequency of use:
- Several times per day
Post announcements and outside links
Goal: An administrator or director wants to post announcements and/or outside links for the staff.
Subtasks:
- Post announcement
- Announcement is emailed out to instructors who have opted in to receive announcements by email too
- Announcement is viewed
- Post outside link with description
- View outside link
Preconditions:
- None
Time constraints:
- None
Frequency of use:
- A couple of times per week