Skedily

原型测试指南

用真实后端走通创建流程,再验证异常与恢复。

一场活动的完整路径

  1. 注册或登录

    点击「登录 / 注册」,使用用户名和密码创建账号。已有账号直接登录;测试会话在开发者选项内。

  2. 创建并编排

    手工创建,或从 AI 提案开始。填写活动信息、添加会场和场次;有效修改会自动保存,也可手动保存。

  3. 确认发布

    检查预览与阻断项,明确确认后发布。复制活动 ID,在公开页面查看已发布版本。

  4. 修改后再发布

    编辑草稿时,在另一个标签页刷新公开页面:旧版应保持不变。再次发布后才更新。

建议验证的异常场景

场景操作与预期
账号与活动恢复注册并创建活动,退出后在另一浏览器登录同一账号。「我的活动」应显示已保存活动;不同账号不能读取未授权草稿。
修改密码在账号管理中输入当前密码和新密码。成功后当前浏览器保持登录,其他旧会话应失效。错误密码和重复用户名均应显示错误。
多人编辑冲突两个标签页打开同一活动。先在 A 保存,再在 B 修改,B 应显示字段差异,允许采用服务器版本或保留自己的修改。
断网与恢复停止后端后修改活动,页面保留未保存内容。恢复服务后重试;重新打开活动时可恢复本机修改。
发布阻断清空会场地点或创建重叠场次。草稿可保存,发布前应提示修正。
会话过期与权限在服务端撤销当前会话,或给测试用户 check_in 角色。原型应显示对应权限错误。
AI 服务不可用不配置 AI 或中断服务。生成应显示失败并保留输入,手工创建仍可使用。
邀请活动“仅受邀可见”应显示暂不可用且无法选择。已有邀请制草稿需要改为公开或仅链接访问,才能发布。

本地管理命令

在仓库根目录运行。不要将令牌粘贴到聊天或提交到仓库。

使用一键启动环境时,命令前加 DATABASE_PATH=.data/web-prototype/eventee.sqlite3,确保操作原型数据库。

uv run python -m server.app.manage issue-session --output .data/creator-session.txt
uv run python -m server.app.manage revoke-session <会话UUID>
uv run python -m server.app.manage grant-role <活动UUID> <用户UUID> editor

注册账号的“我的活动”来自后端;开发者会话仍使用本机“最近打开”索引。新账号不会自动取得旧开发者身份的活动权限。

本轮范围

覆盖创建与发布,并通过公开链接接入报名、候补状态和私人二维码。Apple 登录、人数统计、跨设备凭证找回、Wallet、App Clip、实时活动与消息投递尚未实现。