SmartMenu is a modern, enterprise-grade Multi-Tenant SaaS QR Menu, Order Management, Real-Time Kitchen Display System (KDS) and AI Garson Assistant powered by Google Gemini 2.5/3.7 Flash LLM and SignalR WebSockets.
- Table-Based Dynamic Routing:
/lezzet-duragi/m/masa-1tokenized access. - Dietary & Allergen Filters: Instant filtering for Gluten, Lactose, Eggs, Nuts, Soy, Vegan/Vegetarian.
- Cart & PayTR Payment Gateway Mock: Instant online checkout with mock PayTR tokens.
- Self-Service & Waiter Call Modes: Adaptive notification routing based on tenant settings.
- Real-Time Menu RAG Ingestion: Dynamic injection of 100+ menu items, prices, descriptions, and allergens into Gemini context.
- Auto-Discovery Endpoint Engine: Automatic model detection fallback across
gemini-3.7-flash,gemini-flash-latest, andgemini-flash-lite. - Interactive UI Cards: AI responses include clickable suggested product cards with instant "Add to Cart" buttons (
[SUGGESTED_IDS: ...]).
- SignalR WebSocket Hub: Instant order arrival with audio alert chimes and screen vibrations.
- Status Lifecycle:
Pending➔Preparing➔Ready➔Completed. - Sound & Vibration Notifications: Notifies customers when their self-service order is ready.
- Revenue & Order Reports: Analytics for total turnover, pending orders, and top-selling items.
- Menu & Product Management: CRUD operations for categories, products, allergens, and stock availability.
- Dynamic QR Generator: Generates and previews downloadable QR codes per table.
- Live System Log Monitor: KDS, SignalR, DbContext, and Gemini AI log terminal at
/admin->Sistem & AI Log Takip.
graph TD
Client[📱 Customer Phone / Admin Browser] -->|HTTP / JSON| Frontend[🎨 Next.js 14 Web App]
Client -->|WebSocket| SignalR[📡 SignalR Real-Time Hub]
Frontend -->|REST API| Backend[⚙️ .NET 8 Web API]
Backend -->|ORM| EFCore[🗄️ EF Core In-Memory / SQL DB]
Backend -->|RAG Prompt & JSON| Gemini[🤖 Google Gemini AI API]
- .NET 8 SDK
- Node.js 20+ & npm
- Docker Desktop (Optional)
git clone https://github.com/sadikgunay/menu.git
cd menucd backend
dotnet restore
dotnet run --project src/API/API.csprojThe API server will start on
http://localhost:5000with 108 seeded menu items.
cd ../frontend
npm install
npm run devThe frontend server will start on
http://localhost:3000.
To launch the complete stack with Docker Compose:
# Set your optional Gemini API Key
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
# Build and start all services
docker-compose up --build -dAccess the endpoints:
- Customer Menu:
http://localhost:3000/lezzet-duragi/m/masa-1 - Kitchen KDS:
http://localhost:3000/kds - Admin Dashboard:
http://localhost:3000/admin - Backend Swagger API:
http://localhost:5000/swagger
menu/
├── .github/
│ └── workflows/
│ ├── ci-cd.yml # GitHub Actions Automated CI/CD
│ └── security.yml # CodeQL Security Scanner
├── backend/
│ ├── src/
│ │ ├── API/ # ASP.NET Core Controllers & SignalR Hubs
│ │ ├── Application/ # Use Cases, Gemini AI Service, RAG Engine
│ │ ├── Core/ # Domain Entities, DTOs & Interfaces
│ │ └── Infrastructure/ # EF Core DbContext, DataSeeder & Repositories
│ └── Dockerfile
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js 14 App Router Pages
│ │ ├── components/ # UI Components (AiChatbot, ProductCard, Admin)
│ │ └── lib/ # Axios API Client & SignalR Hub Helpers
│ └── Dockerfile
├── docker-compose.yml
├── menu_dataset.json # 108-Item Enterprise Menu Dataset
└── README.md
Distributed under the MIT License. See LICENSE for more details.