# aim **Repository Path**: whitnight/aim ## Basic Information - **Project Name**: aim - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-08 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 这是一个基于 Flask 框架开发的认知能力测试 Web 应用程序,主要包含反应力测试和记忆力测试两个核心功能模块。项目实现了用户注册登录、头像上传、成绩统计、数据可视化等功能,旨在为用户提供一个有趣的认知能力评估平台。 一、项目结构: text ├── app.py # Flask 主应用程序 ├── 项目.sql # 数据库结构和触发器 ├── README.md # 项目说明文档 ├── static/ # 静态资源文件夹 │ ├── css/ # 样式文件 │ │ ├── 成绩页面 1.css │ │ ├── 成绩页面 2.css │ │ ├── 登录页面.css │ │ ├── 反应力测试.css │ │ ├── 个人页面.css │ │ ├── 更改密码.css │ │ ├── 记忆力测试.css │ │ ├── 页面注册.css │ │ └── 主页.css │ ├── js/ # JavaScript 文件 │ │ ├── 反应力测试.js │ │ ├── 个人页面.js │ │ ├── 记忆力测试.js │ │ └── 主页.js │ └── pic/ # 图片资源 │ ├── 用户头像.png │ ├── logo-blue.png │ └── logo.png └── templates/ # HTML 模板文件 ├── 成绩页面 1.html ├── 成绩页面 2.html ├── 登录页面.html ├── 反应力测试.html ├── 个人页面.html ├── 更改密码.html ├── 记忆力测试.html ├── 主页.html └── 注册页面.html 二、功能特性: 1. 用户系统 注册功能:用户名(4-32 位)和密码(6-32 位)验证 登录功能:用户名密码验证,Session 管理 密码修改:通过用户名和用户 ID 验证后修改密码 头像管理:支持上传和更换用户头像 2. 测试模块 反应力测试 (Aim Trainer) 快速点击 10 个随机出现的红色方块 记录每次点击的反应时间 计算平均反应时间作为成绩 使用 JavaScript 动态生成交互界面 记忆力测试 (Visual Memory) 36 个方格的视觉记忆游戏 随机高亮 10 个方块,2 秒后恢复 用户回忆并选择高亮过的方块 计算正确选择的个数作为成绩 3. 成绩系统 个人成绩统计:最高成绩、平均成绩、最近 5 次成绩 数据可视化:使用 Chart.js 生成柱状图和折线图 对比分析:个人平均成绩与全体用户平均成绩对比 历史记录:展示最近 5 次测试成绩趋势 4. 数据库设计 用户表(user):存储用户基本信息 反应力成绩表(reactivity_grade):存储反应力测试成绩 记忆力成绩表(retention_grade):存储记忆力测试成绩 触发器系统:记录用户数据的增删改操作 三、技术栈: 后端: Flask:轻量级 Web 框架 PyMySQL:MySQL 数据库连接 Session 管理:用户状态维护 前端: HTML5/CSS3:页面布局和样式 JavaScript:交互逻辑实现 Chart.js:数据可视化图表 响应式设计:适应不同屏幕尺寸 数据库: MySQL:关系型数据库 触发器:数据操作审计 外键约束:数据完整性保证 四、安装与运行: 环境要求: Python 3.7+ MySQL 5.7 pip 包管理工具 flask 安装: pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql 安装: pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple 数据库需要先在 mysql 或 mysqlworkbench(https://www.mysql.com/products/workbench/)运行一遍, 从 create database data;到 delimiter // create trigger update_trigger after update on user for each row begin insert into update_user(update_table,user_id,update_time,update_type,update_text) values('user',new.user_id,now(),'update',concat('更新的 id 为:',old.user_id,',姓名为:',old.user_name,',旧密码为:',old.user_password,',新密码为:',new.user_password)); end // delimiter ; 注意:需要修改 app.py 中的数据库连接配置:(第 11 行) host = '127.0.0.1' port = 3306 user = '自己的用户名' passwd = '自己设置的密码' database = 'data' 五、使用说明 1. 注册与登录 首次访问需要注册账号 注册后使用用户名和密码登录 系统会自动分配 8 位数字用户 ID 2. 测试流程 登录后进入主页 选择"反应力测试"或"记忆力测试" 按照游戏规则完成测试 查看成绩和统计信息 3. 个人中心 查看和修改个人信息 更换用户头像 查看历史成绩 修改登录密码 数据库表结构 主要表结构 user 表:用户基本信息 reactivity_grade 表:反应力测试成绩 retention_grade 表:记忆力测试成绩 操作日志表:insert_user、delete_user、update_user 触发器功能 insert_trigger:记录用户注册操作 delete_trigger:记录用户删除操作 update_trigger:记录用户信息更新操作 API 接口 用户相关 POST /:用户注册 POST /login:用户登录 POST /change_passwd:修改密码 POST /upload_avatar:上传头像 测试相关 POST /save_score:保存反应力测试成绩 POST /save_score2:保存记忆力测试成绩 页面路由 /main:主页 /myself:个人中心 /score:反应力测试成绩页面 /score2:记忆力测试成绩页面 /reactivity_game:反应力测试页面 /retention_game:记忆力测试页面 文件上传 头像保存在 static/pic/目录 文件名格式:用户 ID.png 小组成员: 宫哲俊 f25016610 负责 mysql 和 js 编写 张健 f25016627 负责 flask 编写 和 4 个 css 编写 夏宇恒 f25016624 负责 html 与 2 个 css 编写