A modern, full-stack restaurant management system featuring digital menus, QR code ordering, real-time order tracking, and comprehensive analytics.
- QR Code Digital Menus - Contactless menu access via customized QR codes
- Real-time Ordering - Place orders directly from tables without waiter intervention
- Menu Categories & Search - Easy navigation with categorized items and search functionality
- Order Tracking - Real-time order status updates (Pending β Preparing β Ready)
- Responsive Design - Optimized for mobile, tablet, and desktop devices
- Menu Management - Create, update, and organize menu items with images
- Order Management - Track and manage customer orders in real-time
- Table Management - Generate unique QR codes for each table
- Analytics Dashboard - Insights into orders, revenue, and popular items
- Staff Management - Role-based access control (Admin/Waiter)
- Receipt Generation - Automatic receipt generation for completed orders
- Next.js 14 (App Router) - React framework for production
- TypeScript - Type-safe code
- TailwindCSS - Utility-first CSS framework
- shadcn/ui - Re-usable component library
- Lucide Icons - Beautiful icon set
- Next.js API Routes - Serverless API endpoints
- NextAuth.js - Authentication solution
- Prisma ORM - Type-safe database client
- MongoDB - NoSQL database
- Cloudinary - Image upload and storage
- QR Code Generator - Dynamic QR code generation
- React Hook Form - Form validation
- Zod - Schema validation
- Node.js 18+ and npm/pnpm
- MongoDB database (local or MongoDB Atlas)
- Cloudinary account (for image uploads)
- Clone the repository
git clone https://github.com/g1mishra/byte-eat-ui.git
cd byte-eat-ui- Install dependencies
pnpm install
# or
npm install- Environment Configuration
Create a .env file in the root directory:
# Database
DATABASE_URL="mongodb+srv://<username>:<password>@cluster.xxxxx.mongodb.net/byte_eat_db"
# Cloudinary (Image Upload)
CLOUDINARY_CLOUD_NAME="your_cloud_name"
CLOUDINARY_API_KEY="your_api_key"
CLOUDINARY_API_SECRET="your_api_secret"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key-here"
# App Configuration
NEXT_PUBLIC_APP_URL="http://localhost:3000"- Database Setup
pnpm migrate
# or
npm run migrate- Run the development server
pnpm dev
# or
npm run devOpen http://localhost:3000 to see the application.
byte_eat_ui/
βββ app/ # Next.js app directory
β βββ [slug]/ # Dynamic customer-facing routes
β β βββ view-cart/ # Order placement logic
β βββ manage/ # Restaurant management dashboard
β β βββ restaurant/
β β βββ [restroId]/
β β βββ manual-order/ # Manual order creation
β β βββ menu/ # Menu management
β β βββ orders/ # Order management
β βββ api/ # API routes
β βββ onboarding/ # User onboarding
βββ components/ # React components
β βββ home/ # Landing page components
β βββ ui/ # Reusable UI components
βββ services/ # API service functions
β βββ order.services.ts # Order-related operations
β βββ menu.services.ts # Menu management
β βββ helper.service.ts # Helper functions
βββ lib/ # Utility functions
βββ prisma/ # Database schema
β βββ schema.prisma # Prisma schema definition
βββ public/ # Static assets
βββ styles/ # Global styles
βββ types/ # TypeScript type definitions
- app/[slug]/view-cart/page.tsx - Customer order placement
- app/manage/restaurant/[restroId]/manual-order/QuickOrder.tsx - Manual order creation
- services/order.services.ts - Core order service functions
- services/helper.service.ts - Menu item CRUD operations
- services/menu.services.ts - Menu service functions
# Development
pnpm dev # Start development server
# Build
pnpm build # Build for production
# Production
pnpm start # Start production server
# Database
pnpm migrate # Push database schema changes
# Code Quality
pnpm lint # Run ESLint
pnpm prettier # Format code with PrettierThe application uses 15+ database models including:
- User, Restaurant, MenuItem, Category
- Order, OrderItem, PriceItemMap
- Table, Waiter, Analytics
- And more...
See prisma/schema.prisma for the complete schema.
- Push your code to GitHub
- Import project to Vercel
- Add environment variables
- Deploy
The application can be deployed to any platform supporting Next.js:
- Netlify
- Railway
- AWS
- DigitalOcean
Check out the live demo: https://byteeat.vercel.app
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- 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
This project is open source and available under the MIT License.
Jeevan Mishra
- GitHub: @g1mishra
- LinkedIn: Jeevan Mishra
β Star this repository if you find it helpful!