Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

easyWithSuMoGyi — Food Ordering App

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.

Tech Stack

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)

Project Structure

.
├── 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

Prerequisites

  • Node.js 18+ and pnpm
  • JDK 17 and Maven
  • Docker (optional, for MySQL/backend)
  • MySQL 8 (if not using Docker)

Getting Started

1. Database (optional: use Docker)

cd Backend
docker compose up -d db

Or run a local MySQL instance and create the menu_db database.

2. Backend (Spring Boot API)

cd Backend
mvn spring-boot:run

The 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.

3. Frontend (Next.js)

cd front-end
pnpm install
pnpm dev

The app runs at http://localhost:3000.

Environment Variables

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).

API

Complete endpoint and type documentation is in Backend/API_DOCS.md.

Features

  • 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

License

Private project.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages