diff --git a/README.md b/README.md index e50be4b..7caf911 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,131 @@ -# PPAES +# PPAES——编程能力个性化评价系统 + +## doc + +#### 01_行业和领域调研分析报告; + +1. 行业和领域背景 +2. 典型应用 +3. 采用技术 +4. 存在不足 +5. 未来关注 + +#### 02_软件系统的需求构思及描述; + +1. 项目背景 +2. 欲解决问题 +3. 软件创意 +4. 系统的组成 +5. 软件系统的功能描述 +6. 可行性及潜在风险 + +#### 03_软件需求规格说明书; + +1. 引言 + 1. 软件项目概述 + 1. 项目意义 + 2. 软件目标用户 + 2. 软件功能概述 + 3. 软件实现难点及特色分析 + 1. 项目实现难点 + 2. 项目特色 + 4. 参考资料 +2. 软件项目需求描述 + 1. 2.1 软件需求的用例模型 + 2. 2.2 软件需求的用例描述及分析顺序图 + 1. 用例名:用户登录 + 2. 用例名:查看基础数据统计 + 3. 用例名:查看个人能力评估 + 4. 用例名:查看学习建议 + 5. 用例名:基础数据统计 + 6. 用例名:知识点掌握程度预测 + 7. 用例名:训练深度学习模型 + 3. 软件需求的分析类图 + 1. 核心类的属性与操作 + 2. 类之间的关系 +3. 其他需求描述 + 1. 性能要求 + 2. 交付要求 + 3. 验收要求 + +#### 04_软件设计规格说明书; + +1. 引言 + 1. 软件设计目标和原则 + 2. 软件设计的约束和限制 +2. 软件体系结构设计 +3. 用户界面设计 + 1. 系统界面的外观设计及其类表示 + 1. LoginUI + 2. MainUI + 3. StatisticsUI + 4. AssessmentUI + 5. RecommendationUI + 2. 系统界面流设计 +4. 详细设计 + 1. 用例设计 + 1. 基础数据统计用例实现的设计方案 + 2. 知识点掌握程度预测用例实现的设计方案 + 3. 训练深度学习模型用例实现的设计方案 + 2. 类设计 + 3. 数据模型设计 + 1. 编程能力个性化评价系统数据设计类图 + 2. 编程能力个性化评价系统数据的操作设计 + 4. 部署设计 + +## model + +编程能力个性化评价系统用例模型; + +编程能力个性化评价系统“知识点掌握预测”用例的顺序图; +编程能力个性化评价系统“用户登录”用例的顺序图; +编程能力个性化评价系统“深度学习模型”用例的顺序图; +编程能力个性化评价系统“基础数据统计”用例的顺序图; +编程能力个性化评价系统“查看学习建议”用例的顺序图; +编程能力个性化评价系统“查看基础数据统计”用例的顺序图; +编程能力个性化评价系统“查看个人能力评估”用例的顺序图; + +编程能力个性化评价系统分析类图; + +编程能力个性化评价系统体系结构逻辑视图; + +编程能力个性化评价系统StatisticsUI外观设计; +编程能力个性化评价系统StatisticsUI类设计; +编程能力个性化评价系统RecommendationUI外观设计; +编程能力个性化评价系统RecommendationUI类设计; +编程能力个性化评价系统MainUI外观设计; +编程能力个性化评价系统MainUI类设计; +编程能力个性化评价系统LoginUI外观设计; +编程能力个性化评价系统LoginUI类表示; +编程能力个性化评价系统AssessmentUI外观设计; +编程能力个性化评价系统AssessmentUI类设计; +编程能力个性化评价系统界面流的顺序图; + +编程能力个性化评价系统“知识点掌握预测”用例设计顺序图; +编程能力个性化评价系统“训练深度学习模型”用例设计顺序图; +编程能力个性化评价系统“基础数据统计”用例设计顺序图; +编程能力个性化评价系统设计类图; + +编程能力个性化评价系统数据设计类图; + +编程能力个性化评价系统的部署图; + +## src + +models + +services + +templates + +tests + +## other + +05_软件工程课程设计汇报PPT; +06_软件开发项目的个人自评报告(每个成员都要填写,一个文档) +07_软件开发项目的团队自评报告 +08_学号姓名-实践总结报告(每个成员单独一份) +09_演示运行视频 +10_项目宣传海报 diff --git a/doc/编程能力个性化评价系统.pptx b/doc/编程能力个性化评价系统.pptx deleted file mode 100644 index 11b60c1..0000000 Binary files a/doc/编程能力个性化评价系统.pptx and /dev/null differ diff --git a/doc/05_软件工程课程设计汇报_蒋鹏程.pptx b/other/05_软件工程课程设计汇报_蒋鹏程.pptx similarity index 100% rename from doc/05_软件工程课程设计汇报_蒋鹏程.pptx rename to other/05_软件工程课程设计汇报_蒋鹏程.pptx diff --git a/other/06_软件开发项目的个人自评报告.xlsx b/other/06_软件开发项目的个人自评报告.xlsx new file mode 100644 index 0000000..4edac20 Binary files /dev/null and b/other/06_软件开发项目的个人自评报告.xlsx differ diff --git a/other/07_软件开发项目的团队自评报告.xlsx b/other/07_软件开发项目的团队自评报告.xlsx new file mode 100644 index 0000000..c11de7a Binary files /dev/null and b/other/07_软件开发项目的团队自评报告.xlsx differ diff --git a/other/08_230340170蒋鹏程-实践总结报告.docx b/other/08_230340170蒋鹏程-实践总结报告.docx new file mode 100644 index 0000000..8a995b4 Binary files /dev/null and b/other/08_230340170蒋鹏程-实践总结报告.docx differ diff --git a/other/08_230340171王璟鸿-实践总结报告.docx b/other/08_230340171王璟鸿-实践总结报告.docx new file mode 100644 index 0000000..f2e3696 Binary files /dev/null and b/other/08_230340171王璟鸿-实践总结报告.docx differ diff --git a/other/08_230340174 戴紫洋-实践总结报告.docx b/other/08_230340174 戴紫洋-实践总结报告.docx new file mode 100644 index 0000000..cb42c6d Binary files /dev/null and b/other/08_230340174 戴紫洋-实践总结报告.docx differ diff --git a/other/09_演示运行视频.mp4 b/other/09_演示运行视频.mp4 new file mode 100644 index 0000000..0d3c413 Binary files /dev/null and b/other/09_演示运行视频.mp4 differ diff --git a/other/海报.png b/other/10_项目宣传海报.png similarity index 100% rename from other/海报.png rename to other/10_项目宣传海报.png diff --git a/src/README.md b/src/README.md index e69de29..1ee9514 100644 --- a/src/README.md +++ b/src/README.md @@ -0,0 +1,120 @@ +编程能力个性化评价系统 +—— 系统简介与环境配置指南 + +一、系统简介 +编程能力个性化评价系统是一款融合 人工智能预测 与 多维度数据分析 的智能学习辅助平台,专为 ACM-ICPC 等算法竞赛选手设计。系统基于用户在在线判题(OJ)平台的历史提交数据,通过深度挖掘行为模式、知识点掌握情况和解题趋势,提供科学、动态、个性化的编程能力评估与发展建议。 + +核心价值: + 精准画像:构建用户编程能力的六维雷达图,量化评估真实水平 + 智能预测:采用 PyTorch + LSTM 神经网络,预测未来知识点掌握趋势 + 等级对标:建立符合 ACM 竞赛体系的 6 级能力等级(新手 → 世界决赛级) + 因材施教:生成 12 周个性化学习计划、知识图谱路线与资源推荐 + 极速响应:通过数据库索引 + 内存缓存,实现 <0.1 秒重复访问体验 + +适用人群: + 高校 ACM/ICPC 参赛队员 + + +技术实现: + 后端架构 Flask 微服务 + 分层服务设计(AuthService / StatsService / AssessmentService 等) + AI 模块 PyTorch 构建 2 层 LSTM 网络,输入 10 维时序特征,输出掌握度预测 + 数据存储 SQLite 轻量级数据库 + 8 个复合索引优化查询性能 + 前端交互 Bootstrap 5 响应式布局 + ECharts 5 可视化图表(词云、雷达图、趋势线等) + 性能保障 CTE 排名算法(提速 90%+)+ TTL 内存缓存(命中率 >95%) + +本系统不仅是一个评估工具,更是一个 AI 驱动的成长伙伴,帮助用户从“盲目刷题”走向“精准提升”。 + +二、环境配置指南 +系统要求: + 操作系统 Windows / macOS / Linux(推荐 Linux 或 macOS 用于训练) + Python 版本 3.8 或更高(建议 3.9–3.11) + 浏览器 Chrome / Edge / Firefox(需启用 JavaScript) + 磁盘空间 ≥ 200 MB(含数据库与模型) + 内存 ≥ 2 GB(训练 LSTM 时建议 ≥ 4 GB) + +安装步骤: +1️⃣ 克隆或下载项目 +bash +git clone https://bdgit.educoder.net/pc729iqo3/PPAES.git +cd PPAES +若无 Git,可直接下载 ZIP 并解压到本地目录。 + +2️⃣ 创建虚拟环境(推荐) +bash +创建虚拟环境 +python -m venv venv +激活虚拟环境 +Windows: +venv\Scripts\activate +macOS/Linux: +source venv/bin/activate + +3️⃣ 安装依赖 +方案 A:完整功能(含 AI 预测) +bash +pip install -r requirements.txt +包含 Flask、PyTorch、Pandas、NumPy、ECharts 等全部依赖。 +方案 B:基础功能(不含 LSTM) +bash +pip install Flask==2.3.3 flask-login==0.6.2 pandas==2.2.3 numpy==1.26.4 +适用于仅需统计与评估功能,无需 AI 预测的场景。 +注意:PyTorch 安装可能较慢,请确保网络通畅。如需 GPU 支持,请参考 [PyTorch 官网](https://pytorch.org/get-started/locally/) 安装对应版本。 + +4️⃣ 初始化数据库 +bash +创建表结构 +python backend/scripts/init_db.py +导入示例题目与提交记录(来自 data/ 目录) +python backend/scripts/ingest_json.py +(推荐)优化数据库性能(创建索引 + VACUUM) +python optimize_database.py +成功后将在 backend/instance/app.sqlite 生成约 158 MB 的数据库文件。 + +5️⃣ (可选)训练 LSTM 预测模型 +若需启用 AI 趋势预测 功能: +bash +基础训练(约 2-5 分钟,CPU) +python models/train_lstm_model.py +或自定义参数训练(例如 100 轮 + 绘图) +python models/train_lstm_model.py --epochs 100 --batch_size 64 --plot +训练完成后,模型将保存为 models/lstm_knowledge_predictor.pth。 +提示:首次使用可跳过此步,系统会检测模型是否存在并提示。 + +6️⃣ 启动系统 +bash +推荐方式:使用启动脚本(自动打开浏览器) +python start_system.py +或直接运行 Flask +python app.py +成功启动后,终端将显示: + ✅ 系统已启动!正在打开浏览器... + 🌐 访问地址: http://localhost:5000 + 👤 测试账号: 52(密码: 123456) + 🔐 默认所有用户密码均为 123456(可在 config.py 中修改)。 + + 🧪 快速验证 + + 操作 验证方式 + ------ -------- + Web 服务 访问 http://localhost:5000,应显示登录页 + 数据库 登录后进入仪表板,查看是否有统计数据 + LSTM 模型 进入「学习建议」页面,查看是否有「AI 掌握度预测」模块 + API 接口 访问 http://localhost:5000/api/grades/52,应返回 JSON 数据 + +🛠 配置说明(config.py) + +python +class Config: +SECRET_KEY = 'your-secret-key' # 生产环境务必修改! +DB_PATH = 'backend/instance/app.sqlite' # 数据库路径 +DEBUG = True # 开发模式 +HOST = '0.0.0.0' # 允许外部访问 +PORT = 5000 # 端口号 +DEFAULT_PASSWORD = '123456' # 默认用户密码 +📌 生产部署建议:关闭 DEBUG,设置强 SECRET_KEY,使用 Nginx + Gunicorn。 + +🚀 下一步 +登录系统(用户名:52,密码:123456) +探索四大核心模块:仪表板 → 数据统计 → 能力评估 → 学习建议 +查看 docs/ 目录获取详细开发与使用文档 +