Adeus aos blocos de papel. A fila anda mais depressa.
O FoodDesk é o sistema de pedidos open source para festas gastronómicas, restaurantes pop-up e cozinhas comunitárias. Os empregados registam os pedidos no telemóvel, a cozinha marca os pratos num tablet, os talões imprimem-se sozinhos — e no fim da noite as contas já estão feitas. Sem nuvem, sem subscrições, sem comissões por pedido.
Contas de demonstração: mario (empregado), cucina (cozinha), admin — palavra-passe fooddesk-demo. Abre em dois dispositivos: envia um pedido num deles e vê-o aparecer no outro no mesmo instante.
Pensado para toda a equipa
Cada função tem exatamente o ecrã de que precisa — e nada mais.
🧾 Os empregados
Uma PWA nascida para o telemóvel: tocas nos produtos, contas os couverts, acrescentas a nota para a cozinha, envias. Os pedidos são numerados por jornada e uma falha de rede nunca cria um duplicado.
🍳 A cozinha
Os pedidos novos aparecem no instante em que são enviados, sem recarregar. Cada prato marca-se como pronto com um só toque, e um pedido anulado grita ANULADO em vez de desaparecer em silêncio.
🎩 O chefe de sala
Comanda a sala com poderes quase de administrador: o menu, todos os pedidos, anulações e relatórios — mas sem página de definições, e no pessoal só gere os empregados de mesa.
⚙️ O administrador
Constrói o menu, gere pessoal e funções, e desenha no navegador todos os documentos impressos — logótipo, marca de água, tamanho do papel, rolo térmico de 80mm incluído — em cinco idiomas.
📊 Quem faz as contas
Um painel diário em tempo real: receitas, couverts, média por couvert, detalhe por produto e categoria — mais CSV limpo e relatório PDF de uma página.
🖨 A impressão
Os talões de cozinha vão diretos para qualquer impressora CUPS, com nova tentativa automática se a impressora encravar; sem impressora, entra em ação o diálogo de impressão do navegador.
Vê em ação
A demo ao vivo carrega uma noite de festa de exemplo, reiniciada a cada 6 horas.
Uma noite na festa
Tudo corre numa única máquina barata — um mini-PC ou uma placa classe Raspberry — no Wi-Fi do recinto. Os telemóveis instalam o FoodDesk como uma app nativa, diretamente do navegador.
A base de dados é um único ficheiro SQLite, com cópia de segurança automática a cada 15 minutos. Um pedido registado à 1h30 ainda conta para a noite em curso — os restaurantes não acabam à meia-noite.
Põe-no a funcionar
Um comando com Docker. A palavra-passe de admin gerada é impressa no primeiro arranque.
docker run -d --name fooddesk -p 3000:3000 -v fooddesk-data:/data \
ghcr.io/adefilippo83/fooddesk:latest
docker logs fooddesk # no primeiro arranque imprime a palavra-passe de admin gerada
Preferes um servidor no local? Um script idempotente configura systemd, nginx e backups em Debian. Ou abre-o no GitHub Codespaces para uma instância descartável.
Princípios que o código faz mesmo cumprir
TypeScript de ponta a ponta · Fastify · SQLite · React 19 PWA · GPLv3.
- O dinheiro são cêntimos inteiros — sem floats no caminho do dinheiro, e os preços vêm sempre da base de dados — um cliente adulterado não consegue obter descontos.
- A história é imutável — as linhas de pedido fotografam nome e preço; as anulações ficam auditadas, nunca apagadas. Os recibos de ontem sobrevivem ao menu de hoje.
- A autorização vive no servidor — todas as rotas estão protegidas; a UI que esconde os ecrãs de admin é só cosmética e a suite de testes é o contrato verdadeiro.
- Blindado de origem — palavras-passe scrypt, bloqueio de login, CSP e cabeçalhos de segurança, verificação de Origin nas escritas, envio de pedidos idempotente.