TeamMate 是一个全面的基于 Web 的考勤和班次管理系统,专为团队和组织设计。该应用程序提供实时团队协作、班次调度、考勤跟踪、加班管理和请假 - 所有功能都在一个现代化、响应式的界面中。
问题陈述:
手动管理团队考勤、班次和时间表既耗时又容易出错。组织需要一个集中式系统来跟踪员工考勤、管理复杂的班次时间表、高效处理加班和请假,并提供基于角色的访问控制。
主要特点:
- 身份验证和用户管理: 使用 Firebase 的 Google 登录、自动创建用户配置文件、会话持久性和基于角色的访问控制(所有者、管理员、成员)。
- 团队管理: 创建和管理多个团队、团队头像、归档/取消归档团队,以及基于 URL 的团队路由(使用 slug)。
- 成员管理: 通过电子邮件邀请添加成员、编辑角色、批量操作、导入/导出(CSV、Excel、PDF)以及过滤/排序功能。
- 班次模板管理: 创建带有颜色编码的自定义班次模板、定义班次时间并将班次分配给团队成员。
- 时间表管理: 月度日历网格视图(类似 Excel 的界面)、拖放班次分配、实时更新以及导出到 Excel/PDF。
- 考勤跟踪: 打卡上下班功能、人脸检测集成(UI 已准备好)、考勤历史、迟到/早退跟踪和假期管理。
- 加班和请假: 请求和批准加班/请假,带有状态跟踪、多个请假类别和余额跟踪。
技术栈:
- 前端: Kotlin/JS、kotlinx-html DSL、Kotlin Wrappers、Vanilla CSS
- 后端: Firebase Authentication、Cloud Firestore、Firebase Storage
- 构建工具: Gradle (Kotlin DSL)、Webpack
- 测试: Playwright 用于端到端测试
- 部署: Vercel
架构:
该项目遵循清晰的基于功能的架构,采用领域驱动设计(DDD)、仓储模式、集中式状态管理和缓存策略,可减少约 80% 的 Firestore 读取。
性能和安全性:
- 具有基于角色权限的全面 Firestore 安全规则
- 带有 TTL 的内存缓存(默认 5 分钟)
- 使用 Webpack tree-shaking 优化包大小
- 在 3G 连接上初始加载 < 2 秒