top of page
Foggy Pier

Maintenance manual

Requirements:

​

  • device with Android operation system

  • internet connectivity

​

Setup:

  • download the .apk file to your device and install it.

  • Open a Firebase project for this system.

  • on your PC, from the 'app' folder run 'firebase deploy' to use the remote DB, storage and functions (one time only).

note: our version uses the free plan of firebase with limited storage space and access to the DB and functions. For a scaled app you should consider to change the firebase plan.

Main app structure:

every use case in our system implemented in the following architecture. 
If one wishes to change something in the system bare in mind that structure:

general (3).png

​We designed our system in a way that each use case, has a corresponding MVVM "instance" as described in the following diagram, meaning that each use-case aUseCase has an associated view class (probably named aUseCaseFragment.java), associated view-mode class (aUseCaseViewModel.java) and associated model classes that are associated to the logic of the use-case. We belive that the use-case diagram is intuitive and a comfortable way to devide the system, while building it and on maintanence.

​

Activity/ Fragment - UI functionality

ViewModel - binding between the UI and the data it holds

Repositories - intended to give a good user experience so he will always see his information, thanks to this component indirect dependency on both local and remote data sources.

Model - the different data models the repositories manages
imageProcessing - component for manipulating and processing images
communication - component that bridges between the data models and the persistent data (local and remote).

Local Data Source - manages the operations on the local persistent data.

Remote Data Source - manages the operations on the remote persistent data.

Remote Functions - this component purpose is to create and update the output file for each exam - a spreadsheet.

This structure enables modularity in terms of changing the existing system.
For example:

  • replacing the algorithm that detects the exam and finds the students answers would require changes in imageProcessing

  • changing the method for calculating a student's grade would require changes in the Exam Model.

Future Versions:

There are some additions we reckon would be beneficial to the system:

  • Changing the format of the exam from one page only to multiple pages.

  • Enable the user flexibility in terms of his actions in the app. For instance, enable editing an exam answers, deleting a scan, add a grader to exam after its creation, etc.

  • Show user the accumulated average of solutions scanned by ALL graders

bottom of page