Features Implemented - noojman/Test-Prep-Grading-App GitHub Wiki

The user is initially greeted with a splash screen that introduces the app.

Splash Screen

Here, the user can input his or her credentials and sign in to their account for the app. Account management and security is implemented using Firebase Authentication, with some validation as well for the input fields.

Signing In

Alternatively, the user can create a new account and proceed from there.

Creating an Account

After signing in, the user is brought to this main menu. Note: some features are missing and can be found in the Future Work and Enhancements section of this Wiki.

Main Menu

The user is now able to take tests, or create custom tests. If the user selects the option to Create a Custom Test in the Main Menu, then he or she will be brought to this page. Here, the user can input all the fields describing the book and the specific test in the book.

Creating a Custom Test

The next page will allow the user to input the answer choices for each problem in the custom test that the user is creating.

Setting Answers for Custom Test

Finally, the user can press Submit to create the custom test and upload it to the database.

Submitting and Creating the Custom Test

Now, let's go find that test in the database. From the Main Menu, the user can select "Take a Test", then "Find a Test" in the next screen. The user will then be brought here. This page queries the Firebase Firestore Realtime Database to pull all available tests and displays the details in each card.

Finding a Test from the Database

The user can press and select the test he or she just created. They will be brought to the answer fill-in sheet where once they press begin, there is no going back.

Beginning a Test

Once the test begins, the timer also starts counting down (each test has its own pre-set timer value). The user will reference the book they obtained elsewhere, likely from the publisher, for the questions themselves. This app serves as an answer sheet and an auto-grader at the end.

Taking a Test with a Timer

If the timer runs out, then this uncancelable dialog box will pop up forcing the user to submit and proceed to the test report.

Running Out of Time

Alternatively, if the user completes their test early, then they can press the Complete and Submit to proceed to the Test Report and skip the timer.

Finishing a Test Early

After the test, the user will be shown their score. There are plans for more personalized statistics to be shown here in the Future Work and Enhancements section.

Test Report

The user can visit the settings to adjust audio and notification settings. Additionally, the user can sign out from here.

Signing Out