# 需求概述 ## 1. 项目背景 广东省立中山图书馆(以下简称"广东省图")计划举办一场面向全国的少儿绘本创作活动。乐绘世界创想活动乐园作为活动管理平台,需要支撑从活动发布、用户注册、报名参与、作品提交、评审打分到成果发布的完整流程。 ### 1.1 业务场景 - **活动主办方**:广东省图作为机构租户,负责活动的创建、发布和管理 - **活动受众**:全国范围内的少儿(3-16岁),涵盖有手机号可独立注册的青少年和需要家长代为注册的幼儿 - **活动形式**:线上报名 + 线上/线下提交绘本作品 + 线上评审 + 成果发布 - **未来扩展**:可能涉及多机构联合举办活动 ### 1.2 现有系统状态 系统原为"比赛管理系统",已完成以下改造: - 所有"比赛/赛事"文案改为"活动" - "个人赛/团队赛"改为"个人参与/团队参与" - "赛果发布"改为"成果发布" - UI 全面升级为少儿绘本创作主题风格(Nunito 字体、Creative Indigo #6366F1 主色调) ### 1.3 核心痛点 | 痛点 | 说明 | |------|------| | 无公众注册入口 | 现有系统用户只能由管理员创建,无法面向公众开放注册 | | 缺少家长-子女关系 | 少儿场景下,家长是操作主体,孩子是参与主体,现有系统没有这层关系 | | 无公众端 | 现有系统只有管理后台,缺少面向公众的 H5 页面 | | 活动可见范围受限 | 活动只能对指定租户发布,无法面向全体公众开放 | | 租户类型单一 | 租户不区分类型(图书馆、学校、幼儿园等) | --- ## 2. 用户角色定义 ### 2.1 平台管理员(超管) 乐绘世界运营团队成员。 **职责**: - 管理所有机构租户(创建、编辑、禁用) - 管理系统配置(字典、菜单、权限) - 查看全局数据和日志 ### 2.2 机构管理员 入驻平台的机构(图书馆、幼儿园、学校等)的管理人员。 **职责**: - 创建和发布活动 - 管理活动报名(审核、导出) - 管理评委(邀请、分配作品) - 发布活动成果 ### 2.3 评委 受机构邀请参与某个活动评审的专业人员。 **职责**: - 评审分配给自己的作品 - 使用评分规则打分 - 使用预设评语 ### 2.4 公众用户(家长/独立参与者) 通过公众端自主注册的用户。 **职责**: - 浏览公开活动 - 以自己的身份报名活动(有手机号的青少年) - 管理子女信息,代子女报名活动(家长) - 提交作品 - 查看活动成果和评审结果 --- ## 3. 用户故事 ### 3.1 公众用户注册与参与 ``` US-001:作为一位家长,我希望用手机号注册一个账号,以便参与平台上的活动 US-002:作为一位家长,我希望在账号下添加我的子女信息,以便为他们报名活动 US-003:作为一位家长,我希望为我的孩子报名广东省图的绘本创作活动 US-004:作为一位家长,我希望在活动提交阶段为我的孩子上传绘本作品 US-005:作为一位家长,我希望查看我孩子参与的所有活动和作品状态 US-006:作为一个有手机号的中学生,我希望自己注册账号并独立报名活动 US-007:作为公众用户,我希望通过微信扫码快速登录,不需要记密码 ``` ### 3.2 活动发布与管理 ``` US-101:作为广东省图管理员,我希望创建一个绘本创作活动并设置为全国公开可见 US-102:作为广东省图管理员,我希望审核来自全国各地的报名申请 US-103:作为广东省图管理员,我希望邀请专业评委参与作品评审 US-104:作为广东省图管理员,我希望查看报名数据并区分"自己报名"和"家长代报名" US-105:作为广东省图管理员,我希望发布活动成果,让所有参与者看到评审结果 ``` ### 3.3 多机构联合举办(二期) ``` US-201:作为主办方,我希望邀请其他机构作为协办方参与活动管理 US-202:作为协办方,我希望查看活动的报名数据和推荐评委 ``` --- ## 4. 非功能需求 | 项目 | 要求 | |------|------| | 端支持 | Web 浏览器 + H5 移动端(响应式设计,一套代码适配) | | 登录方式 | 一期:账号密码;二期:手机号验证码 + 微信扫码 | | 并发 | 支撑全国范围报名,预计峰值 500 QPS | | 数据安全 | 少儿个人信息需加密存储,符合《个人信息保护法》对未成年人的保护要求 | | 浏览器兼容 | Chrome、Safari、微信内置浏览器 | --- ## 5. 约束与前提 1. 基于现有 NestJS + Vue3 + Ant Design Vue 技术栈改造,不更换框架 2. 现有机构管理功能(学校管理、租户管理等)保留不变 3. 登录体系采用渐进式改造:一期先用账号密码,二期补充手机号和微信登录 4. 微信扫码登录和短信验证码功能由其他同事负责开发补充 5. 公众端先做 H5 形态,不做原生小程序