This repository has been archived on 2026-08-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
数学脑 · 开发需求文档
版本:MVP v6.0 | 更新日期:2023年
一、项目概述
| 项目 |
内容 |
| 产品名 |
数学脑 |
| 代码名 |
miniapp |
| 类型 |
移动端 SPA(单页应用)Web App |
| 架构 |
Flask(Python 后端) + 原生 HTML/CSS/JS(前端) |
| 适应端 |
iPhone 移动端(390px 宽度,100dvh,safe-area 适配) |
| 数据库 |
SQLite |
| AI 引擎 |
DeepSeek Chat API |
二、技术栈
| 层级 |
技术 |
用途 |
| 后端框架 |
Flask 3.x(Python) |
路由、API、数据库管理 |
| 数据库 |
SQLite(SQLite3) |
视频数据、行为日志 |
| 前端 |
原生 HTML5 + CSS3 + Vanilla JS |
SPA 页面切换、视觉小说引擎 |
| AI 集成 |
DeepSeek Chat API |
AI 数学助教对话 |
| 故事数据 |
JSON(seed_story.json) |
8 章互动剧情节点树 |
| 视频数据 |
JSON(seed_videos.json)→ SQLite |
54 条专业分区视频 |
| UI 风格 |
自制设计系统(CSS 变量 + flex/grid) |
iPhone 式移动端适配 |
三、项目文件结构
四、后端 API 接口
| 路径 |
方法 |
参数 |
返回 |
说明 |
/ |
GET |
— |
HTML |
返回 SPA 首页 |
/api/videos |
GET |
module(选填), discipline(选填) |
{code, data, disciplines} |
视频列表 + 学科分类 |
/api/chat |
POST |
{message, student_id} |
{code, reply, is_fallback} |
AI 对话(DeepSeek) |
/api/story |
GET |
— |
{code, data} |
获取互动剧情 JSON |
/api/log |
POST |
{user_id, action, target} |
{code, msg} |
行为日志记录 |
/api/students |
GET |
— |
{code, data} |
学生列表(B端预留) |
视频数据模型(videos 表)
| 字段 |
类型 |
说明 |
| id |
INTEGER PK |
自增 |
| title |
TEXT NOT NULL |
视频标题 |
| module |
TEXT |
所属模块(如"数人") |
| sub_category |
TEXT |
子分类 |
| discipline |
TEXT |
学科(如"人工智能") |
| discipline_icon |
TEXT |
学科 emoji |
| video_url |
TEXT |
外部视频链接 |
| description |
TEXT |
视频简介 |
| duration_min |
INTEGER |
时长(分钟) |
| author |
TEXT |
作者(学院+姓名) |
五、前端架构
五层设计
核心 JavaScript 模块
| 模块 |
函数 |
功能 |
| 全局状态 |
vnState, allVideos, storyData |
应用级状态管理 |
| 模块切换 |
switchModule(), hideAllPanels() |
四Tab页面切换、DOM显隐 |
| 发现页面 |
loadVideos(), renderVideoList(), renderDisciplineGrid() |
视频流渲染、12学科网格 |
| 知识页面 |
renderShushuoFeed(), updateShushuoHero() |
知识卡片Feed渲染 |
| 数学人生 |
navigateVN(), buildChoiceButtons(), applyVNStats() |
视觉小说引擎核心 |
| AI聊天 |
openChat(), sendMessage(), quickAsk() |
AI对话弹窗 |
| 数据持久化 |
saveVNState(), loadVNSave(), resetVNSave() |
localStorage存档 |
六、视觉小说引擎(VN Engine)
剧情数据模型
四属性系统
| 属性 |
键名 |
初始值 |
说明 |
| 📐 数理根基 |
shuli |
10 |
解锁高阶功法、影响论道胜负 |
| ⚔️ 侠义声望 |
xiayi |
10 |
影响NPC态度、武林大会成绩 |
| 🧘 心志韧性 |
xinzhi |
10 |
面对挫折的选择余地 |
| 💕 好感度 |
favorability |
0(每人) |
触发专属剧情、影响结局 |
当前剧情规模
- 8 章:初入江湖 → 西部教习 → 数理论道 → 脑学初创 → 报国之路 → 暗流涌动 → 陋室修炼 → 真相之门
- 93 个交互节点
- 8+ 种结局(真相守望、数理宗师、逍遥江湖、出海远航、悲情英雄、堕落之路、冤狱、虚无)
七、UI 设计系统
色彩系统
| 用途 |
CSS 变量 |
色值 |
| 发现页主色 |
--shuren |
#F97316(橙) |
| 知识页主色 |
--shushuo |
#3B82F6(蓝) |
| 数学人生主色 |
--shusi |
#10B981(绿) |
| 我的页主色 |
--mine |
#8B5CF6(紫) |
| 页面背景 |
--bg |
#F2F3F7 |
| 卡片背景 |
--card |
#FFFFFF |
| 主文字 |
--text |
#1E1E2E |
布局规范
- 容器宽度:
min(390px, 100vw)(iPhone 比例)
- 桌面端:居中显示 +
border-radius: 34px + 阴影(模拟设备壳)
- 底部 TabBar:白色半透明玻璃感 +
backdrop-filter: blur(18px) + safe-area
- 顶部状态栏:白色半透明 + 模糊 +
z-index: 50
- 字体:
-apple-system, PingFang SC, Microsoft YaHei
八、部署与运行
启动命令
访问地址
环境要求
- Python 3.12+
- Flask
- requests
- python-docx(素材提取用,非运行时必需)
数据初始化
- 首次启动自动执行
init_db() + load_seed_videos()
- 54 条视频数据从
seed_videos.json 导入 SQLite
- 互动剧情从
seed_story.json 按需读取
- 旧数据库可通过改名绕过锁定问题
九、待开发需求
P0(核心)
P1(增强)
P2(远期)