CSC 217 Lab 04: Designing PackScheduler
Faculty Functionality
Now that you have compared two designs and integrated two systems to meet a provided design, you should propose your own design for the faculty functionality.
Creating your Design
Using the extended requirements below, current requirements(04-lab-requirements), and the candidate designs from Part 1, you will extend the one of the designs to include the faculty functionality discussed below.
Updated or New Requirements
- PackScheduler
- Faculty Directory
- Faculty Scheduling
We have provided an UXF class diagram file that can be used by the web application UMLetino. Select File Import and select an UXF file.
Another diagramming tool option is PlantUML
Submitting your Design
For Dia, export the finished design as a *.png file by selecting File > Export. Under Export Options select PNG (anti-aliased)(*.png).
For UMLetino, select the File Export option, right click on XML AND image export. Export both.
Save your class diagram files to the project_docs/
folder in your PackScheduler
project.
Push to GitHub
Push your PackScheduler
project to GitHub
- Add the unstaged changes to the index.
- Commit and push changes. Remember to use a meaningful commit message describing how you have changed the code.
Make sure that your design is submitted for grading!
Reminder: Staging and Pushing to GitHub
GitHub Resources:
Faculty Requirements
Below are the requirements for faculty in the PackScheduler
system.
Use Case 0: Start PackScheduler
Starts the PackScheduler application.
Main Flow
- The user starts the Pack Scheduler application.
- The user enters their id and password in the authentication area and clicks the OK button [Hash Password] [Already Logged In] [Invalid Authentication].
- The user is redirected to the appropriate functionality for the user type of [Registrar], [Student], or [Faculty].
Extensions (Sub-flows)
- [Hash Password] The provided password is hashed using the SHA-256 algorithm and is compared with the user’s stored password [Invalid Authentication].
- [Registrar] The Registrar can work with the [Student Directory], [Course Catalog], and the [Faculty Directory].
- [Student] The Student can [Modify their Schedule].
- [Faculty] The Faculty member can [View their Schedule].
- [Student Directory] The registrar can do one or more of the following tasks related to the Student Directory:
- [Course Catalog] The registrar can do one or more of the following tasks related to the Course Catalog:
- [Modify their Schedule] The student can do one or more of the following tasks realated to Student Scheduling:
- [Faculty Directory] The registrar can do one or more of the following tasks realted to the Faculty Directory:
- [View Schedule] The faculty can do the following:
Alternative Flows
- [Already Logged In] If a user is already logged into the system, a new user may not log in.
- [Invalid Authentication] If the user doesn’t exist in the system or the user’s hashed password doesn’t match the stored hashed password, a pop-up message stating “Invalid id or password” is displayed. The user clicks OK and is returned to the authentication window.
Use Case 18: Create Faculty Directory
The registrar can create a new, empty, faculty directory.
Preconditions
The PackScheduler application has started and the registrar has selected to work with Faculty Directories.
Main Flow
- The registrar clicks the New Faculty Directory button.
- A new empty Faculty Directory is created.
- The display is updated so that the Faculty Directory list is empty.
Use Case 19: Load Faculty Directory
The registrar can load a faculty directory from a file.
Preconditions
The PackScheduler application has started and the registrar has selected to work with Faculty Directories.
Main Flow
- The registrar clicks the Load Faculty Directory button.
- A dialog appears and the user can browse the file system for the text file containing faculty information [Faculty Records Data Format] [Invalid File].
- A list of faculty is created from valid records. Invalid records are ignored [Invalid Faculty Records].
- All faculty are stored in the directory in alphabetical order by last name and then by first name. If there are two faculty with the same name, then the id is considered in the sort.
Alternative Flows
- [Invalid File] If the file cannot be found on the file system, the error message “Unable to read file X” is displayed, where ‘X’ is the filename. The user clicks OK and is returned to the faculty directory display.
Use Case 20: Save Faculty Directory
The registrar can save the current list of faculty in a faculty directory to a file.
Preconditions
The PackScheduler application has started and the registrar has selected to work with Faculty Directories.
Main Flow
- The registrar clicks the Save Faculty Directory button.
- A dialog appears and the user selects the location to save the list of faculty and provides a name for the file [Error Saving].
- The list of faculty is saved to a text file with a faculty record on each line [Faculty Records Data Format]. The faculty are saved in sorted order by last name, first name, and id.
Alternative Flows
- [Error Saving] If the file cannot be saved, the error message “Unable to write to file X” is displayed, where ‘X’ is the filename. The user clicks OK and is returned to the faculty directory display.
Use Case 21: Add Faculty to Faculty Directory
The registrar can add a faculty to the faculty directory.
Preconditions
The PackScheduler application has started and the registrar has selected to work with Faculty
Main Flow
- The registrar enters information about a new faculty member in the Faculty Information portion of the user interface [Faculty Records Data Format] and clicks Add Faculty button.
- first name [Invalid First Name]
- last name [Invalid Last Name]
- id [Invalid ID]
- email [Invalid Email]
- password [Invalid Password]
- repeat password [Invalid Password]
- max courses [Invalid Max Courses]
- The password and repeated password are hashed using SHA-256 and must match [Non-matching Passwords].
- The faculty is added to the Faculty Directory in sorted order by last name, first name, and id [Non-unique ID].
Alternative Flows
- [Invalid First Name] If the faculty’s first name is invalid [Invalid Faculty Records], the error message “Invalid first name” is displayed. The user clicks OK and is returned to the faculty directory display.
- [Invalid Last Name] If the faculty’s last name is invalid [Invalid Faculty Records], the error message “Invalid last name” is displayed. The user clicks OK and is returned to the faculty directory display.
- [Invalid ID] If the faculty’s id is invalid [Invalid Faculty Records], the error message “Invalid id” is displayed. The user clicks OK and is returned to the faculty directory display.
- [Invalid Email] If the faculty’s email is invalid [Invalid Faculty Records], the error message “Invalid email” is displayed. The user clicks OK and is returned to the faculty directory display.
- [Invalid Password] If the faculty’s password or repeated password is invalid [Invalid Faculty Records], the error message “Invalid password” is displayed. The user clicks OK and is returned to the faculty directory display.
- [Invalid Max Courses] If the faculty’s max courses are invalid [Invalid Faculty Records], the error message “Invalid max courses” is displayed. The user clicks OK and is returned to the faculty directory display.
- [Non-matching Passwords] If the faculty’s password and repeated passwords do not match, the error message “Passwords do not match” is displayed. The user clicks OK and is returned to the faculty directory display.
- [Non-unique ID] If the faculty’s id is not unique, the error message “Faculty already in system.” is displayed. The user clicks OK and is returned to the faculty directory display.
Use Case 22: Remove Faculty from Faculty Directory
The registrar can remove a faculty from the faculty directory.
Preconditions
The PackScheduler application has started and the registrar has selected to work with Faculty Directories.
Main Flow
- The registrar selects a faculty in the Faculty Directory list and clicks the Remove Faculty button [No Faculty Selected].
- The faculty is removed from the Faculty Directory list.
Alternative Flows
- [No Faculty Selected] If there is no faculty selected, the error message “No faculty selected.” is displayed. The user clicks OK and is returned to the faculty directory display.
Use Case 23: View Faculty Schedule
A faculty member can view their class schedule.
Preconditions
The PackScheduler application has started and a registered faculty member has logged in.
Main Flow
- The faculty member can see their schedule in a table.
- The faculty member selects a course.
- 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.
Data Format
Faculty Records
Faculty records can be saved and loaded from a file in the correct format. An example of a valid file would be:
Ashely,Witt,awitt,mollis@Fuscealiquetmagna.net,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,2
Fiona,Meadows,fmeadow,pharetra.sed@et.org,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,3
Brent,Brewer,bbrewer,sem.semper@orcisem.co.uk,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,1
Halla,Aguirre,haguirr,Fusce.dolor.quam@amalesuadaid.net,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,3
Kevyn,Patel,kpatel,risus@pellentesque.ca,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,1
Elton,Briggs,ebriggs,arcu.ac@ipsumsodalespurus.edu,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,3
Norman,Brady,nbrady,pede.nonummy@elitfermentum.co.uk,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,1
Lacey,Walls,lwalls,nascetur.ridiculus.mus@fermentum.net,0ÉRú±"ÃùuŸ¦Ù\7X²F´þâ9•{-OîFâapÄ,2
A faculty record has a first name, last name, id, email address, password, and max number of courses they can teach in a given semester. To protect the faculty’s information, the faculty’s password should be hashed using SHA-256 when stored.
When stored in a text file, a faculty record is a comma separated list in the following format:
firstName,lastName,id,email,hashedPassword,maxCourses
Invalid Faculty Records
A faculty record is invalid in at least the following situations:
- an item is missing
- first name is null or an empty string
- last name is null or an empty string
- id is null or an empty string
- email is null or an empty string
- email doesn’t contain an ‘@’ character
- email doesn’t contain a ‘.’ character
- the index of the last ‘.’ character in the email string is smaller than the index of the first ‘@’ character (e.g., first.last@address would be invalid)
- the password is null or an empty string
- max courses is under 0 or above 3