
Case study Grupo Transire
Meeting rooms for a group of companies, every booking approved and on record.
- Client
- Grupo Transire
- Type
- Meeting-room booking
- Role
- Full-stack development
- Year
- 2026
01Overview
An internal system for Grupo Transire to book and run meeting rooms across its companies and buildings: an approval flow, room rules enforced on the server, executive reports and a live panel for the screens outside each room.
02The problem
Meeting rooms shared by several companies and buildings are usually booked over chat and shared calendars. Two teams end up in the same room, nobody knows who approved what, and there is no record of what actually happened.
02The approach
Model the group as it really is (companies, units, blocks, floors, rooms) and make the server the only source of truth. Every booking is a state machine with its own history, every rule lives in the API, and the interface only reflects what the backend allows.
03The build
What was actually built
- 01
A NestJS, Prisma and PostgreSQL API with four roles enforced on the server, JWT access tokens and rotating refresh tokens in HttpOnly cookies. Reusing a revoked refresh token ends every session for that user and is written to the audit log.
- 02
A nine-state reservation lifecycle (approval, check-in, in use, finished, no-show, cancelled). Every booking goes through HR or an admin, and conflict checks run inside a SERIALIZABLE transaction with retry, so two people cannot take the same slot. Recurring series are daily, weekly or monthly.
- 03
Per-room policies (approval, maximum duration, allowed hours, check-in window, cross-company booking, priority department), with a status history, an audit log and in-app and e-mail notifications for every transition.
- 04
A Next.js 16 and React 19 interface in four languages (pt-BR, en, ja, zh-CN): a six-step booking wizard, the approval queue, executive reports with a per-room efficiency score built from fixed rules, and a public live panel for TVs that refreshes every 15 seconds.
Technology
- Next.js
- React
- Tailwind CSS
- Radix UI
- NestJS
- TypeScript
- Prisma
- PostgreSQL
- Docker
- Jest
04The experience





05Where it stands
In development as an internal tool for the group. The booking, approval and live-panel flows work end to end; CI/CD and scheduled background jobs are the next steps.
