RoomFlow 实时会议室面板:一个时钟和每间会议室一张卡片,按“占用”“下一场会议”“空闲”“维护”用颜色区分,显示进行中的会议和接下来的会议。

案例研究 Grupo Transire

为集团旗下多家公司管理会议室,每一次预订都经过审批并留有记录。

客户
Grupo Transire
类型
会议室预订
角色
全栈开发
年份
2026

为 Grupo Transire 打造的内部系统,用于在旗下各公司和各栋楼之间预订和管理会议室:审批流程、在服务器端强制执行的会议室规则、管理层报表,以及供每间会议室门口屏幕使用的实时面板。

由多家公司、多栋楼共用的会议室,通常靠聊天和共享日历来预订。结果是两个团队撞进同一间会议室,没人知道谁批准了什么,实际发生的情况也没有任何记录。

按集团的真实结构建模(公司、园区、楼栋、楼层、会议室),并让服务器成为唯一的事实来源。每一笔预订都是一个带有自身历史的状态机,每一条规则都放在 API 中,界面只呈现后端允许的操作。

实际构建了什么

  1. 01

    基于 NestJS、Prisma 和 PostgreSQL 的 API,四种角色在服务器端强制执行,使用 JWT 访问令牌,以及存放在 HttpOnly Cookie 中的轮换刷新令牌。重复使用已吊销的刷新令牌会结束该用户的全部会话,并写入审计日志。

  2. 02

    包含九种状态的预订生命周期(审批、签到、使用中、已结束、未到场、已取消)。每一笔预订都需经过人事部门或管理员审批,冲突检查在带重试的 SERIALIZABLE 事务中执行,确保两个人无法占用同一时段。循环预订支持按日、按周或按月。

  3. 03

    按会议室配置的策略(是否需审批、最长时长、允许时段、签到时间窗、跨公司预订、优先部门),每次状态变更都会记录状态历史和审计日志,并发送站内与邮件通知。

  4. 04

    基于 Next.js 16 和 React 19 的界面,支持四种语言(pt-BR、en、ja、zh-CN):六步预订向导、审批队列、按固定规则计算会议室效率分数的管理层报表,以及每 15 秒自动刷新、供电视使用的公开实时面板。

技术

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

作为集团内部工具开发中。预订、审批和实时面板流程已端到端可用;CI/CD 和后台定时任务是接下来的工作。

下一个项目PC MonitorPersonal project · 系统工具