This is the main project from Java Development Capstone Project course and was created using okssu-java-database-capstone-template template.
This is a Spring Boot full-stack application following the MVC (Model–View–Controller) architectural pattern.
It represents a Clinic Management System (CMS) providing both Thymeleaf templates and REST APIs.
The application interacts with two databases—MySQL (for patient, doctor, appointment, and admin data) and MongoDB (for prescriptions).
Since Spring MVC is used for this project, code is organized into three layers:
- Model: Data and business logic
- View: UI or presentation layer
- Controller: Handles input and orchestrates between Model and View
- Big enumerated comment blocks in some project files are the initial code development instructions provided by the course.
- There is a central Service class that provides multiple functionalities: authentication, validation, and coordination across entities.
The project is developed under the course instructions, so any personal opinions regarding structure, logic or design are limited. Below I am stating some things I would personally implement differently:
- Common responses among methods. Some return zeros and ones while others true or false
- Implementation of Mapper class to map entities to DTOs and vice versa
- More robust role checking. Current one is fragile and introduces potential security issues
- Spring security implementation & Password encoding
- Access Token to be transferred via the headers and not in the url.
- Use of Lombok annotations for reducing boilerplate code
- Separation of validation logic into a validator class
- Global error handling
- Records as DTOs
🚧 Project Under Construction...