How sathishsegu/multiuserprojectandtaskmgmtsystemapplication works
This Spring Boot backend manages users, role-governed projects, and project tasks. Clients identify the acting user with an X-USER-ID header; REST controllers delegate to services, which enforce permissions and domain rules and return DTOs. The main workflow spans user/project membership, task creation and assignment, task status changes, and paginated task queries; login is a separate authentication path. Task handling includes optimistic locking, while projects support soft deactivation. MySQL is the documented persistence system. Several service implementations and their wiring were not sampled, so their internal calls are not detailed here.
Main entry points: TaskServiceImpl.java Task Service · UserRepository.java User Repository · AuthController.java Authentication API · UserController.java User API
Components 17
REST API
- Authentication API
src/main/java/com/flm/mgmtsystem/controller/AuthController.java - User API
src/main/java/com/flm/mgmtsystem/controller/UserController.java - Project API
src/main/java/com/flm/mgmtsystem/controller/ProjectController.java - Task API
src/main/java/com/flm/mgmtsystem/controller/TaskController.java
Domain Services
- Login Service
src/main/java/com/flm/mgmtsystem/service/impl/AuthServiceImpl.java - User Service
src/main/java/com/flm/mgmtsystem/service/impl/UserServiceImpl.java - Project Service
src/main/java/com/flm/mgmtsystem/service/impl/ProjectServiceImpl.java - Task Service
src/main/java/com/flm/mgmtsystem/service/impl/TaskServiceImpl.java
Persistence Model
- User Repository
src/main/java/com/flm/mgmtsystem/repository/UserRepository.java - Project Repository
src/main/java/com/flm/mgmtsystem/repository/ProjectRepository.java - Task Repository
src/main/java/com/flm/mgmtsystem/repository/TaskRepository.java - User Records
src/main/java/com/flm/mgmtsystem/entity/User.java - Project Records
src/main/java/com/flm/mgmtsystem/entity/Project.java - Task Records
src/main/java/com/flm/mgmtsystem/entity/Task.java
Error Handling
- Exception Mapper
src/main/java/com/flm/mgmtsystem/exception/GlobalExceptionHandler.java
Other components
- API Client
- MySQL
Connections 16
- API Client → Authentication API: sends login
- API Client → User API: sends requests
- API Client → Project API: sends requests
- API Client → Task API: sends requests
- Authentication API → Login Service: calls login
- User API → User Service: calls user actions
- Project API → Project Service: calls project actions
- Task API → Task Service: calls task actions
- Login Service → User Repository: looks up user
- Task Service → User Repository: loads users
- Task Service → Project Repository: loads projects
- Task Service → Task Repository: queries tasks
- User Repository → MySQL: persists data
- Project Repository → MySQL: persists data
- Task Repository → MySQL: persists data
- API Client → Exception Mapper: receives errors