
案例研究 Grupo Transire
为集团旗下多家公司管理会议室,每一次预订都经过审批并留有记录。
- 客户
- Grupo Transire
- 类型
- 会议室预订
- 角色
- 全栈开发
- 年份
- 2026
01概览
为 Grupo Transire 打造的内部系统,用于在旗下各公司和各栋楼之间预订和管理会议室:审批流程、在服务器端强制执行的会议室规则、管理层报表,以及供每间会议室门口屏幕使用的实时面板。
02问题
由多家公司、多栋楼共用的会议室,通常靠聊天和共享日历来预订。结果是两个团队撞进同一间会议室,没人知道谁批准了什么,实际发生的情况也没有任何记录。
02方法
按集团的真实结构建模(公司、园区、楼栋、楼层、会议室),并让服务器成为唯一的事实来源。每一笔预订都是一个带有自身历史的状态机,每一条规则都放在 API 中,界面只呈现后端允许的操作。
03构建
实际构建了什么
- 01
基于 NestJS、Prisma 和 PostgreSQL 的 API,四种角色在服务器端强制执行,使用 JWT 访问令牌,以及存放在 HttpOnly Cookie 中的轮换刷新令牌。重复使用已吊销的刷新令牌会结束该用户的全部会话,并写入审计日志。
- 02
包含九种状态的预订生命周期(审批、签到、使用中、已结束、未到场、已取消)。每一笔预订都需经过人事部门或管理员审批,冲突检查在带重试的 SERIALIZABLE 事务中执行,确保两个人无法占用同一时段。循环预订支持按日、按周或按月。
- 03
按会议室配置的策略(是否需审批、最长时长、允许时段、签到时间窗、跨公司预订、优先部门),每次状态变更都会记录状态历史和审计日志,并发送站内与邮件通知。
- 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
04体验





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