A restaurant operations platform built with React, Vite, Express microservices, and Nginx.
The React app includes ten functional operations pages:
- Overview dashboard
- Orders
- Kitchen display
- Reservations
- Menu studio
- Customers
- Promotions
- Analytics
- Delivery desk
- Settings
Each service owns one restaurant capability and lives in its own directory under services/:
menu-serviceon port3101order-serviceon port3102reservation-serviceon port3103customer-serviceon port3104kitchen-serviceon port3105delivery-serviceon port3106payment-serviceon port3107notification-serviceon port3108analytics-serviceon port3109promotion-serviceon port3110
Each service exposes /health, GET /api/<capability>, and POST /api/<capability>.
Each service also owns its own package.json and package-lock.json, so it can
be installed, tested, and deployed independently from the root application.
npm install
npm run services:install
npm run services
npm run devFor a single service, install only its dependencies:
npm install --prefix services/menu-service
npm --prefix services/menu-service startThe Vite app runs at http://localhost:5173 and proxies API requests to the services.
Nginx is a dedicated gateway only. It does not contain, mount, or serve the
React dist directory. The separate frontend container builds and serves
the React application on its private port 4173; Nginx reverse-proxies / to
that frontend service and /api/* to the matching private microservice.
The gateway is the only public container and listens on port 8080.
npm run docker:upOpen http://localhost:8080. Stop the stack with:
npm run docker:down