Repository navigation
Releases: mulan777/Workbench-class5
Releases · mulan777/Workbench-class5
Release list
v1.6
v1.6
主要变更
- 删除热点问题、议事会及其关联数据库表、接口和前端入口。
- 增加儿童端专用照片接口,收紧教师主题与通用上传接口的登录边界。
- 儿童自主拍照台改为“选幼儿 → 拍照 → 预览 → 发送”的清晰流程。
- “自己玩”保存为独立记录类型
自主选区·自己玩。 - 完善普通选区、自己玩、邀请撤回和邀请接受之间的当天状态一致性。
- 教师端展示邀请成功、拒绝、取消、待处理四类状态。
- 区域容量支持逐区域配置,并在服务端校验选区约束。
- 修复首页结伴统计、教师密码重置字段和儿童选区台平板首屏溢出。
- 更新 README,移除已删除功能和失效模拟数据说明。
验证
node --check server/src/index.jsnode --check server/src/routes/api.jsnpx tsc -b --pretty falsenpx vite build- 真实浏览器验证儿童选区台与拍照台页面;手机
390×844、平板1024×768均无首屏溢出。 - 邀请接受、拒绝、取消未进行真实点击测试,避免改变现有业务邀请数据。
v1.5 儿童拍照台移除相册入口
修复
儿童自主拍照台收口为“只拍照”
- 删除儿童自主拍照台中的“选照片”按钮。
- 删除“从相册里找一张”入口及对应的相册文件选择控件。
- 删除相册选择按钮、图标、引用、状态提示和相关错误文案,避免界面继续暗示可以从相册上传。
- 保留儿童自主拍照台
/photo路由和教师端区域页的“自主拍照台”入口。 - 保留平板/手机后置摄像头调用(
capture="environment")。 - 保留选中幼儿、开启拍照、拍照后预览、重新拍摄和确认发送流程。
- 保留拍照结果自动写入“好朋友新故事 / 想念与重逢”对应素材链路,以及已上传照片的历史回显。
交互与文案
- 顶部流程从“找自己 → 选照片 → 发送”调整为与实际操作一致的拍照流程。
- 操作说明改为“点击头像 → 直接拍照 → 预览确认,记录自动同步”。
- 无照片时的提示从“请先拍摄或选择照片”改为“请先拍摄照片”。
- 拍照操作由原来的双按钮布局收口为单个全宽“开启拍照”按钮,降低幼儿误操作概率。
- 保留照片发送成功提示、加载状态、失败提示和重新拍摄能力。
范围说明
- 本版本只移除儿童端相册/文件选择入口,不删除自主拍照台、摄像头拍照、预览发送、历史照片或教师端素材录入能力。
- 后端上传 API、数据库历史数据和教师端照片管理能力不作破坏性删除。
验证
- TypeScript 检查通过。
- Vite 生产构建通过。
git diff --check通过。- 源码和新构建产物均已扫描确认不再包含“选照片”“从相册”“相册里找一张”。
v1.4 区域容量与儿童端引导
新增
区域人数容量
- 为每个活动区域增加可配置的人数上限,默认上限为 6 人。
- 教师端区域管理支持新增、编辑和查看人数上限。
- 人数上限留空时表示该区域不限人数。
- 儿童端区域卡片显示当前人数、容量和可用名额,并用插卡槽直观表达已进入人数。
- 区域满员或无法容纳当前儿童及同行伙伴时,儿童端自动禁用该区域,避免继续提交。
服务端并发容量校验
- 普通自主选区、发起邀请、接受邀请均在服务端事务内再次校验容量。
- 容量不足时返回明确的 409 错误提示,防止多个设备同时操作导致区域超员。
- 区域人数按当天去重后的实际幼儿计算,不按重复记录简单累加。
- 保留“一名幼儿一天只能进入一个区域”的业务约束。
儿童端引导与语音反馈
- 增加儿童端关键步骤的语音提示,包括选择自己、选择伙伴、完成区域选择和重新开始。
- “自己玩”改为温和的单人图标和正向提示,不再使用容易产生拒绝感的红色叉号。
- 子步骤 60 秒无触控后自动回到找号码页;待机/完成页面不启动该倒计时。
- 保留触控友好的移动端布局、回退按钮和全屏操作。
教师端与数据联动
- 区域看板、区域记录和总览同步显示容量元数据。
- 区域管理界面增加容量编辑提示和“不限人数”状态。
- 好朋友新故事相关照片与儿童自主拍照数据的归属链路继续保持一致。
修复与工程调整
- 更新区域 API、选区 API、邀请 API 和数据库结构,增加
area_settings.capacity字段。 - 更新儿童端区域卡片布局,在手机和平板上压缩信息并保持核心操作可见。
- 补充中文语音辅助模块及前端 TypeScript 配置兼容调整。
验证
- TypeScript 检查通过。
- Vite 生产构建通过。
- 普通选区、邀请发起、邀请接受的容量边界均完成代码级事务校验。
- 教师端容量新增/编辑与儿童端容量展示链路完成验证。
v1.3 儿童自主选区与伙伴邀请
新增
儿童端自主选区与拍照入口
- 恢复免登录儿童端
/select自主选区台,保留完整的儿童触控流程。 - 恢复免登录儿童端
/photo自主拍照台,并从教师端区域页提供独立入口。 - 补齐儿童端首次加载和提交所需的公开 API 链路,避免儿童端被错误跳转到教师登录页。
- 儿童端头像按学号序号展示,继续使用班级既定小名,不因隐私处理重复追加星号。
自主选区与伙伴邀请
- 支持儿童先选择自己的号码,再选择想一起游戏的小朋友。
- 支持单人进入区域,也支持邀请小朋友一起进入同一区域。
- 支持最多两名被邀请小朋友,多个待处理邀请可以并列展示。
- 支持接受、拒绝和返回上一步;拒绝一张邀请不会误伤其他待处理邀请。
- 接受邀请后自动完成区域记录,并取消同一孩子的其他待处理邀请。
- 邀请双方都形成独立的区域选区记录,教师端可以准确统计实际参与幼儿。
教师端区域记录与总览
- 修复教师端区域记录中幼儿姓名被错误显示为“姓+*”的问题,恢复显示班级称呼。
- 修复邀请选区统计只记录发起人的问题,教师端区域人数和总览今日选区统计改为按独立幼儿去重计算。
- 区域页保留儿童自主选区台与自主拍照台的快捷入口。
修复与兼容
- 保留儿童端路由位于免登录入口,避免被教师端
Guard拦截。 - 保留儿童端所需的公开名册、选区和主题素材访问链路,同时不放开教师管理接口。
- 修复儿童端名册和教师端记录之间的姓名显示边界。
验证
- TypeScript 检查通过。
- Vite 生产构建通过。
/select、/photo页面及关键 API 链路完成实际验证。- 生产真实浏览器链路验证:今日选区显示 2 / 25 人,益智区准确显示“赫伦”“毛毛”。
v1.2 按学号识别签到 + 姓名脱敏
中5班工作台 v1.2 — 按学号识别签到 + 姓名脱敏
功能新增
- 学号识别归类:签到照片上传后自动调用视觉模型,优先识别图片中的学号(01–25),按学号匹配名册并自动勾选对应幼儿,教师核对后保存;拒绝凭相似姓名猜测
- 结构化识别标记:AI 分析结果追加机器可读
CHECKIN_IDS(sids / pairs),前端解析后自动归类 - 姓名脱敏:所有对外接口与页面统一显示「姓+」(如 张一诺 → 张),覆盖名册/签到结伴/统计榜/区域选区/主题墙/热点问题
- 学号映射提示词:分析时动态载入班级 01–25 号映射,输出同时包含学号便于核对
- OpenAI 兼容接口外网开放:
POST /v1/chat/completions(登录保护,SSE 流式,20s 超时自动切换备用模型),Caddy 已修复 /v1/* 反代(此前被当作静态文件仅允许 GET)
安全优化
- AI 上游 URL、API Key、模型名不再写入代码默认值,仅由服务器 systemd 环境变量注入;未配置完整时返回 503「AI接口未配置完整」
- 构建产物与仓库不含任何密钥或上游地址
部署
- 服务:zhong5-api(Fastify 3100)
- 入口:Caddy → Fastify,/api/* /uploads/* /v1/* 反代
相关提交
837d5effeat: sid-based checkin recognition with name masking
v1.1 AI签到分析与多范围数据视图
新增
- 签到页接入内置 OpenAI 兼容流式接口。
- 支持签到图片 AI 分析。
- 支持在「分析签到图片」弹窗中选择新图片或多选已上传图片。
- 分析结果自动保存为历史记录。
- 历史分析记录按天显示,支持编辑、保存和删除。
- 签到统计增加当天、7天、30天视图。
- 区域选区增加当天、7天、30天视图。
- 总览增加当天、7天、30天视图。
- 区域和签到接口支持按日期范围返回聚合数据。
- 上传请求限制提高到 32MB,单张图片仍限制 15MB。
移除
- 完整移除模拟数据按钮、弹窗、前后端接口和生成代码。
验证
- TypeScript 编译通过。
- Vite 生产构建通过。
- 生产服务重启后保持 active。
- 签到、区域 7天/30天接口已完成真实登录态验证。
- 公网页面返回 HTTP 200。
v1.0 首个稳定版本
首个版本
- 发布中5班工作台首个稳定版本。
- 提供班级日志、幼儿名册、签到、区域选区、主题墙、热点问题和总览等基础功能。
- 前后端采用 React + Fastify + SQLite,支持图片上传和生产环境部署。
说明
- 这是项目首次正式版本标记。
- 本 Release 对应项目初始稳定代码基线。