TopEducation pre-university academy, located in Santiago, has decided to modernize and automate its tuition payment management process. Currently, administration is done manually using Excel sheets, leading to inaccuracies and student dissatisfaction. The proposed solution is to develop a web application that automates this process, providing a more efficient and transparent experience for both students and administrative staff.
The academy has been preparing students for university admission tests for over 15 years. However, the manual payment process has led to complaints due to errors in the payment records. The goal is to develop a web application that automates tuition payment management, improving accuracy and reducing complaints.
The application will manage detailed information about students, including RUT, last names, first names, date of birth, type of school of origin, among others. Payments can be made in a lump sum or in installments, with applicable discounts based on the type of school and years since the student graduated.
Additionally, additional discounts are considered based on students' academic performance in simulated admission exam tests.
- US1: Enter student data from the screen.
- US2: Generate tuition payment installments.
- US3: List payment installments for a student and the payment status of each installment.
- US4: Record tuition installment payments.
- US5: Import exam grades from Excel file.
- US6: Calculate tuition payment schedule.
- US7: Generate a summary report of payment status for students.
- The project will be managed using SCRUM and the JIRA tool.
- The application will be developed in Spring Boot (Spring Web, MySQL/PostgreSQL Driver, Spring Data JPA, Thymeleaf, Lombok) with Java.
- The architecture will be monolithic based on the layered architectural pattern.
- A relational database will be used (MySQL or PostgreSQL).
- The application will be developed using an IDE (IntelliJ, VS Code, etc.).
- The application will be deployed on a cloud server (AWS, Digital Ocean, etc.).
- Terraform will be used to provision the server.
- Deployment will be done with Docker Compose, including the database, web application, and Nginx as a load balancer.
- Source code will be managed in a GitHub repository.
- Git will be used for version control.
- A continuous delivery pipeline in Jenkins will be implemented to automate development, run unit tests (Junit), perform static analysis with Sonarqube, and upload the application to DockerHub.
- Testing coverage will be equal to or greater than 90%.
- Sonarqube analysis will show acceptable results for Reliability, Maintainability, and Coverage.
- Clone the repository from GitHub.
- Configure database properties in the configuration file.
- Run the Terraform script to provision the cloud server.
- Deploy the application with Docker Compose.
- Access the application from any web browser.