‹ ARCHIVE NB-C008 · .case · 2026·06

Ticketing and event management system for a municipal cinema-theatre

NB-C008 .case

Web application for a municipal cultural venue (a cinema-theatre), built with Laravel 10, Livewire and Bootstrap, covering the full lifecycle of events, sessions and on-site ticket sales.

The domain is organised around events, sessions, ticket categories and seats. Access is role based (manager and collaborator), enforced by middleware: the manager administers events, sessions and users, while the collaborator runs the box office. Each session exposes an interactive seat map where seats are picked and bound to price categories.

┌──────────┐   ┌──────────┐   ┌──────────┐
│  Event   │──▶│ Session  │──▶│  Seats   │
└──────────┘   └──────────┘   └────┬─────┘
                                   │
                  Ticket           ▼
                  category ───▶ ┌───────┐
                                │ Booking│
                                └───┬───┘
                                    ▼
                              ┌──────────┐
                              │ PDF      │
                              │ DomPDF   │
                              └──────────┘

Once a booking is confirmed, the ticket is rendered to PDF from a Blade view via DomPDF and streamed back for immediate box-office printing, carrying the session, seat, category and price. Each seat keeps its own state, so seats can be released while the map stays consistent across operations.

On the management side, the system produces sold-ticket reports per event, per session or by date range, useful for cash reconciliation and reading occupancy. Authentication is handled by Laravel Breeze and persistence by MySQL. The whole environment runs in Docker containers, with MySQL and phpMyAdmin, making setup and start-up reproducible on any machine. A personal project, from the data model design through to the printing layer.

BRI assistant

Quer saber sobre um projeto, um serviço ou uma notícia recente? Pergunte. Conheço todo o conteúdo deste site.