Resumo do produto
Plataforma SaaS de cardápio digital para restaurantes: cada estabelecimento é um tenant isolado, gerencia seu cardápio atrás de login JWT e publica um link único com QR Code para os clientes — sem precisar instalar nada.
O problema que resolve
Cardápios impressos ficam obsoletos no mesmo dia, exigem reimpressão a cada preço novo e não trazem dados. Restaurantes precisam de um cardápio digital barato, seguro e sem depender de plataformas de terceiros caras.
Por que foi construído
Demonstrar conceitos reais de arquitetura SaaS — multi-tenancy, isolamento por tenant, planos de assinatura e API pública com slug — em uma solução que um pequeno restaurante usa de verdade.
Como funciona na prática
O dono cria sua conta (plano Free ou Pro), monta o cardápio e recebe um QR Code que leva o cliente direto ao cardápio público do estabelecimento — sem cadastro para quem consome.
Stack técnica por camada
Frontend
- Blazor WebAssembly (.NET 10)Painel administrativo + cardápio público
Backend
- Minimal APIs (.NET 10) + JWTAuth por tenant, gestão de cardápio e API pública
Banco de dados
- SQLitePersistência por tenant com isolamento lógico
Extras
- QR Code + planos Free/ProGeração automática de QR e limites por plano
* Versões exatas e detalhes de configuração são informados na proposta, conforme a personalização escolhida.
Funcionalidades principais
- Multi-tenancy: cada restaurante isolado com seus dados
- Planos Free (1 restaurante, 15 itens) e Pro (ilimitado)
- Autenticação JWT para o painel administrativo
- API pública via slug único + QR Code automático
- Base pronta para faturar assinatura (mercado de cardápio digital)
O que dá para personalizar
- Adicionar pedidos online, pagamento e entregas
- Trocar SQLite por PostgreSQL/SQL Server para multi-região
- Rebranding completo para sua operação (franquias, marmitarias, food trucks)
- Migrar o frontend para React/Angular se preferir outra base
Cada alteração de camada ou funcionalidade entra no orçamento com prazo e custo transparentes — o software é seu, não uma caixa fechada.