Model and implement an SQL DB, and a Java Web Application

Job ID: 32085525

Budget: $3,000 – $5,000 USD

OBJECTIVE
Model a SQL database and develop the backend and frontend of a web application in Java according to Spring boot and MVC.

The web application is aimed at school principals to track brief formative evaluations recorded by their teachers in the mobile application "Leo y Sumo".

- The “Leo y Sumo” mobile application is available on Play Store (SEE LINK IN FILE ATTACHED)
- To see how the mobile app works, check the file attached
- The mobile app stores all data in a firebase database but we now want to have all data stored in an SQL database.
- We also currently have a Laravel version of the web application you will build in Java. You can see the prototype of the web app in the file attached. Once we get started you will also have access to the Laravel web app.

CONTEXT
- Exit tickets are brief formative evaluations that allow tracking the learning achievement of each student in a class.
- Exit tickets are predefined for each class or grade-subject combination. Likewise, the tickets are related to a learning objective and a learning axis.
- The grades range from 1st to 4th grade, and the subjects are language and mathematics.
- An example of a 1st grade-language ticket is “Does the word apple start with letter A?”. This ticket might belong to a learning objective (LO) such as “Students should know all vowels”. As such, there will be many tickets related to the same LO. Last, this LO belongs to an “Axis” called “Reading”. Naturally, many different LO will be associated with “Reading”.
- Users of the mobile application "Leo y Sumo" record correct, incorrect and omitted answers in the exit tickets for each student of a class.
- Through a "school code" the users of the mobile application link their records with the school to which they belong.
- Each school is identified through a unique numerical code known as RBD.

ACTIONS WITHIN THE WEB APP
The following actions should be considered for the database modeling:

- The user can log in with his school's RBD and with a default password.
- The user can see in his session, information and ticket registration only from his school.
- The user can see the number of teachers at the school who are users of the mobile app.
- The user can see the number of teachers at the school who have registered one or more exit tickets in the mobile app during the last 7 days.
- The user can see the percentage of correct tickets according to each learning objective and each learning axis for each teacher-grade-subject combination.
- The user can see the percentage of registered tickets according to each learning objective and each learning axis for each teacher-grade-subject combination.
- The user can see the distribution of students in a class according to the percentage of correct, incorrect and omitted answers for each student.
- The user can export the results of point 5, 6 and 7 in a pdf.
- The user can select to view the information of points 5, 6 and 7, added by grade or by subject.
- The user can select to view the information of point 5 and 6, filtering by learning axis.

TASKS
- You will need to design and develop a database that will store all information coming from the mobile app.
- You will later create a web app that allows school principals to access the information recorded by their teachers when using the mobile app.
- You will implement all APIs that will be used by both the web app and mobile app.

DELIVERABLES
- Gantt chart of the project.
- Database design documentation: entity relationship diagram or class diagram.
- A list with all APIs required by the mobile application and the web application. In order to identify all queries for the mobile app you will work with a mobile app programmer.
- Documentation with all APIs implemented and tested.
- Web application code in Github.
- Integration and continuous deployment with Jenkins (desirable).
- Application running in production (Google Cloud Platform).
- Application documentation. How to run locally and how to deploy.