Skip to content

Requirements

Harvey Villanueva edited this page Oct 12, 2024 · 96 revisions

1. Login Procedure and Forgot Password Features.

Number Description Priority
1.1 The user shall login their account by inputting their username and password into their respective boxes and tapping submit. (See "Account Creation" requirement for more details on account creation.) Required
1.2 The application shall use Google FireBaseUI Auth to authenticate user sign-in attempts. This authentication will check to see if the account credentials are available in the backend database. Required
1.3 If the user provided correct login credentials, they shall be brought to the "Home" Screen with the correct account and class data. Required
1.4 The User shall login using their Google account. Desired
1.4.1 The User shall login using social media accounts like Twitter, FaceBook, LinkedIn, GitHub. Aspirational
1.4.2 The User shall have login using their Blackboard Educator account. Aspirational
1.5 The User can check a "Remember Me" box when signing in. Desired
1.5.1 If the User signs in with "Remember Me" checked, on subsequent startups the application shall immediately open with their username already filled in. Desired
1.6 The User shall sign in with biometrics (depending on the specific device). Aspirational
1.7 The User shall not need to login again for 1 hour after logging in. Aspirational
1.8 The User shall be able to tap "Forgot Password?" reset their password. Desired
1.8.1 Upon tapping "Forgot Password?", the user shall enter their account email and receive a password recovery email in their inbox. Desired
1.8.2 The User shall open a link in the recovery email which allows them to enter in a new password. Desired
1.8.3 The User can only enter a sufficiently complex, secure password on the password recovery webpage. Desired
1.8.4 The User must enter their password twice to reset it. Desired
1.8.5 The User shall be able to return from the "Forgot Password?" screen to the login screen. Desired

2. Account Creation

Number Description Priority
2.1 The User shall create an account using the "Sign Up" button. Required
2.2 When signing up, the User shall create an account by inputting their chosen username, password, and an email address. Required
2.2.1 The User can only enter plausible email addresses. (Has @ symbol, valid domain, ect.) Desired
2.2.2 The User can only enter unique usernames. Required
2.2.3 The User can only enter sufficiently complex, secure passwords, following CISA guidelines. Desired
2.2.4 The User must enter their password twice to sign up. Desired
2.3 Upon creating an account, an email shall be sent to the User's provided email address to verify it is valid and belongs to them. Aspirational
2.3.1 The User will be unable to login until a link in the verification email has been opened. Aspirational
2.3.2 If the User attempts to login without opening the verification link first, the User shall be able to resend the verification email. Aspirational
2.4 The User shall be able to return to the login screen from the sign up screen. Required

3. Home Screen Functionalities

Number Description Priority
3.1 The currently selected class's name is prominently displayed at the top of the screen to inform the User of the class selected. Required
3.1.2 If the user has not created any classes, they shall be immediately prompted to add a class. (See "Add a Class Features" requirements for more details.) Desired
3.2 The User shall be able to tap on boxes (representing student seats) and see the student details screen of the student sitting at that location, if the selected class has a seating grid. Desired
3.3 The User shall be able to visually see the initials of the student sitting in each seat/box, if the selected class has a seating grid. Desired
3.4 The User shall press the "SPOT" button to select a random student from the currently active class roster. (See "Student Selection Algorithm and Spotted Features" requirements for more information on the "Spotting" mechanics.) Required
3.4.1 After pressing the "SPOT" button an animation will occur where the seat of the selected student is highlighted and the 'Spotted' window opens. (See Student Selection "Spotting" Features for more information on the 'Spotted' window.) (Note: 5.13 can disable this animation.) Aspirational
3.5 From the 'Home' Screen, the User shall tap the hamburger menu in the top left to access and select from their list of classes. Required
3.5.1 Upon tapping into a class, the class data shall be loaded into the 'Home' Screen, changing the roster from which students will be selected. Required
3.5.2 The User can return to home screen from "Class List" screen via a back arrow button. Required
3.5.3 The User shall add a class from the class list screen via the '+' button. (See "Add a Class Screen Features" requirements for more detail.) Required
3.6 User can view the currently active class's performance statistics by selecting a button from the home screen. (See "Class Statistics Screen Features" requirements for more detail.) Required
3.7 User can view the currently active class's roster by pressing a button from the home screen. (See "Class Roster Screen Features" requirements for more detail.) Required
3.8 User can go to the settings screen by pressing a button from the home screen. (See "Settings Screen Features" requirements for more details.) Required
3.9 The User shall edit the selected class by pressing the 'Edit' button from the home screen. (See "Class Edit" requirements for more details.) Required
3.10 The User shall share their classes with other Users by pressing the "Social" button from the home screen. (See "Social Features" requirements for more details.) Aspirational

