As outlined in the UI Overview, the Test Tool system is comprised of two seperate user interfaces - one for students and one for professors. The program is intended to run on the student or the professor's computer and the database is intended to be on the internet/cloud. The Test Tool system is comprised of two separate application programs. This way, students can take a test on any computer as long as they have a computer with the software running. Professors can also create, generate, and proctor tests quickly.
In our application, the hardest things to implement in our program will be the generate test and the database schema. Due to the nature of the application, it is extremely hard to build the database schema as there are many variations of questions that can be created. Additionally, we need to implement algorithms that can generate any test a professor wishes to create. These algorithms may be slow and complex, which we may need to optimize for it to finish within the 5 second time limit.
Aside from generating and setting the database up, other operations should be fairly straightforward with just http requests to and from the database to modify data.