WolfScheduler Requirements
Requirements describe what the system should do, typically from a system or user perspective, without design or implementation details. The requirements for the Wolf Scheduler system are described as use cases, below:
- Use Case 1: Load Course Catalog
- Use Case 2: Rename Schedule
- Use Case 3: View Course Information
- Use Case 4: Add Course to Schedule
- Use Case 5: Remove Course from Schedule
- Use Case 6: Add Event to Schedule
- Use Case 7: Remove Event from Schedule
- Use Case 8: Reset Schedule
- Use Case 9: Display Final Schedule
- Use Case 10: Export Schedule
Use Case 1: Load Course Catalog
Load the catalog of courses so students can make personal schedules for planning.
Main Flow
- The user provides a file containing the listing of courses in the catalog for the upcoming semester.
- The system processes the course catalog file line by line and stores valid courses in the system [Processing Course Information] [Missing File].
- The name, section, and title of the courses in the catalog are displayed in a list.
Extensions
- [Processing Course Information] Information about scheduled courses are stored in a file with one course record per line. A course record is a comma separated list of the course name, course title, section number, the number of credit hours, instructor’s unity id, meeting days, start time, and end time. The start time and end time may be omitted if the meeting days are listed as ‘A’(rranged). Valid course records are stored in a list of courses [Invalid Course Record]. A course record is invalid if one or more of the following are true, and an invalid course records is skipped:
- an item is missing
- the course name is null or an empty string
- the course name is contains less than 5 characters or more than 8 characters
- the course name does not contain one space between letter characters and number characters
- the course name does not start with 1 to 4 letter characters
- the course name does not end with three digit characters
- the course title is null or an empty string
- the section number is NOT exactly three digits
- the credit hours are not a number
- the credit hours are less than 1 or greater than 5
- the instructor’s id is null or an empty string
- meeting days consist of any characters other than ‘M’, ‘T’, ‘W’, ‘H’, ‘F’, or ‘A’
- meeting days have a duplicate character
- if ‘A’ is in the meeting days list, it must be the only character
- the start time is not between 0000 and 2359 an invalid military time
- the end time is not between 0000 and 2359 or an invalid military time
- the end time is less than the start time (i.e., no overnight classes)
- a start time and/or end time is listed when meeting days is ‘A’
- a course with the same name and section
An example of what a course schedule file might look like is below:
CSC 116,Intro to Programming - Java,001,3,jdyoung2,MW,0910,1100 CSC 116,Intro to Programming - Java,002,3,spbalik,MW,1120,1310 CSC 116,Intro to Programming - Java,003,3,tbdimitr,TH,1120,1310 CSC 216,Programming Concepts - Java,001,4,sesmith5,TH,1330,1445 CSC 216,Programming Concepts - Java,002,4,jtking,MW,1330,1445 CSC 216,Programming Concepts - Java,601,4,jep,A
Alternative Flows
- [Missing File] If the file does not exist on the system, an error message, “Cannot find file.” is displayed and the user is re-prompted for a file.
- [Invalid Course Record] An invalid course record is ignored and not added to the list of courses stored by the system.
Use Case 2: Rename Schedule
The student changes the schedule’s title from the default name of “My Schedule”. The student can provide a new title for their schedule or leave the title empty.
Main Flow
- The user replaces the current schedule title with a new name
- The user saves the new schedule title
- The system sets the title of the schedule to the submitted text [Invalid Title]
Alternative Flows
- [Invalid Title]: The system displays a message stating “Invalid title.”. The student clicks OK and is returned to the main user interface with no change.
Use Case 3: View Course Information
The student selects a course from the catalog to see all the information about the course.
Main Flow
- The student selects a course in the catalog.
- The course details are displayed with the course name, section, title, instructor, credit hours, and meeting information. If the meeting days are “A”, the details view shows “Arranged”. Otherwise, the meeting information shows the meeting days followed by the start time in standard time (e.g., 1:30PM), a dash, and the end time in standard time. Only “AM” and “PM” are used.
Use Case 4: Add Course to Schedule
The student adds a course from the course catalog into their schedule.
Main Flow
- The student selects the desired course to add from the course catalog.
- The student clicks the add course button.
- The system updates the schedule to include the selected course [Already Added] [Schedule Conflict]
Alternative Flows
- [Already Added]: If the student has already added a course with the same name to their schedule (the same section or a different section), a pop-up message stating “You are already enrolled in .” is displayed, where is replaced with the name of the course. The student clicks OK and is returned to their schedule with no change.
- [Schedule Conflict]: If the course conflicts with another course or event (meaning there is an overlap of at least one day and time, even by the same minute) on the student’s schedule, a pop-up message stating “The course cannot be added due to a conflict.” is displayed. The student clicks OK and is returned to their schedule with no change.
Use Case 5: Remove Course from Schedule
The student removes a course from their current schedule.
Main Flow
- The student selects the desired course to remove from their schedule.
- The student clicks the remove course button.
- The system updates the schedule to remove the selected course [No Selected Course]
Alternative Flows
- [No Selected Course]: If no course is selected in the student’s schedule, a pop-up message stating “No item selected in the schedule.” is displayed. The student clicks OK and is returned to their schedule with no change.
Use Case 6: Add Event to Schedule
The student can add non-course events to their schedule so they can visualize how their time will be managed with classes and other obligations.
Main Flow
- The student clicks the button to add an event.
- The system displays the new event dialog.
- The student enters the event title, days of the week (Sunday through Saturday), start time, end time, and optional event details.
- The student clicks the add event button.
- The system updates the schedule to add a new event with the provided details. [Event Exists] [Schedule Conflict] [Missing Name] [Missing Times] [Missing Days]
Alternative Flows
- [Event Exists]: If the student has already added an event with the same title to their schedule, a pop-up message stating “You have already created an event called .” is displayed, where is replaced with the title of the event. The student clicks OK and is returned to the event editing information that is populated with earlier values for editing.
- [Schedule Conflict]: If the event conflicts with another course of event (meaning there is an overlap of at least one day and time, even by the same minute) on the student’s schedule, a pop-up message stating “The event cannot be added due to a conflict.” is displayed. The student clicks OK and is returned to the event editing information that is populated with earlier values for editing.
- [Missing Name]: If the event name is null or an empty string, a pop-up message stating “Invalid title.” is displayed. The student clicks OK and is returned to the event editing information that is populated with earlier values for editing.
- [Missing Times]: If the event start time or end time is empty, an invalid time, or if the end time is earlier than the start time, a pop-up message stating “Invalid meeting days and times.” is displayed. The student clicks OK and is returned to the event editing information that is populated with earlier values for editing.
- [Missing Days]: If no day of week is selected, a pop-up message stating “Invalid meeting days and times.” is displayed. The student clicks OK and is returned to the event editing information that is populated with earlier values for editing.
Use Case 7: Remove Event from Schedule
The student removes non-course events to their schedule.
Main Flow
- The student selects an event from their schedule
- The student clicks the remove event button.
- The system updates the schedule to remove the selected [No Selected Event]
Alternative Flows
- [No Selected Event]: If no event is selected in the student’s schedule, a pop-up message stating “No item selected in the schedule.” is displayed. The student clicks OK and is returned to their schedule with no change.
Use Case 8: Reset Schedule
The student clears their schedule and resets it to its defaults.
Main Flow
- The student clicks the reset schedule button.
- The system removes all events and courses from the schedule and changes the title of the schedule to the default “My Schedule”
Use Case 9: Display Final Schedule
The student displays their final schedule with all information about the scheduled activities.
Main Flow
- The student clicks the display schedule button.
- The student sees the list of scheduled courses and events with columns for name, section, title, instructor, credit hours, meeting information, and description. If the meeting days are “A”, the details view shows “Arranged”. Otherwise, the meeting information shows the meeting days followed by the start time in standard time (e.g., 1:30PM), a dash, and the end time in standard time. Only “AM” and “PM” are used. If the row is an event, then the name, section, instructor, and credit hours are left blank. After the table, the total number of credit hours is listed for the given schedule.
- The student clicks the revise schedule button to return to the schedule editing functionality.
Use Case 10: Export Schedule
The student exports their schedule to a text file for future reference.
Main Flow
- The student clicks the display schedule button.
- The student clicks the export schedule button.
- The student is prompted with a file dialog where they can provide a location and file name for saving the schedule.
- The schedule is stored in a text file with a comma-separated list of courses and events with an ordering of information as follows: [Error Saving].
- Course: name,section,title,credits,instructor,meetingDays[,startTime,endTime]
- Event: title,meetingDays,startTime,endTime,details