O painel em tempo real do RoomFlow: um relógio e um cartão por sala de reunião, com cores para Ocupada, Próxima reunião, Livre ou Manutenção, com a reunião em curso e as seguintes.

Estudo de caso Grupo Transire

Salas de reunião para um grupo de empresas, com cada reserva aprovada e registada.

Cliente
Grupo Transire
Tipo
Reserva de salas de reunião
Papel
Desenvolvimento full-stack
Ano
2026

Um sistema interno para o Grupo Transire reservar e gerir salas de reunião entre as suas empresas e edifícios: um fluxo de aprovação, regras de sala garantidas no servidor, relatórios executivos e um painel em tempo real para os ecrãs à porta de cada sala.

Salas partilhadas por várias empresas e edifícios costumam ser reservadas por chat e calendários partilhados. Duas equipas acabam na mesma sala, ninguém sabe quem aprovou o quê e não fica registo do que realmente aconteceu.

Modelar o grupo tal como é (empresas, unidades, blocos, pisos, salas) e fazer do servidor a única fonte de verdade. Cada reserva é uma máquina de estados com o seu próprio histórico, cada regra vive na API e a interface limita-se a refletir o que o backend permite.

O que foi de facto construído

  1. 01

    Uma API em NestJS, Prisma e PostgreSQL com quatro perfis garantidos no servidor, access tokens JWT e refresh tokens rotativos em cookies HttpOnly. Reutilizar um refresh token revogado termina todas as sessões desse utilizador e fica registado na auditoria.

  2. 02

    Um ciclo de vida de reserva com nove estados (aprovação, check-in, em uso, concluída, no-show, cancelada). Todas as reservas passam pelos RH ou por um administrador, e a verificação de conflitos corre dentro de uma transação SERIALIZABLE com nova tentativa, para que duas pessoas não fiquem com o mesmo horário. As séries recorrentes podem ser diárias, semanais ou mensais.

  3. 03

    Políticas por sala (aprovação, duração máxima, horário permitido, janela de check-in, reserva entre empresas, departamento prioritário), com histórico de estados, registo de auditoria e notificações na aplicação e por e-mail em cada transição.

  4. 04

    Uma interface em Next.js 16 e React 19 em quatro idiomas (pt-BR, en, ja, zh-CN): um assistente de reserva em seis passos, a fila de aprovações, relatórios executivos com um índice de eficiência por sala calculado por regras fixas e um painel público em tempo real para televisores, atualizado a cada 15 segundos.

Tecnologia

  • Next.js
  • React
  • Tailwind CSS
  • Radix UI
  • NestJS
  • TypeScript
  • Prisma
  • PostgreSQL
  • Docker
  • Jest

Em desenvolvimento como ferramenta interna do grupo. Os fluxos de reserva, aprovação e painel em tempo real funcionam de ponta a ponta; CI/CD e tarefas agendadas em segundo plano são os próximos passos.

Projeto seguintePC MonitorPersonal project · Utilitário de sistema