目录

谜局组队——剧本杀拼车平台

Web 大作业 · 需求分析与系统设计初稿

学号:241240003 姓名:马佳月

一、项目背景

剧本杀是当下年轻人流行的社交推理娱乐方式,但实际开本过程中常面临”凑不齐人”的痛点:一个本往往需要 5–8 人,好友群经常缺人,临时找队友效率低。线下桌游吧虽然能拼车,但信息不透明、约时间难、角色分配混乱。

本项目”谜局组队”正是为解决这一痛点设计的 Web 平台:用户可以发布/寻找车次、报名上车、DM(主持人)审核确认并分配角色,满员后自动锁车。

二、系统目标

实现一个完整可用的剧本杀拼车闭环:从玩家找车报名,到 DM 审核确认、分配角色,再到满员自动锁车、退车自动解锁。所有业务规则由数据库存储过程和触发器保证,确保数据一致性。具体目标包括:

  • 玩家可以浏览在开车次、按剧本名搜索、按状态筛选;
  • 玩家可以发布自己组织的车次、报名他人车次、取消报名;
  • DM(管理员)可以审核报名、给玩家分配角色;
  • 满员自动锁车、有空位自动解锁,无需人工判断;
  • 提供场次讨论区,方便玩家沟通开本细节。

三、用户角色

角色 权限描述
游客 浏览车次列表、查看场次详情
普通玩家 注册登录后可发布车次、报名/取消报名、留言讨论、管理自己发布的车次
DM/管理员 拥有普通玩家全部权限,另可审核所有报名、分配角色、管理全部车次

四、功能需求

4.1 用户管理

注册(用户名唯一、昵称、密码 SHA-256 加密存储)、登录(token 鉴权)、退出登录。

4.2 车次管理

发布车次(标题、剧本名、人数、开局时间、地点、费用、简介、封面图上传)、车次列表(关键词搜索、状态筛选、分页)、车次详情、修改/删除车次(有报名的车次不可删除,保证数据完整性)。

4.3 组队报名

玩家报名上车(存储过程校验:场次必须是招募中、不能报自己组织的局、不能重复报名)、DM 审核报名(确认上车并分配角色 / 拒绝)、玩家自行取消报名。

4.4 状态联动

触发器自动维护已上车人数:确认一人加一座位,满员自动将车次置为”已满员锁车”;拒绝或取消时减一座位,自动恢复”招募中”。

4.5 留言讨论

每个车次下的公开留言板,登录玩家可发言,方便确认开本细节。

五、业务流程

核心组队流程为:玩家 A 发布车次 → 玩家 B、C、D 看到并报名 → DM 审核确认并分配角色 → 人数满员后自动锁车 → 开局。若有人中途取消,自动解锁并继续招募。

阶段 触发动作 车次状态变化 报名状态变化
发布 玩家发车 招募中 —
报名 玩家提交报名 招募中 待确认
确认 DM 同意上车 招募中 / 满员锁车 已上车
拒绝 DM 拒绝 招募中 已拒绝
退车 玩家取消 满员锁车 → 招募中 已取消

六、非功能需求

类别 要求
性能 列表查询响应 < 1 秒,分页加载
安全 密码 SHA-256 哈希存储,接口 token 鉴权,管理员接口权限校验
可用性 操作有明确提示,状态标签清晰区分
可维护 前后端分离,接口语义清晰,便于后续扩展

七、数据设计概述

系统涉及 5 张核心表:用户表、场次表、报名表、留言表、测评表,外加一个可报名车次视图。业务规则(报名校验)由存储过程 sp_signup 实现,人数与状态联动由触发器 trg_after_signup_update 实现,保证数据库层面的数据一致性。

八、技术栈

  • 前端:HTML + CSS + JavaScript + Vue 3(CDN 引入,无需打包)
  • 后端:Node.js + Express
  • 数据库:MySQL 8.0(视图 / 存储过程 / 触发器)
  • 运行:后端监听 http://localhost:3000

九、目录结构

murder-party/
├── report/                  所有文档(Word)
│   ├── 系统设计报告-剧本杀组队平台(初稿).docx
│   └── 数据库实现-剧本杀组队平台.docx
├── code/                    所有代码
│   ├── backend/             Node.js + Express 后端
│   ├── frontend/            前端页面(HTML + CSS + JS + Vue3)
│   └── murder_party.sql    建库脚本(表/视图/存储过程/触发器)
├── data/                    数据
│   └── murder_party_backup.sql   数据库备份
├── figures/                 图表(答辩时补充)
└── README.md                本文件

十、演示账号

  • DM 管理员:admin / 123456
  • 普通玩家:zhangsan / lisi / wangwu(密码均为 123456)
关于
2.9 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号