RVM.MenuNaMao
Digital menu system with QR Code per table, real-time orders, custom Mediator and RabbitMQ.
Overview
RVM.MenuNaMao is a complete digital menu system for restaurants. It allows customers to scan QR Codes on tables to view the menu and place orders directly from their phones. The system operates on two fronts: a Blazor Server admin panel for managing menu, orders and inventory, and a React SPA frontend for customers. Events are propagated asynchronously via RabbitMQ. The technical highlight is the Mediator Pattern implemented from scratch, without MediatR dependency.
Features
- Multi-restaurant support with unique slug identification
- Digital menu with categories, items, prices, images and prep time
- QR Code generation per table with direct menu link (QRCoder)
- Real-time order processing from phone to admin dashboard
- Status workflow: Pending -> Preparing -> Ready -> Delivered / Cancelled
- Inventory control with movements (in, out, adjustment) and low stock alerts
- Operational dashboard with pending orders, daily totals and revenue
- Custom Mediator Pattern with Send/Publish, no MediatR
- Pipeline Behaviors for logging and automatic validation
- Async messaging via RabbitMQ with publisher and 3 consumers
Technologies
Patterns & architecture
REST endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/menu/{slug} | Restaurant menu |
| GET | /api/tables/resolve?token= | Resolve table QR Code |
| POST | /api/orders | Create order |
| PUT | /api/orders/{id}/status | Update order status |
| GET | /api/dashboard | Operational dashboard |
| POST | /api/stock/movements | Register stock movement |