The SE347 Backend Project is a Spring Boot application designed to provide user registration, authentication, and account management features. It utilizes Spring Data MongoDB Reactive for data persistence and Spring Security for authentication and authorization. The project is structured to facilitate easy development and deployment using Docker.
D:\code\se347-backend
βββ .github
β βββ workflows - Contains GitHub Actions workflows for CI/CD pipelines.
βββ user-svc
βββ .mvn
β βββ wrapper - Contains Maven wrapper scripts for managing dependencies and building the project.
βββ src
βββ main
β βββ resources - Contains configuration files, templates, and other resources used by the application.
β β βββ META-INF - Contains metadata files for the application.
β βββ java - Contains the source code for the application.
β βββ com
β βββ github
β βββ ngodat0103
β βββ usersvc
β βββ controller - Contains controllers responsible for handling incoming requests and returning responses.
β βββ dto - Contains data transfer objects (DTOs) used for data exchange between the application and external services.
β β βββ mapper - Contains mappers for converting between DTOs and domain objects.
β βββ exception - Contains custom exception classes for handling errors.
β βββ security - Contains classes related to security configuration and authentication.
β βββ service - Contains service classes responsible for business logic.
β β βββ impl - Contains implementations of service interfaces.
β βββ swagger - Contains configuration for Swagger documentation.
β βββ persistence - Contains classes related to data persistence.
β βββ document - Contains domain objects that represent data stored in the database.
β βββ repository - Contains repositories for interacting with the database.
βββ test - Contains unit and integration tests for the application.
βββ java
βββ com
βββ github
βββ ngodat0103
βββ usersvc
βββ controller - Contains integration tests for the controllers.
- Java 17: The programming language used for the application.
- Spring Boot 3.3.5: Framework for building the RESTful API.
- Spring Data MongoDB Reactive: For interacting with a MongoDB database.
- Spring Security Jwt: For authentication and authorization.
- Docker: For containerization and deployment.
- GitHub Actions: For CI/CD pipelines.
- Swagger: For API documentation.
- Testcontainers: For integration testing.