Room Scheduler
Sistema corporativo de gestão de salas com prevenção de conflitos, RBAC, auditoria JPA & iCalendar
O Room Scheduler é um sistema corporativo completo para gestão e agendamento de salas de reunião projetado para eliminar sobreposições de horários. Diferente de um CRUD comum, o sistema implementa uma lógica transacional stateful com algoritmo matemático de prevenção de conflitos (StartA < EndB && EndA > StartB) diretamente no banco relacional, garantindo integridade mesmo sob alta concorrência. A solução inclui segurança RBAC estrita, auditoria automática JPA, exportação de convites para calendário (.ics RFC 5545), notificações por e-mail e dashboard analítico de ocupação.
O Back-End desta aplicação está hospedado no plano gratuito do Render. Caso o serviço esteja em repouso (cold start), a primeira inicialização pode levar de 30 a 60 segundos para carregar os dados.

O Desafio de Negócio
Conflitos de agendamento e sobreposição de horários (Double Booking) em empresas e coworkings geram atritos e perda de produtividade. Ferramentas descentralizadas e planilhas não oferecem validação atômica de horários, carecem de regras de SLA de cancelamento (ex: antecedência mínima de 24h), não registram trilha de auditoria e não disponibilizam métricas claras sobre a taxa de ocupação dos espaços.
A Solução de Engenharia
Engenharia de uma plataforma Web Full-Stack desacoplada. A API RESTful em Java 21 LTS e Spring Boot implementa arquitetura em camadas (Controller -> Service -> Repository) com isolamento rigoroso por DTOs, autenticação Stateless via Spring Security + JWT, controle de acesso baseado em papéis (USER vs ADMIN), auditoria JPA com @EnableJpaAuditing, versionamento Flyway com índices otimizados, serviço de e-mails assíncronos e gerador de arquivos .ics RFC 5545 (Google Calendar, Apple, Outlook). O Front-End em Next.js 16 (App Router) e React 19 oferece grade diária interativa de ocupação por sala, validação de senha em tempo real com 5 critérios de segurança, Next.js Edge Middleware para proteção de rotas, gráficos de uso e exportação CSV.
Galeria de Telas & Fluxos do Sistema
Explore as telas completas da aplicação, fluxos operacionais, dashboards em tempo real e painéis administrativos.

Grade Diária de Ocupação & Timeline
Visualização interativa da disponibilidade das salas por horário com seletor de datas e status em tempo real.

Catálogo & Gestão de Salas
Interface para visualização e gerenciamento de salas com capacidade, recursos disponíveis e restrições.

Minhas Reservas & Exportação iCalendar
Painel do usuário para acompanhar agendamentos, aplicar cancelamento dentro da regra de SLA e baixar convites .ics.

Dashboard de Analytics & Métricas
Indicadores em tempo real de distribuição de ocupação por sala e volume total de horas agendadas.

Painel Administrativo de Usuários & RBAC
Controle de perfis (USER / ADMIN), permissões de acesso, auditoria e exportação de relatórios CSV.
Blueprint de Arquitetura & Stack Técnica
Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS, Edge Middleware
Java 21 LTS, Spring Boot 3, Spring Security 6, JWT, JavaMailSender, Swagger OpenAPI 3, Actuator
PostgreSQL 15, Spring Data JPA, Hibernate, Flyway Migrations
Docker, Docker Compose, GitHub Actions (CI), Vercel, JUnit 5, Mockito
Principais Recursos & Regras de Negócio
Desafios de Engenharia & Decisões Técnicas
Algoritmo de Prevenção de Conflitos & Isolamento Transacional
Implementação da validação matemática de intervalos no banco relacional com índices compostos (idx_bookings_room_time) para garantir integridade atômica e performance mesmo sob rajadas de requisições simultâneas.
Arquitetura RBAC & Edge Route Guards
Estruturação de segurança em múltiplas camadas: validação de claims e roles no Spring Security e interceptação preventiva no Edge Middleware do Next.js antes da renderização de páginas administrativas.
Padrão RFC 5545 iCalendar & Compatibilidade Multiplataforma
Desenvolvimento do motor de serialização de eventos de calendário no formato MIME text/calendar, assegurando compatibilidade nativa com Google Agenda, Apple e Outlook.
Experimente a Aplicação na Prática
Acesse a versão em produção online ou explore o código-fonte e arquitetura no repositório oficial.
Nota: Back-End no Render Free Tier (pode levar 30s–120s na primeira requisição)