Aplicação web para um equipamento cultural municipal (cineteatro), construída em Laravel 10 com Livewire e Bootstrap, que cobre o ciclo completo de eventos, sessões e venda de bilhetes em sala.
O domínio organiza-se em eventos, sessões, categorias de bilhete e lugares. O acesso é controlado por papéis (gestor e colaborador), aplicados por middleware: o gestor administra eventos, sessões e utilizadores, e o colaborador opera a bilheteira. Cada sessão expõe um mapa de lugares interativo onde se selecionam assentos e se associam categorias de preço.
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Evento │──▶│ Sessão │──▶│ Lugares │
└──────────┘ └──────────┘ └────┬─────┘
│
Categoria ▼
de bilhete ─▶ ┌───────┐
│ Reserva│
└───┬───┘
▼
┌──────────┐
│ PDF │
│ DomPDF │
└──────────┘
Concluída a reserva, o bilhete é gerado em PDF a partir de uma vista Blade, através do DomPDF, e devolvido em fluxo para impressão imediata na bilheteira, com os dados da sessão, do lugar, da categoria e do preço. Cada lugar guarda o seu estado, o que permite libertar assentos e manter o mapa coerente entre operações.
Do lado da gestão, há relatórios de bilhetes vendidos por evento, por sessão ou por intervalo de datas, úteis para acerto de caixa e leitura de ocupação. A autenticação assenta no Laravel Breeze e a persistência em MySQL. Todo o ambiente corre em contentores Docker, com MySQL e phpMyAdmin, o que torna a instalação e o arranque reprodutíveis em qualquer máquina. Projeto próprio, do desenho do modelo de dados à camada de impressão.