Skip to content

Requirements

William Edwards edited this page Oct 10, 2024 · 96 revisions

1 - User shall be able to log in or sign up

1.1 - App shall open to the login/sign-up screen where users can choose to log in with a pre-existing account or sign up (Required)
1.2 - App shall use Google FireBaseUI Auth to authenticate user sign-ins (Required)
1.3 - User shall be allowed to create their own username and password when signing up (Required)
1.4 - Passwords shall be checked for strength and only allowed if strong enough (Desired)
1.5 - User shall be allowed to log in/sign up using their Google account (Desired)
1.6 - User shall be allowed to log in/sign up using other accounts like Twitter, GitHub, FaceBook etc. (Aspirational)
1.7 - User shall be allowed to check a "Remember Me" box so that they are automatically logged in on subsequent visits (Desired)

2 - User shall be able to access various app functionalities through the Home Screen

2.1 - User shall access the Home Screen after logging in/signing up to the app (Required)
2.2 - User can select the "SPOT" button to select a random student from the currently active class roster (Required)
2.3 - User can view their different classes in a list by selecting a button (Required)
2.4 - User can access different classes by selecting them from the list (Required)
2.5 - User can view the currently active class's performance statistics by selecting a button (Required)
2.6 - User can view the currently active class's roster by selecting a button (Required)
2.7 - User can edit the currently active class by selecting a button (Required)
2.8 - User can access the app settings by selecting a button (Desired)

3 - User can randomly select a student from the class roster

3.1 - Selection algorithm randomly selects the name of a student from the current class's roster and displays their name on the screen (Required)
3.2 - The student's current ranking and number of calls is displayed along with their name (Desired)
3.3 - Selection algorithm does not repeat the previous 5 selected students (Desired)
3.4 - Selection algorithm does not select students previously selected absent in the same day (Desired)
3.5 - Selection algorithm increases the chances of absent students to be selected in future classes (Aspirational)
3.6 - User can skip the currently selected student to select a different student (Desired)
3.7 - User can rate the currently selected student's performance from 0 to 5 stars (Desired)
3.8 - User can continue selecting random students or return to the Home Screen (Required)

4 - User can create new classes

4.1 - User can create a new class by selecting a button under the list of existing classes (Required)
4.2 - User can create a no-layout class which simply maintains a roster with no seat assignments (Required)
4.3 - User can select a classroom layout to use: grid, bowl, etc. (Desired)
4.4 - User can adjust the number of seats in each row and column (Desired)
4.5 - User can create their own classroom layout with a simple drag-and-drop interface for desks (Aspirational)
4.6 - User can add students to a class roster one at a time (Required)
4.7 - User can import an entire class roster through a CSV file (Desired)
4.8 - User can assign students in the roster to seats in the layout through drag-and-drop (Desired)\

Clone this wiki locally