Backend API for a restaurant ordering and management system. The application covers guest ordering flows, employee/admin management flows, menu management, cashless payments, payment status synchronization, analytics, and API documentation through Swagger/OpenAPI.
- Guest-facing order flow:
- create and read current table order;
- add or update guest order items;
- return the full order with the current guest identified first, so the client can highlight this guest's items and still show the whole table order.
- Employee/admin order flow:
- manage dining tables and orders;
- update item statuses and employee comments;
- view order history.
- Menu management:
- menu categories and child categories;
- menu items, localized names/descriptions, ingredients, prices, and images;
- soft-delete behavior for menu entities.
- Employee and security flows:
- employee login/logout;
- JWT-based access/refresh cookies;
- employee profile update;
- registration, email change, password reset, and related email actions.
- Payments:
- guest payment creation;
- employee/admin payment lookup;
- Monobank and Stripe integrations;
- provider webhook handling;
- scheduled pending payment status synchronization.
- Management and analytics:
- restaurant configuration;
- schedule and employee shifts;
- monthly cashless revenue/tips analytics;
- cashless tip payout tracking.
- Java 25
- Spring Boot 4
- Spring Web MVC
- Spring Security
- Spring Data JPA / Hibernate
- MySQL 8.4
- Liquibase
- Maven
- Lombok
- Bean Validation
- Springdoc OpenAPI / Swagger UI
- JWT (
jjwt) - Resend Java SDK
- Monobank API integration
- Stripe API integration
- ZXing for QR-code generation
- Docker / Docker Compose
Swagger UI is available at:
- Local: http://localhost:8083/swagger-ui/index.html
- Remote: https://accanto.adammudrak.pp.ua/swagger-ui/index.html
OpenAPI JSON is available at:
The local environment uses dummy secrets by default. It is intended for local startup, schema validation, and non-provider development flows.
The project is 100% functional only on the remote environment, where real email, payment provider, public webhook URL, cookie, and production CORS settings are configured.
See RUN_ME.md for the exact local Docker commands.
Short version:
docker-compose --env-file .env.local up --buildBackend URL:
http://localhost:8083
This project is proprietary. Copyright and all rights are reserved by Adam Mudrak, resident of Ukraine.
See LICENSE.md for permitted educational use and usage restrictions.