Full-Stack · Web App
Food Ordering System
Completed
A full-stack food ordering platform with an admin dashboard, customer portal, Stripe payments, and real-time order tracking.

Overview
A complete food-ordering system split into an admin dashboard and a customer-facing app. It handles the full order lifecycle — browse menu, place order, pay, and track status in real time — backed by JWT auth with role-based access, Redis-cached APIs, Stripe payments, OTP/SMS verification, and Socket.io notifications. The whole stack (frontend, API, MongoDB, Redis) runs via Docker Compose. Built as a team under a feature-branch Git workflow.
Key features
Auth & roles
JWT + refresh tokens, admin/customer role-based access.
Menu management
Admin CRUD for menu items.
Order lifecycle
Full order flow with live status tracking.
Payments
Stripe checkout integration.
Real-time
Socket.io order notifications.
Performance & security
Redis caching, Helmet, CORS, rate limiting.
OTP/SMS
Notify.lk verification + image uploads (UploadThing).
Tech stack
Frontend
- React 18
- TypeScript
- Vite
- Tailwind CSS
- Radix/shadcn
- Zod
Backend
- Node.js
- Express
- JWT
- Joi
- Socket.io
Data
- MongoDB
- Redis
Payments
- Stripe
- UploadThing
- Notify.lk
DevOps
- Docker
- Docker Compose
- Jest
- ESLint
- Biome
- Husky
Architecture
Multi-service architecture orchestrated with Docker Compose (frontend, API, MongoDB, Redis). Express REST API with Redis caching and Socket.io for real-time updates; secured with JWT, rate limiting, and request validation.
Highlights
- Two portals (admin dashboard + customer app) in one platform
- 4 containerized services via Docker Compose
- Stripe payments + OTP/SMS auth
- Team project under a feature-branch Git workflow