A full-stack food ordering platform for a Myanmar restaurant. Customers browse the menu, add items to a cart, and place orders; an admin panel manages foods, categories, orders, payments, and Telegram broadcasts.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS 4, shadcn/ui |
| Backend | Spring Boot 3.3, Java 17, Spring Data JPA |
| Database | MySQL 8 |
| Containerization | Docker / Docker Compose |
| Package manager | pnpm (frontend), Maven (backend) |
.
├── Backend/ # Spring Boot REST API
│ ├── src/main/java/com/example/
│ │ ├── cart/ # Cart CRUD
│ │ ├── food/ # Foods & categories
│ │ ├── menu/ # Telegram menu config
│ │ ├── order/ # Order placement & admin handling
│ │ ├── payment/ # Payment methods & providers
│ │ └── settings/ # Store settings
│ ├── docker-compose.yml # MySQL + API
│ ├── Dockerfile
│ └── API_DOCS.md # Full endpoint reference
└── front-end/ # Next.js app (storefront + admin + Telegram web app)
└── app/
├── page.tsx # Customer storefront
├── admin/ # Admin panel (login, foods, orders, payments, settings, broadcast)
├── checkout/ # Checkout flow
├── my-orders/ # Customer order tracking
└── order-success/ # Order confirmation
- Node.js 18+ and pnpm
- JDK 17 and Maven
- Docker (optional, for MySQL/backend)
- MySQL 8 (if not using Docker)
cd Backend
docker compose up -d dbOr run a local MySQL instance and create the menu_db database.
cd Backend
mvn spring-boot:runThe API runs at http://localhost:8080. On startup, the database is seeded from src/main/resources/data.sql. Use docker compose up -d --build to run the full backend stack (DB + API) in containers instead.
cd front-end
pnpm install
pnpm devThe app runs at http://localhost:3000.
Frontend (.env.local):
| Variable | Description |
|---|---|
NEXT_PUBLIC_API_BASE |
Backend base URL (default http://localhost:8080) |
NEXT_PUBLIC_ADMIN_CHAT_ID |
Telegram chat ID for admin notifications |
Backend config lives in src/main/resources/application.yml (supports MYSQL_HOST env override).
Complete endpoint and type documentation is in Backend/API_DOCS.md.
- Customer-facing storefront with category filtering, search, and cart
- Checkout with delivery address and payment method selection
- Order tracking for customers (
/my-orders) and confirmation page - Admin panel (
/admin) for managing foods, categories, orders, payment providers, store settings, and Telegram broadcasts - Telegram web-app integration (
/admin/telegram) for menu configuration - Docker-compose deployment for MySQL + Backend
Private project.