Delete start.sh
# 算法“视界”——127种算法的沉浸式动画教学平台
一个面向算法沉浸式教学的中文 JavaWeb 平台,收录 127 个中文算法入口,支持算法步骤回放、速度调节、同屏对比、自定义数据集新增/编辑/查询/批量删除/分页、历史性能统计、DeepSeek AI 算法检索、学习路线推荐、输入数据诊断、当前步骤讲解、步骤追问、练习题提示、同屏对比报告和教师备课。 每个算法都提供一道来自力扣或洛谷等公开题库的配套练习题外链,点击后跳转到原题页面练习。
JSESSIONID
@MapperScan
javawebwork/ backend/ Spring Boot 后端源码、配置和测试 src/main/java/com/algoviz/ ai/ DeepSeek 接入、本地教学兜底和 AI 教学接口 algorithm/ 算法目录、执行器、步骤生成、同屏对比和运行记录 auth/ 用户名/手机号注册、登录、退出和 Session 用户态 common/ 统一响应、异常处理、跨域配置、数据库兼容初始化和 MyBatis Mapper 扫描配置 dataset/ 自定义输入数据保存、查询和删除 history/ 历史运行记录和性能统计 src/test/java/ 后端单元测试和回归测试 frontend/ Vue 前端源码 src/api/ 后端接口封装 src/components/ 可复用可视化、播放、指标和伪代码组件 src/router/ 页面路由和登录守卫 src/utils/ 输入解析、格式化、播放状态和算法专属输入预设 src/views/ 页面级组件 database/ MySQL 初始化脚本 algorithm_viz_mysql.sql algorithm_viz_mysql_heidisql_gbk.sql schema.sql project-specification.md 项目规范和阶段记录 .codex/project-memory.md 跨轮开发记忆
backend/target/、backend/.m2/、backend/logs/、frontend/node_modules/、frontend/dist/ 和 *.log 都属于本地构建、依赖或运行日志文件,已在 .gitignore 中排除,不作为项目源码交付内容。 课程设计报告和评分材料保存在 C:\Users\lenovo\Desktop\javaweb课设\课程设计报告,不再作为本项目源码目录的一部分维护。
backend/target/
backend/.m2/
backend/logs/
frontend/node_modules/
frontend/dist/
*.log
.gitignore
C:\Users\lenovo\Desktop\javaweb课设\课程设计报告
先确保本机 MySQL 可登录,然后执行:
mysql -u root -p < database/algorithm_viz_mysql.sql
也可以进入 MySQL 后执行:
SOURCE C:/Users/lenovo/Desktop/javawebwork/database/algorithm_viz_mysql.sql;
默认数据库名为 AlgorithmViz。
AlgorithmViz
如果使用 HeidiSQL:
database/algorithm_viz_mysql.sql
SET NAMES utf8mb4;
警告
栈:数组实现
璀﹀憡
鏍堬細...
database/algorithm_viz_mysql_heidisql_gbk.sql
DROP DATABASE AlgorithmViz;
导入后可以用下面的 SQL 检查中文是否正常:
SELECT algorithm_key, name_zh FROM AlgorithmViz.algorithm_catalog WHERE algorithm_key = 'stack_array';
期望结果中的中文应为 栈:数组实现。
后端默认读取以下环境变量。数据库密码和 DeepSeek Key 不要写入源码。
$env:ALGOVIZ_DB_URL="jdbc:mysql://127.0.0.1:3306/AlgorithmViz?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true" $env:ALGOVIZ_DB_USERNAME="root" $env:ALGOVIZ_DB_PASSWORD="你的 MySQL 密码" $env:DEEPSEEK_API_KEY="你的 DeepSeek Key,可不配置" $env:DEEPSEEK_BASE_URL="https://api.deepseek.com" $env:DEEPSEEK_MODEL="deepseek-chat"
如果不配置 DEEPSEEK_API_KEY,AI 检索、学习路线、输入诊断、当前步骤讲解、步骤追问、练习题提示、对比报告和教师备课都会自动使用免配置本地教学模式;它会基于平台当前算法目录、复杂度说明、输入特征、当前步骤快照和真实对比指标返回结构化中文教学内容。配置后端 Key 后会自动切换为官方 DeepSeek。
DEEPSEEK_API_KEY
前端如需自定义 API 地址,可复制 frontend/.env.example 为 frontend/.env;本地开发建议继续使用 127.0.0.1,不要把前端写成 127.0.0.1、后端写成 localhost 的混合形式。
frontend/.env.example
frontend/.env
127.0.0.1
localhost
后端已提供面向上千用户同时使用场景的可调运行参数,默认值按课程演示和中等服务器预留余量配置。上线时建议按服务器 CPU、内存、MySQL 连接数和压测结果调整:
$env:ALGOVIZ_TOMCAT_MAX_THREADS="400" $env:ALGOVIZ_TOMCAT_MIN_SPARE_THREADS="40" $env:ALGOVIZ_TOMCAT_MAX_CONNECTIONS="2000" $env:ALGOVIZ_TOMCAT_ACCEPT_COUNT="1000" $env:ALGOVIZ_DB_POOL_MAX_SIZE="80" $env:ALGOVIZ_DB_POOL_MIN_IDLE="10" $env:ALGOVIZ_SESSION_TIMEOUT="30m" $env:ALGOVIZ_SESSION_COOKIE_SECURE="false"
真实上线承载能力不只由代码决定,还需要配合 MySQL max_connections、数据库索引、静态资源独立部署或 Nginx 反向代理、服务器带宽和 JMeter/LoadRunner 等压测结果确认。当前项目代码侧已把 Tomcat 线程、连接队列、响应压缩、Session 超时、Session Cookie secure 开关和 Hikari 连接池做成环境变量配置,方便上线前调优。HTTPS 部署时建议把 ALGOVIZ_SESSION_COOKIE_SECURE 设为 true。
max_connections
ALGOVIZ_SESSION_COOKIE_SECURE
true
cd backend mvn spring-boot:run
默认地址:
http://127.0.0.1:8080
如果 Maven 默认仓库权限受限,可以使用项目内仓库:
mvn --% -Dmaven.repo.local=.m2/repository spring-boot:run
首次运行先安装依赖:
cd frontend npm.cmd install
启动开发服务器:
npm.cmd run dev
http://127.0.0.1:5173
为了保证 Session 正常工作,建议前端和后端都使用 127.0.0.1,不要混用 localhost。
后端测试:
cd backend mvn --% -Dmaven.repo.local=.m2/repository test
前端构建:
cd frontend npm.cmd run build
/algorithms
/visualizer/bubble_sort
/visualizer/quick_sort
/visualizer/:algorithmKey
/compare
/datasets
/history
/ai-search
5,3,8,1,2
# 算法“视界”——127种算法的沉浸式动画教学平台
一个面向算法沉浸式教学的中文 JavaWeb 平台,收录 127 个中文算法入口,支持算法步骤回放、速度调节、同屏对比、自定义数据集新增/编辑/查询/批量删除/分页、历史性能统计、DeepSeek AI 算法检索、学习路线推荐、输入数据诊断、当前步骤讲解、步骤追问、练习题提示、同屏对比报告和教师备课。 每个算法都提供一道来自力扣或洛谷等公开题库的配套练习题外链,点击后跳转到原题页面练习。
技术栈
JSESSIONID,支持用户名/手机号注册与登录@MapperScan扫描真实 Mapper 包,避免普通业务接口被代理目录结构
backend/target/、backend/.m2/、backend/logs/、frontend/node_modules/、frontend/dist/和*.log都属于本地构建、依赖或运行日志文件,已在.gitignore中排除,不作为项目源码交付内容。 课程设计报告和评分材料保存在C:\Users\lenovo\Desktop\javaweb课设\课程设计报告,不再作为本项目源码目录的一部分维护。数据库初始化
先确保本机 MySQL 可登录,然后执行:
也可以进入 MySQL 后执行:
默认数据库名为
AlgorithmViz。如果使用 HeidiSQL:
database/algorithm_viz_mysql.sql,确认第一行是SET NAMES utf8mb4;,然后从第一行执行整个文件。警告、栈:数组实现之类中文显示成璀﹀憡、鏍堬細...,改用专用脚本database/algorithm_viz_mysql_heidisql_gbk.sql。这个文件是 GBK/ANSI 编码,适合中文 Windows 上的 HeidiSQL 默认打开方式。DROP DATABASE AlgorithmViz;,再打开上面的正确脚本完整执行。导入后可以用下面的 SQL 检查中文是否正常:
期望结果中的中文应为
栈:数组实现。环境变量
后端默认读取以下环境变量。数据库密码和 DeepSeek Key 不要写入源码。
如果不配置
DEEPSEEK_API_KEY,AI 检索、学习路线、输入诊断、当前步骤讲解、步骤追问、练习题提示、对比报告和教师备课都会自动使用免配置本地教学模式;它会基于平台当前算法目录、复杂度说明、输入特征、当前步骤快照和真实对比指标返回结构化中文教学内容。配置后端 Key 后会自动切换为官方 DeepSeek。前端如需自定义 API 地址,可复制
frontend/.env.example为frontend/.env;本地开发建议继续使用127.0.0.1,不要把前端写成127.0.0.1、后端写成localhost的混合形式。上线并发配置
后端已提供面向上千用户同时使用场景的可调运行参数,默认值按课程演示和中等服务器预留余量配置。上线时建议按服务器 CPU、内存、MySQL 连接数和压测结果调整:
真实上线承载能力不只由代码决定,还需要配合 MySQL
max_connections、数据库索引、静态资源独立部署或 Nginx 反向代理、服务器带宽和 JMeter/LoadRunner 等压测结果确认。当前项目代码侧已把 Tomcat 线程、连接队列、响应压缩、Session 超时、Session Cookie secure 开关和 Hikari 连接池做成环境变量配置,方便上线前调优。HTTPS 部署时建议把ALGOVIZ_SESSION_COOKIE_SECURE设为true。启动后端
默认地址:
如果 Maven 默认仓库权限受限,可以使用项目内仓库:
启动前端
首次运行先安装依赖:
启动开发服务器:
默认地址:
为了保证 Session 正常工作,建议前端和后端都使用
127.0.0.1,不要混用localhost。验证命令
后端测试:
前端构建:
核心页面
/algorithms:算法目录/visualizer/bubble_sort:冒泡排序可视化/visualizer/quick_sort:快速排序可视化/visualizer/:algorithmKey:127 个目录算法均可生成可视化步骤,并支持 AI 输入诊断、AI 讲解和步骤追问/compare:127 个目录算法中同一类别下的两个不同算法同屏对比,可跳转到 AI 学习中心生成对比报告/datasets:自定义测试数据管理,支持新增、编辑、查询、单删、批量删除和分页/history:历史记录和性能统计/ai-search:AI 学习中心,集中提供算法检索、学习路线、对比报告、练习提示和教师备课演示建议
5,3,8,1,2生成步骤。