StudHubPro 小程序 PRD
一、项目背景
StudHubPro 是一款为学生自习室提供管理支持的小程序。该项目旨在为自习室运营方和学生提供便捷的签到、出勤记录等功能。通过小程序,学生可以快速打卡签到,查看自己的学习进度,而管理者则可以跟踪学生的出勤情况,提高自习室的运营效率。
二、目标用户
1. 学生/自习者:在自习室学习的学生群体,希望通过打卡记录学习时间,提高自律性。
2. 自习室管理者:自习室的运营人员,通过该小程序跟踪管理学生的出勤信息,优化运营。
三、核心功能
1. 用户注册与登录
• 需求描述:学生可以通过微信授权进行快速注册和登录,绑定个人信息。
• 功能要求:
• 微信授权登录,获取用户基本信息。
• 用户首次登录需填写个人信息(姓名、联系方式等)。
2. 学生签到功能
• 需求描述:学生进入自习室后,可以通过小程序完成签到,记录每日到场时间和学习时长。
• 功能要求:
• 签到页面显示当前时间和签到按钮。
• 点击签到后,记录签到时间并上传至服务器。
• 签到成功后,显示提示信息。
• 可设置每日签到提醒,确保学生不遗漏签到。
3. 学生出勤记录与分析
• 需求描述:学生可以在小程序中查看个人的签到历史和学习时长,管理自己的学习进度。
• 功能要求:
• 显示学生的签到历史记录(日期、签到时间、学习时长等)。
• 生成出勤率和学习时长的统计分析图表。
• 可选择日期范围,查看指定时间段的出勤记录。
4. 自习室管理功能
• 需求描述:自习室的管理者可以通过后台查看学生的签到记录,了解出勤情况并进行管理。
• 功能要求:
• 管理者可以查看所有学生的签到记录。
• 按日期或学生姓名筛选签到数据。
• 支持导出数据以便进行进一步分析。
5. 通知与提醒功能
• 需求描述:提供签到提醒和管理通知功能,确保学生不会错过签到,自习室运营方也能及时通知变动。
• 功能要求:
• 学生每日签到提醒通知。
• 管理者可以发送通知(如自习室变动或活动通知)给所有学生。
四、技术需求
1. 前端技术栈
• JS-Skyline:微信小程序的开发模板,使用 JS-Skyline 快速搭建小程序前端。
• WXML / WXSS:使用微信小程序的标准技术栈构建页面结构和样式。
• 微信小程序 API:使用微信提供的 API 处理用户登录、数据交互、通知等功能。
2. 后端技术栈
• Flask:使用 Flask 作为后端框架,提供 RESTful API 供前端调用。
• MySQL:使用 MySQL 数据库存储学生信息、签到记录和统计数据。
• Nginx + Gunicorn:使用 Nginx 和 Gunicorn 部署后端服务,保证稳定的 API 服务。
• SSL 证书:确保小程序使用 HTTPS 安全通信。
五、数据设计
1. 数据表
• 学生信息表(students):
• student_id:学生 ID
• name:学生姓名
• phone_number:学生联系方式
• signup_date:注册日期
• 签到记录表(attendance_records):
• record_id:签到记录 ID
• student_id:学生 ID
• signin_time:签到时间
• signout_time:签退时间(可选)
• duration:学习时长
2. 数据接口
• POST /signin:记录学生签到时间。
• GET /attendance_records:获取学生的签到历史记录。
• GET /statistics:获取学生的出勤率和学习时长统计数据。
• POST /notify:管理者发送通知。
六、用户界面设计
1. 签到页面
• 功能:学生进入自习室后,点击签到按钮进行打卡。
• 界面布局:显示当前时间、签到按钮、签到成功后的提示信息。
2. 出勤记录页面
• 功能:显示学生的签到历史和学习时长,图表化显示出勤情况。
• 界面布局:列出每日签到记录,并提供数据分析图表(柱状图或折线图)。
3. 管理后台(可选)
• 功能:管理者可以通过后台查看所有学生的签到记录,并发送通知。
• 界面布局:筛选条件、签到记录列表、导出数据按钮。
七、开发计划与时间节点
1. 需求确认:1 周
2. 前端开发:2 周
3. 后端开发:2 周
4. 集成与测试:1 周
5. 上线与推广:1 周
八、风险与解决方案
• 数据安全:确保 HTTPS 加密传输,使用强密码保护数据库访问。
• 负载问题:在后期自习室用户数量增加时,可以通过服务器扩展和数据库优化应对高并发访问。
• 用户隐私保护:严格遵守微信小程序的数据隐私规范,确保用户数据安全。