4. Student Selection Algorithm ("Spotting") and 'Spotted' Pop-Up Features.

Number Description Priority
4.1 The selection algorithm shall randomly select the name of a student from the current class's roster. Required
4.1.1 By default, the selection algorithm should avoid selecting anyone until everyone has been selected at least one time. (See the "Settings Screen Features" requirements for more details on how to specify it.) Desired
4.2 After 'spotting' a student, the application shall display a 'Spotted' pop-up with the student's name at the top of the screen. Required
4.3 The 'Spotted' pop-up shall display the number of times the student has been called on for that day. (Note: 5.15 can disable this feature.) Desired
4.4 The 'Spotted' pop-up shall display the student's average performance rating for the semester so far. (Note: 5.14 can disable this feature.) Desired
4.5 In the 'Spotted' pop-up, the User can rate the currently 'spotted' student's performance on a scale from 0 to 5 stars. Required
4.5.1 The User can drag left/right on ratings bar to increase/decrease rating Aspirational
4.6 In the 'Spotted' pop-up, the User can mark the currently 'spotted' student as absent. Desired
4.6.1 The selection algorithm shall not 'spot' students previously selected absent within the same day. Aspirational
4.7 In the 'Spotted' pop-up, the User can skip the currently 'spotted' student. Required
4.7.1 After the User 'skips' on a student, the selection algorithm will automatically 'spot' another student. Desired
4.8 In the 'Spotted' pop-up, the User can mark the currently selected student as unprepared. Desired
4.8.1 Students marked as unprepared shall receive a 0 star rating. Desired
4.9 The User can continue selecting random students by selecting the next arrow. Desired
4.9.1 After selecting the next arrow, the performance data (rating, student, class, date) inputted into the pop-up menu shall be submitted into the backend database. Desired
4.9.2 After selecting the next arrow, the application shall 'spot' for another student. Desired
4.10 The User can finish 'spotting' students by tapping the 'Done' button to return to the home screen. Required
4.10.1 By tapping the 'Done' button, the performance data (rating, student, class, date) inputted shall be submitted into the back end database. Required

5. Settings Screen Features.

Number Description Priority
5.1 The user can specify the selection algorithm i parameter: avoiding selecting anyone for an n-th time until everyone has been selected at least n-i times. Aspirational
5.1.1 The selection algorithm by default shall set i to be 1. (Avoid selecting anyone for the 2nd time, until everyone has been selected at least once.) Aspirational
5.1.2 The selection algorithm restricts i to be between the values of 1 and n-1. Aspirational
5.2 The user shall log out in the "Settings" Screen by tapping the 'Log Out' button. Required
5.3 The user can enable and disable the following feature: students labeled as skipped for a given day, will not be selected again within that same day. Aspirational
5.4 The user can enable and disable the following feature: for students labeled as absent on a given day, their probability to be selected will be raised by 10% the next day of class. Aspirational
5.5 The user can enable and disable the following feature: for students labeled as skipped on a given day, their probability will be raised by 10% the next day of class. Aspirational
5.6 The user can choose to use a letter grading rating system instead of 5 stars (A+, A, B+, B, C+, C, D+, D, F). Aspirational
5.6.1 For rating and statistics purposes, existing data is interpolated into the new rating system. Aspirational
5.7 The user can change to use a 0 through 10 rating system instead of 5 stars. Aspirational
5.7.1 For rating and statistics purposes, existing data is interpolated into the new rating system Aspirational
5.8 User can enable and disable the following feature: allow the ability to mark students as unprepared. Desired
5.9 The User can enable and disable the following feature: Selection animation will play for each student selection. Desired
5.10 Setting changes shall be saved in the Firestore database. Required
5.10.1 Each class shall have their own specific settings attributed to them. Required
5.11 The User can return to the home screen from the settings screen via the back button. Required
5.12 The User can enable and disable the following feature: see the selection animation after each 'SPOT'. Aspirational
5.13 The User can enable and disable the following feature: see the 'spotted' student's average performance history for the semester in the 'spotted' pop-up. Aspirational
5.14 The User can enable and disable the following feature: see the 'spotted' student's number of times called in the 'spotted' pop-up. Aspirational

6. Add a Class Features

Number Description Priority

Clone this wiki locally