RVM.MenuNaMao
Sistema de cardapio digital com QR Code por mesa, pedidos em tempo real, Mediator customizado e RabbitMQ.
Visao geral
RVM.MenuNaMao e um sistema completo de cardapio digital para restaurantes. Permite que clientes escaneiem QR Codes nas mesas para visualizar o cardapio e fazer pedidos direto do celular. O sistema opera em dois fronts: um painel admin Blazor Server para gerenciar cardapio, pedidos e estoque, e um frontend React SPA para os clientes. Eventos sao propagados de forma assincrona via RabbitMQ. O destaque tecnico e o Mediator Pattern implementado do zero, sem dependencia do MediatR.
Funcionalidades
- Suporte multi-restaurante com identificacao por slug unico
- Cardapio digital com categorias, itens, precos, imagens e tempo de preparo
- Geracao de QR Code por mesa com link direto para o cardapio (QRCoder)
- Processamento de pedidos em tempo real do celular ao dashboard admin
- Workflow de status: Pending -> Preparing -> Ready -> Delivered / Cancelled
- Controle de estoque com movimentacoes (entrada, saida, ajuste) e alertas de estoque baixo
- Dashboard operacional com pedidos pendentes, totais diarios e receita
- Mediator Pattern customizado com Send/Publish, sem MediatR
- Pipeline Behaviors para logging e validacao automatica
- Mensageria assincrona via RabbitMQ com publisher e 3 consumers
Tecnologias
Padroes & arquitetura
Endpoints REST
| Method | Path | Descricao |
|---|---|---|
| GET | /api/menu/{slug} | Cardapio do restaurante |
| GET | /api/tables/resolve?token= | Resolver QR Code da mesa |
| POST | /api/orders | Criar pedido |
| PUT | /api/orders/{id}/status | Atualizar status do pedido |
| GET | /api/dashboard | Dashboard operacional |
| POST | /api/stock/movements | Registrar movimentacao de estoque |