Sistema web do Bistrô 2026, projeto integrador da UCS CETEC que une os cursos técnicos de Informática, Administração e Gastronomia. O sistema cuida da venda de ingressos com escolha de lugares, do pagamento via Pix (Mercado Pago), da entrada no evento por QR code, de um painel administrativo de relatórios e de uma votação de músicas.
Feito em Python/Flask, com banco SQLite compartilhado entre os serviços.
- Mapa de mesas e cadeiras, com reserva por dia do evento e cronômetro que segura o lugar enquanto o comprador preenche os dados.
- Identificação do comprador por código de aluno de 6 caracteres, com controle de quantos ingressos ainda podem ser usados por aluno.
- Três tipos de ingresso (gratuito, meia e inteira), com valor calculado pelo servidor.
- Pagamento por Pix pela API de Pagamentos do Mercado Pago (Checkout Transparente): o sistema gera o QR code, a tela consulta o status do pagamento e a página de sucesso só abre depois da confirmação.
- Webhook do Mercado Pago (
POST /webhook/mercadopago) com validação da assinatura HMAC (x-signature) como fonte de verdade da aprovação. - Quando o Pix falha, expira ou é recusado, os lugares e os usos do código de aluno são liberados.
- Ingresso em PDF com QR code, dia do evento e lugar (mesa e cadeira), enviado por e-mail depois do pagamento.
- Validação na portaria: o staff lê o QR code e confirma a entrada com um PIN, e o ingresso fica marcado como utilizado.
-
Acesso restrito por login de administrador.
-
Visão geral, ingressos vendidos, pagos, não pagos e restantes (inclusive por aluno), resumo financeiro, participantes por curso, restrições e ranking de músicas.
-
Manual do Usuário - Painel Administrativo de Relatórios, com instruções de acesso, filtros, relatórios e geração de PDF.
-
A plataforma inclui um Dashboard Administrativo dedicado, estruturado nos seguintes módulos:
- Resumo de Participantes: Tabela em tempo real contendo a vinculação do aluno responsável, participante final, valor pago, data da compra, filtro por dia de evento e indicação do lugar/mesa reservado.
- Visão Geral & Exportação: Filtros dinâmicos por curso técnico, aluno e participante, contando com emissão automatizada de Relatórios em PDF.
- Métricas Financeiras: Indicadores consolidados de faturamento bruto total, total de ingressos confirmados e ticket médio, com detalhamento de conversão individual por responsável.
- Controle de Vendas: Monitoramento detalhado de estoque de ingressos (Pagos, Não Pagos e Restantes no inventário geral).
- Logística de Restrições Alimentares: Relatório direcionado à equipe de cozinha com a identificação exata de restrições (ex: intolerância à lactose, vegetariano, alergias) associadas ao respectivo assento do participante.
- Engajamento Musical (Top 5 Músicas): Ranking apurado a partir da votação dos compradores para a definição da setlist tocada ao vivo durante o evento.
- Página para votar nas músicas do evento, com contagem de votos gravada no banco compartilhado.
O sistema foi colocado em produção e validado durante a execução do evento, alcançando os seguintes marcos:
- Faturamento Processado:
+ R$ 15.000,00em vendas diretas efetuadas na plataforma. - Volume de Vendas: +140 ingressos pagos confirmados, com um ticket médio de R$ 119,62 por participante.
- Eficiência Operacional: Mapeamento completo e centralizado de 100% das restrições alimentares diretamente vinculado às mesas.
- Gestão de Espaço: Cobertura de assentos mapeados no layout interativo por mesa/lugar sem duplicidade de reservas.
🌐 Site do evento: sinestesiabistro.com.br

2. Mapa de mesas e escolha do dia

5. Ingresso em PDF com QR code, dia e lugar

8. Leitura do QR code na portaria

9. Painel Administrativo de Gestão (Dashboard)
Python · Flask · SQLite · Flask-Login · Flask-WTF/WTForms · SDK do Mercado Pago · xhtml2pdf · qrcode · Gunicorn · HTML, CSS e JavaScript
.
├── mesas-ingressos-app.py # inicia ingressos + mapa de lugares (porta 8080)
├── relatorios-app.py # inicia o painel de relatórios (porta 5003)
├── app_musicas.py # inicia a votação de músicas (porta 4444)
├── criar_admin_relatorios.py # cria um administrador para o painel
├── baixar_musicas.py # downloader incremental de músicas
├── mesas-ingressos/ # backend (ingressos, mapa_mesas) e frontend
├── relatorios/ # backend e frontend do painel
├── musicas/ # aplicação da votação
├── docs/img/ # capturas de tela usadas neste README
├── requirements.txt
└── .env.example
Os três serviços leem o mesmo arquivo .env da raiz e usam o mesmo banco SQLite (database/bistro.db, criado automaticamente na primeira execução).
Requisitos: Python 3 e pip.
git clone https://github.com/gmatte-dev/Bistro-Sinestesia.git
cd Bistro-Sinestesia
git checkout deploy
python -m venv .venv
source .venv/bin/activate # no Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # no Windows: copy .env.example .env
# depois preencha os valores (veja abaixo)Iniciar cada serviço, cada um em um terminal:
python mesas-ingressos-app.py # http://127.0.0.1:8080
python relatorios-app.py # http://127.0.0.1:5003
python app_musicas.py # http://127.0.0.1:4444Para acessar o painel, crie um administrador primeiro:
python criar_admin_relatorios.pyCopie .env.example para .env. O arquivo .env está no .gitignore e nunca deve ser enviado ao repositório.
| Variável | Para que serve |
|---|---|
SECRET_KEY |
Chave de sessão do Flask na venda de ingressos |
RELATORIOS_SECRET_KEY |
Chave de sessão do painel de relatórios |
MP_ACCESS_TOKEN |
Token privado do Mercado Pago (somente no backend) |
MP_PUBLIC_KEY |
Chave pública do Mercado Pago |
MP_WEBHOOK_SECRET |
Segredo usado para validar a assinatura do webhook |
MAIL_SERVER, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_DEFAULT_SENDER |
Envio do ingresso por e-mail (SMTP) |
STAFF_PIN |
PIN usado pela portaria para confirmar a entrada |
CSV_ALUNOS |
Caminho, a partir de mesas-ingressos/, do CSV com os alunos e seus códigos |
MUSICAS_REDIRECT_URL |
Endereço da votação de músicas, para onde o comprador é enviado depois do pagamento confirmado |
HOME_REDIRECT_URL |
Endereço da página inicial do evento, usado no link da página de agradecimento da votação |
Opcionais: BISTRO_DATABASE_PATH, INGRESSOS_HOST, INGRESSOS_PORT, RELATORIOS_HOST, MUSICAS_HOST, MUSICAS_PORT e FLASK_DEBUG.
Para testar pagamentos, use as credenciais de teste do Mercado Pago. Para o webhook funcionar, a URL /webhook/mercadopago precisa ser pública e estar cadastrada no painel do Mercado Pago.
- O comprador informa o código de aluno e escolhe os lugares e a data no mapa.
- O sistema reserva os lugares por tempo limitado.
- O comprador preenche os dados de cada ingresso (nome, tipo, e-mail, telefone).
- O sistema cria o pagamento Pix e mostra o QR code.
- O Mercado Pago avisa o resultado pelo webhook, e o sistema confirma o pagamento.
- O ingresso em PDF, com QR code, é enviado por e-mail.
- Na portaria, o QR code é validado e o ingresso passa a constar como utilizado.
Projeto desenvolvido por alunos do Curso Técnico de T.I - CETEC/UCS.
Veja os arquivos LICENSE dentro de cada módulo.




