How sunilos/springboot works
SOSSpringBoot is a Spring Boot REST application for marksheets, users, roles, and document metadata and file content. Clients call domain APIs; controllers delegate to services, which persist through a custom EntityManager DAO for marksheets, users, and roles, or Spring Data repositories for documents. User login returns a JWT, and the documented interceptor checks protected requests. The README also describes validation and actuator endpoints, but their implementation is not represented in the sampled source. Links reflect excerpted calls and README statements; unsampled wiring is not inferred.
Main entry points: UserCtl.java User API · DocumentServiceImpl.java Document Service · MarksheetCtl.java Marksheet API · RoleCtl.java Role API
Components 23
REST API
- Marksheet API
src/main/java/com/sunilos/springboot/ctl/MarksheetCtl.java - User API
src/main/java/com/sunilos/springboot/ctl/UserCtl.java - Role API
src/main/java/com/sunilos/springboot/ctl/RoleCtl.java - Document API
src/main/java/com/sunilos/springboot/ctl/DocumentCtl.java - Actuator Endpoints
Domain Services
- Marksheet Service
src/main/java/com/sunilos/springboot/service/MarksheetServiceImpl.java - User Service
src/main/java/com/sunilos/springboot/service/UserServiceImpl.java - Role Service
src/main/java/com/sunilos/springboot/service/RoleServiceImpl.java - Document Service
src/main/java/com/sunilos/springboot/service/DocumentServiceImpl.java
Persistence
- Marksheet DAO
src/main/java/com/sunilos/springboot/dao/MarksheetDAOImpl.java - User DAO
src/main/java/com/sunilos/springboot/dao/UserDAOImpl.java - Role DAO
src/main/java/com/sunilos/springboot/dao/RoleDAOImpl.java - Document Repository
src/main/java/com/sunilos/springboot/dao/DocumentRespositoryInt.java - Summary Repository
src/main/java/com/sunilos/springboot/dao/DocumentSummaryRespositoryInt.java - Marksheet Entity
src/main/java/com/sunilos/springboot/bean/Marksheet.java - User Entity
src/main/java/com/sunilos/springboot/bean/User.java - Role Entity
src/main/java/com/sunilos/springboot/bean/Role.java - Document Entity
src/main/java/com/sunilos/springboot/bean/Document.java - Document Summary
src/main/java/com/sunilos/springboot/bean/DocumentSummary.java - MySQL Database
Authentication
- JWT Utility
src/main/java/com/sunilos/springboot/ctl/JwtUtil.java - JWT Interceptor
src/main/java/com/sunilos/springboot/ctl/FrontCtl.java
Other components
- API Client
Connections 21
- API Client → Marksheet API: calls API
- API Client → User API: calls API
- API Client → Role API: calls API
- API Client → Document API: calls API
- API Client → Actuator Endpoints: calls API
- Marksheet API → Marksheet Service: delegates to
src/main/java/com/sunilos/springboot/ctl/MarksheetCtl.java - User API → User Service: delegates to
src/main/java/com/sunilos/springboot/ctl/UserCtl.java - Role API → Role Service: delegates to
src/main/java/com/sunilos/springboot/ctl/RoleCtl.java - Document API → Document Service: delegates to
src/main/java/com/sunilos/springboot/ctl/DocumentCtl.java - User API → JWT Utility: uses tokens
src/main/java/com/sunilos/springboot/ctl/UserCtl.java - JWT Interceptor → JWT Utility: validates tokens
- Marksheet Service → Marksheet DAO: delegates to
src/main/java/com/sunilos/springboot/service/MarksheetServiceImpl.java - User Service → User DAO: delegates to
src/main/java/com/sunilos/springboot/service/UserServiceImpl.java - Role Service → Role DAO: delegates to
src/main/java/com/sunilos/springboot/service/RoleServiceImpl.java - Document Service → Document Repository: reads and writes
src/main/java/com/sunilos/springboot/service/DocumentServiceImpl.java - Document Service → Summary Repository: searches summaries
src/main/java/com/sunilos/springboot/service/DocumentServiceImpl.java - Marksheet DAO → MySQL Database: persists entities
- User DAO → MySQL Database: persists entities
- Role DAO → MySQL Database: persists entities
- Document Repository → MySQL Database: stores documents
- Summary Repository → MySQL Database: reads summaries