This application is a user, book, and sales management system, built on Spring Boot. Its purpose is to enable user authentication, resource management based on roles and permissions, and interaction with a database for storing book and transaction information. Users with different access levels can add, modify, or delete books and sales according to the permissions assigned to their roles.
β Layered Architecture β The application is structured into layers:
- Controller Layer β Exposes the APIs
- Service Layer β Contains the business logic
- Repository Layer β Interacts with the database
β
SOLID Principles β The application follows best practices to ensure scalability and maintainability.
β
Dependency Injection (DI) β Object instance management is handled by Spring, ensuring loosely coupled components.
β
Design Patterns β
- Builder Pattern β Used in DTOs for object creation
- Repository Pattern β Separates database logic from application logic
β
Role-based security system β Using Spring Security, each user has a role with specific permissions.
β
SQL Database β A relational database is used for data persistence.
- Backend: Java, Spring Boot
- Security: Spring Security (authentication, authorization, password hashing)
- Persistence: Spring Data JPA, Hibernate
- Database: MySQL
- Frontend (minimal integration): Thymeleaf for server-side rendering
- Version Control: Git
- Deployment: Railway (cloud hosting for Spring Boot applications)
This application provides secure user and permission management, a scalable REST API interface, and can be easily extended to include new functionalities.