Attendance Tracker Project Software Requirements
A after a few weeks we had determined our official software requirements. Along with a requirements glossary which would be carried over to nearly all of our follow up documents.
Notes
This page actually contains less information than our original Software Requirements document contained. With the reason behind that being that I did not want this page to be a complete copy paste from the original document.
Images that contain identifiable information are also redacted. Though the student names will not be as they where random names used for display purposes only.
Requirements Glossary
Our requirements glossary was relatively simple. And while it likely could have been expanded it defined everything that we felt could be in question.
Word/Terminology | Definition |
---|---|
QR Code | A graphical encoding of information that is machine-readable similar to a barcode and can be scanned with a camera. |
OAuth | An open standard that is used to allow users to give other sites access to certain information without using a username and password. Can be used for account creation as well as sign-in. Examples of this include the sign-in with Google feature seen on many websites |
CSV File | A kind of text file that contains values separated with commas and new line characters. Can be opened and edited as a text file with many spreadsheet applications also providing the ability to edit them in a table format |
User Requirements
To determine the final requirements our team met with the client as well as went over the document provided by the previous team. And in doing so it was determined we had the following requirements.
User Authentication
This requirement was specifically requested by the client. And will allow the professor’s information to be stored to an online account in a database. And in doing so it would allow allow the client and future professors using the app to use the app and the same records across multiple devices.
Creating and Viewing Semesters
It was also determined that to better organize the classes that a professor might host we would need to provide a method of dividing the classes into different semesters. Allowing “duplicate” classes to exist in different semesters.
Creating, Viewing, and Interacting with Classes
A pivotal part of the project through was that a professor will need to be able to create, view, and interacting with classes. Which will contain a list of students. This requirement also requires the professor to be able to import student lists. As well as export student attendance records. Then allowing the professor to email the QR codes to students. While also allowing students within a class to be marked as present manually if the QR code scanning fails.
Counting Students for Attendance
During normal operation though students should be able to scan the QR codes they received in their email to mark themselves as present. While also providing an error output to notify the student haven’t been marked as present. So they can either try again or be manually marked by the professor.
Exporting Attendance and Attendance Reports
The professor will also need to be able to view the attendance records of the students within a class. As well as export it in the form of a CSV. Allowing them to transfer that information into other programs.
User Cases
We also determined the following use case diagram. With there being two actors that interact with the app in question. The main user or Professor who interacts with the app the most. As well as the student who will at most scan their QR code using the Professor’s device as a kiosk.
System Requirements/Flow
We also developed a state diagram showing where specific functionality would be found in the app. With there being different requirements for the system at each state.
Sign-in and Authentication
Login Screen Prototype
Login Selection
When the professor or user first opens the app they will be presented with the first screen and prompted to log in. With login being handled through Google OAuth.
Semester List and Class List
List of Semesters
Add Semester
Once the user is logged in they will then be presented with their list of semesters. Which will be blank for a new user. Otherwise they will have the option to add a new semester or select and existing one.
List of Classes
Add Class
Once a semester is selected they will then be able to add a class an select one in a similar manor to within the semesters list.
Student List
Empty Class List
Selecting a file to import
Populated class list
Mark as present
Once the user selects a class they will then be able to perform a variety of actions within a class. Including importing a class list, scanning QR codes, adding student individually or marking them as present manually.
Non-functional Requirements
It was also determine that the project had the following nonfunctional requirements.
Scalable
So that the project can be later deployed it needs to be easily scalable to handle more users. While also being able to handle more student information that will result from their being more users.
Reliable
The project also needs to reliable compared to the system it is replacing. Otherwise it will cause more problems than it solves.
This means it will need to be possible to use the app to take attendance if for some reason the QR codes fail to scan. Among other issues.
Maintainable
The project will also need to be maintainable in order for future teams to be able to add more features. With this being achieved through documentation that will allow future teams to quickly be able to work with the project.
Usable
While currently the app will have a single user being the client. The intend is that other professors at the University will be able to use the app. Meaning that the functionality will need to be easily understood and used by more than just a single user.
Manageable
The project will also need to be manageable well after all the development teams are gone. In order to simply provide more benefits.
Tablet Platform
The project will also be used most often on a Android tablet and needs to developed in a manner that allows it to function well on a tablet as requested by the client.
Android Application
Again according to the clients requirements it will need to be an android application.
Java
With the Java requirement being the same as the requirement for it to be an Android Application where it was requested by the client.
Technical Requirements
For this project our group made use of an online Database as well as other development tools in Android Studio. With the version control system being used being Git with GitHub as the host.
Project Risks
With all projects there are some risks involved. And for this project our group determined that the main risk would be that we could fail to meed our goals in the alloted time. We will also be using 3rd party libraries that are subject to possible change. Either in implementation or in the cost they are to use.