Tasty Station is a high-performance, enterprise-grade Point of Sale (POS) and Kitchen Display System (KDS) designed for modern high-volume restaurants. Built for speed, resiliency, and accuracy, it leverages the MERN stack with advanced engineering patterns to handle the "Lunch Rush" without breaking a sweat.
Explore the Demo β’ Technical Docs β’ Report Bug
Premium SaaS Aesthetic with Dark Mode support and Real-time syncing.
- MongoDB Transactions: Every order involves multi-document writes (Orders, Client Stats, Inventory Deduplication). We use ACID Transactions to ensure that either all updates succeed or none doβpreventing financial drift.
- Redis Caching Layer: Dashboard analytics and frequent menu reads are served via Redis memory stores, dropping retrieval times from
~150ms(DB) to<12ms. - Stateless Security: Authentication is handled via HttpOnly JWT Cookies, providing a robust defense against XSS and CSRF.
- Socket.io Integration: Orders are not polled via HTTP. They are pushed instantly to kitchen monitors via event-driven WebSockets.
- Station Synchronization: When a chef marks an order as "Ready," the Cashier UI reflects the status change in milliseconds without a page refresh.
- Offline Resilience: Designed to handle "Internet Drops." Critical app shells are cached via Service Workers, ensuring the POS remains navigable and operational on local hardware even during downtime.
- Unit & Integration: Powered by Vitest and React Testing Library.
- API Validation: Synthetic endpoint testing via Supertest with an isolated
mongodb-memory-serverfixture for 100% data safety. - Strict Standards: Enforced with ESLint (Flat Config) ensuring clean, predictable, and error-free code across the stack.
- Advanced Analytics: Visualize sales trends, peak hours, and server performance.
- Menu Management: Dynamic category creation, cloudinary-integrated image uploads, and inventory tracking.
- User RBAC: Manage permissions for Cashiers, Waiters, and Kitchen staff.
- Rapid Checkout: Optimized for touch-screens and keyboard shortcuts.
- Table Management: Real-time visibility of table occupancy and order status.
- Client Profiles: Quick access to regular customers and loyalty stats.
- Live Ticket Feed: Orders appear instantly with preparation time trackers.
- Status Toggles: One-click updates for "Preparing," "Ready," and "Delivered."
| Light Mode | Dark Mode |
|---|---|
![]() |
![]() |
Tailor your restaurant layout in real-time. Occupancy tracking and seat management at a glance.
| Light Mode | Dark Mode |
|---|---|
![]() |
![]() |
POS/
βββ backend/ # Express API & Business Logic
β βββ config/ # Database & Cloudinary configs
β βββ controllers/ # Request handlers
β βββ models/ # Mongoose Schemas (ACID enabled)
β βββ routers/ # API Endpoints
β βββ __tests__/ # Vitest & Supertest suite
βββ frontend/ # Vite + React Client
β βββ src/
β β βββ components/ # Atomic UI components
β β βββ pages/ # View-layer logic
β β βββ store/ # Zustand state management
β β βββ axios/ # Configured Interceptors
βββ docs/ # Engineering diagrams & reports
βββ readme.md # You are here
| Layer | Technologies |
|---|---|
| Frontend | React 19, Vite, Zustand, Framer Motion, Tailwind CSS, Shadcn UI |
| Backend | Node.js, Express, MongoDB, Socket.io, Redis |
| DevOps/Testing | Vitest, Supertest, ESLint, Vercel |
| Cloud | Cloudinary (Image Management) |
π View technical Mermaid flowchart
graph TD
User((User)) -->|HTTPS| Frontend[React PWA]
Frontend -->|REST API| Backend[Express Logic]
Frontend <-->|WebSockets| KDS[Kitchen Display System]
Backend -->|Atomic Transaction| MongoDB[(Database)]
Backend <-->|Cache| Redis{Redis Store}
Backend -->|Media| Cloudinary((Cloudinary))
- AI Inventory Forecasting: Predicting stock depletion using Gemini AI.
- Multi-Outlet Sync: Centralized dashboard for restaurant chains.
- QR Code Ordering: Customer-facing self-service interface.
- Mobile App (React Native): Native POS for handheld device speed.
git clone https://github.com/hey-Zayn/POS.git
cd POSCreate a .env in both /backend and /frontend using the provided keys in the technical documentation.
# Terminal 1: Backend
cd backend && npm install && npm run dev
# Terminal 2: Frontend
cd frontend && npm install && npm run devContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Zayn - GitHub
If you found this project helpful, please give it a β to show your support!





