This is a backend system for a collaborative restaurant management platform developed as part of a tech challenge. The project aims to create a solution for restaurant management and customer interaction.
- User Management (Restaurant Owners and Customers)
- Password Change Functionality
- Restaurant and Menu Management
- Database Migration Management with Flyway
- API Documentation with Swagger
- Unit and Integration Testing
- Designed with Clean Architecture for better scalability and maintainability
- Backend: Java 21, Spring Boot
- Architecture: Clean Architecture
- Database: PostgreSQL
- Containerization: Docker, Docker Compose
- ORM & Migrations: Hibernate, Flyway
- Testing: JUnit, Mockito
- Java 21 JDK
- Docker
- Docker Compose
-
Clone the Repository
git clone https://github.com/rtcarbone/jaba-food-clean-arch.git cd jaba-food-clean-arch -
Build and Run the Application
docker-compose up --build
-
Access the Swagger UI
After starting the application, you can access the Swagger UI at:http://localhost:8080/swagger-ui/index.html
The project follows Clean Architecture, ensuring better separation of concerns and maintainability. The main layers include:
- Entities: Business rules and core logic
- Use Cases: Application-specific rules
- Frameworks & Drivers: Infrastructure components like controllers and repositories