How juboy/flexisaf-simp works
Flexisaf-SIMP is a Spring Boot student-information API. Clients submit validated student records or request listings, lookups, searches, updates, and deletion; the controller delegates operations to the student service, which validates business rules and coordinates repositories. New students receive a matric number and department association. A scheduled daily job finds birthday students and sends email. Startup seeds departments, and the application exposes Swagger documentation. Repository and service source supports the main call paths; configuration details and some implementation wiring were not sampled.
Main entry points: StudentController.java Student Controller · StudentServiceImpl.java Student Service Logic · StudentService.java Student Service · DepartmentRepository.java Department Repository
Components 16
HTTP API
- Student Controller
src/main/java/com/flexisaf/simp/controller/StudentController.java - Student Request
src/main/java/com/flexisaf/simp/controller/StudentRequest.java - Exception Handler
src/main/java/com/flexisaf/simp/controller/GlobalExceptionHandler.java - Swagger API Docs
src/main/java/com/flexisaf/simp/SimpApplication.java
Student Domain
- Student Service
src/main/java/com/flexisaf/simp/service/StudentService.java - Student Service Logic
src/main/java/com/flexisaf/simp/serviceImpl/StudentServiceImpl.java - Student Record
src/main/java/com/flexisaf/simp/model/Student.java - Department
src/main/java/com/flexisaf/simp/model/Department.java
Persistence
- Student Repository
src/main/java/com/flexisaf/simp/repository/StudentRepository.java - Department Repository
src/main/java/com/flexisaf/simp/repository/DepartmentRepository.java - Matric Repository
src/main/java/com/flexisaf/simp/repository/LastMatricRepository.java - Relational Database
Startup And Mail
- Department Bootstrap
src/main/java/com/flexisaf/simp/Bootstrap.java - Birthday Scheduler
src/main/java/com/flexisaf/simp/controller/StudentController.java - Mail Sender
Other components
- API Client
Connections 17
- API Client → Student Controller: sends requests
- Student Controller → API Client: returns responses
- Student Controller → Student Request: validates input
- Student Controller → Student Service: delegates operations
- Student Controller → Student Service: triggers daily mail
- Student Service → Student Service Logic: implemented by
- Student Service Logic → Student Repository: reads and writes
- Student Service Logic → Department Repository: checks department
- Student Service Logic → Matric Repository: allocates matric
- Student Service Logic → Student Record: builds records
- Student Repository → Relational Database: queries students
- Department Repository → Relational Database: reads departments
- Matric Repository → Relational Database: reads and writes IDs
- Department Bootstrap → Department Repository: seeds departments
- Student Service Logic → Mail Sender: sends birthday email
- API Client → Swagger API Docs: views API docs
- Student Controller → Exception Handler: handled exceptions