Freddy's BBQ - Order & Delivery
This project provides backend and frontend services for managing food orders and deliveries at Freddy's BBQ.
It includes REST APIs for placing orders and tracking deliveries.
📌 Entry Points(Currently not available. Please Check: Deploy Locally)
- Welcome Page (Menu)
- Displays the available menu items and initiates an order
- Delivery Overview (STAFF ONLY)
- Internal dashboard for tracking deliveries
- API Documentation (Swagger UI)
- Provides OpenAPI documentation for available REST endpoints
- Backend:
- Java 21 (Spring Boot)
- Spring Web & REST in a microservice architecture
- Hibernate & Spring Data JPA (PostgreSQL)
- OpenAPI documentation using Springdoc Swagger UI
- SMTP Mails
- Frontend:
- Thymeleaf, HTML, CSS, JavaScript
- Testing:
- JUnit & Mockito for unit and integration tests
- Testcontainers for database and service testing
- DevOps:
- GitLab CI/CD Pipeline with a Docker registry
- GitHub CI Pipeline
- Jenkins CI/CD Pipeline
- Deploy via ssh on Hetzner
- Deployment on Render.com
- Docker & Docker Compose for containerized deployment
- Gradle for build automation
You can run all microservices using docker-compose.yml.
Ensure you have Docker Desktop installed and running.
docker-compose upAfter running the command, the following services will be available:
- Customer Frontend → http://localhost:4200
- Staff Frontend → http://localhost:4300
- Order Backend (API) → http://localhost:8080
- Delivery Backend (API) → http://localhost:8081
- Mail Backend (API) → http://localhost:8010
To save costs when hosting on Render.com, the microservices are combined into a single deployment.
The release version merges all required services into one application (see Dockerfile in the root directory).
To start the release version:
docker-compose -f docker-compose-release.yml up