|
1 | | -# 课伴(KeBan) |
| 1 | +<p align="center"> |
| 2 | + <h1 align="center">📚 课伴 KeBan</h1> |
| 3 | + <p align="center"><strong>你的 AI 智能学习伙伴 — 让每一分钟网课都高效有价值</strong></p> |
| 4 | + <p align="center"> |
| 5 | + <img src="https://img.shields.io/badge/status-alpha-orange.svg" alt="Status" /> |
| 6 | + <img src="https://img.shields.io/badge/version-v0.2.0--alpha-blue.svg" alt="Version" /> |
| 7 | + <img src="https://img.shields.io/badge/build-passing-brightgreen.svg" alt="Build" /> |
| 8 | + <img src="https://img.shields.io/badge/license-Private-lightgrey.svg" alt="License" /> |
| 9 | + <img src="https://img.shields.io/badge/React-18-61dafb.svg" alt="React" /> |
| 10 | + <img src="https://img.shields.io/badge/Tauri-2.0-ffc5c5.svg" alt="Tauri" /> |
| 11 | + </p> |
| 12 | +</p> |
2 | 13 |
|
3 | | -> 提高网课效率的智能学习工具 |
| 14 | +--- |
4 | 15 |
|
5 | | -## 项目简介 |
| 16 | +## 📝 项目简介 |
6 | 17 |
|
7 | | -课伴是一款以"提高网课效率"为核心定位的学习工具软件,提供四大核心学习工具模块: |
| 18 | +**课伴(KeBan)** 是一款面向个人的 **本地优先(Local-First)AI 辅助学习桌面应用**,基于费曼学习法等科学方法论,致力于解决网课学习效率低下的核心痛点。 |
8 | 19 |
|
9 | | -- **番茄钟(Pomodoro Timer)**:专注时长管理与统计 |
10 | | -- **智能笔记(Notes)**:结构化随堂笔记记录 |
11 | | -- **闪卡(Flashcards)**:SM-2 间隔重复记忆 |
12 | | -- **费曼学习法(Feynman Technique)**:以教代学深度理解 |
| 20 | +> 💡 **核心理念:本地优先 + AI 增强可选** |
| 21 | +> |
| 22 | +> 所有核心功能 **离线完整可用**,无需任何网络依赖;联网时可按需开启 AI 辅助,作为增值能力叠加。你的学习数据,始终掌握在自己手中。 |
13 | 23 |
|
14 | | -## 架构理念 |
| 24 | +--- |
15 | 25 |
|
16 | | -**本地优先 + AI 增强可选** |
| 26 | +## ✨ 核心特性 |
17 | 27 |
|
18 | | -- **本地模式**:所有核心功能可在纯本地离线环境完整运行,不依赖任何网络服务 |
19 | | -- **AI 增强模式**:网络可用时可选开启 AI 辅助能力,作为增值功能叠加 |
| 28 | +课伴围绕 **"学 → 记 → 练 → 悟"** 学习闭环,提供四大核心模块: |
20 | 29 |
|
21 | | -## 技术栈 |
| 30 | +### 🍅 番茄钟(Pomodoro Timer)— 时间管理 |
22 | 31 |
|
23 | | -| 领域 | 选型 | |
| 32 | +- **三段式计时**:工作 / 短休息 / 长休息自动轮转 |
| 33 | +- **双模式切换**:上课模式(45 分钟静默)与自习模式(25/5 标准节奏) |
| 34 | +- **后台不中断**:Web Worker 后台计时,切换标签页不中断 |
| 35 | +- **数据洞察**:专注时长统计与趋势分析,量化学习投入 |
| 36 | + |
| 37 | +### 📝 智能笔记(Smart Notes)— 知识沉淀 |
| 38 | + |
| 39 | +- **专业编辑器**:基于 TipTap 3(ProseMirror)的富文本编辑体验 |
| 40 | +- **多种模板**:大纲式、康奈尔笔记法、思维导图式等结构化模板 |
| 41 | +- **灵活组织**:3 级嵌套文件夹 + 自由标签系统 |
| 42 | +- **安全省心**:本地全文搜索,自动保存(≤10 秒间隔) |
| 43 | + |
| 44 | +### 🃏 闪卡(Flashcards)— 记忆巩固 |
| 45 | + |
| 46 | +- **科学算法**:SM-2 间隔重复算法(Again / Hard / Good / Easy 四档评分) |
| 47 | +- **层级管理**:3 级嵌套牌组(科目 → 章节 → 知识点) |
| 48 | +- **学习统计**:复习数 / 新学数 / 正确率 / 遗忘曲线可视化 |
| 49 | +- **批量导入**:支持 CSV / JSON 格式快速导入 |
| 50 | + |
| 51 | +### 🧠 费曼学习法(Feynman Technique)— 深度理解 |
| 52 | + |
| 53 | +- **四步流程**:选概念 → 用自己的话解释 → 识别薄弱点 → 简化重述 |
| 54 | +- **薄弱点追踪**:自动标记与汇总薄弱知识点 |
| 55 | +- **理解度评估**:1–5 星自评体系,直观衡量掌握程度 |
| 56 | + |
| 57 | +### 🤖 AI 增强能力(联网可选开启) |
| 58 | + |
| 59 | +| 能力 | 说明 | |
| 60 | +|------|------| |
| 61 | +| 笔记智能摘要 | 一键生成课堂笔记摘要与续写润色 | |
| 62 | +| AI 自动生成闪卡 | 从笔记内容智能生成记忆卡片 | |
| 63 | +| 费曼学习评估 | AI 评估解释质量,给出改进建议 | |
| 64 | +| 智能时长推荐 | 根据学习数据推荐最佳番茄钟时长 | |
| 65 | + |
| 66 | +> 基于国产大模型:**通义千问(Qwen)** / **DeepSeek** / **智谱 GLM**,按需选择,灵活切换。 |
| 67 | +
|
| 68 | +--- |
| 69 | + |
| 70 | +## 🛠️ 技术栈 |
| 71 | + |
| 72 | +### 前端客户端 |
| 73 | + |
| 74 | +| 类别 | 技术 | 说明 | |
| 75 | +|------|------|------| |
| 76 | +| UI 框架 | React 18 + TypeScript | 类型安全的组件化开发 | |
| 77 | +| 构建工具 | Vite 8 | 极速 HMR 与构建 | |
| 78 | +| 桌面端 | Tauri 2.0 | 轻量级跨平台桌面应用(5–15 MB 安装包) | |
| 79 | +| 样式方案 | Tailwind CSS 3.4 | 原子化 CSS + Design Tokens | |
| 80 | +| 状态管理 | Zustand + TanStack Query | 本地状态 + 异步数据缓存 | |
| 81 | +| 本地存储 | Dexie.js (IndexedDB) | 本地优先数据存储 | |
| 82 | +| 富文本编辑器 | TipTap 3 (ProseMirror) | 智能笔记编辑器 | |
| 83 | +| 离线支持 | Workbox + Service Worker | PWA 离线可用 | |
| 84 | +| 路由 | React Router 7 | SPA 路由管理 | |
| 85 | +| 图标 | Lucide React | 线性风格图标库 | |
| 86 | +| 测试 | Vitest + Testing Library | 单元与组件测试 | |
| 87 | +| 代码检查 | Oxlint | 高性能 Rust Linter | |
| 88 | + |
| 89 | +### 后端服务 |
| 90 | + |
| 91 | +| 服务 | 技术 | 端口 | 说明 | |
| 92 | +|------|------|------|------| |
| 93 | +| 同步服务 | Go + Gin | `8080` | 数据同步 API(Push / Pull / Resolve) | |
| 94 | +| AI 网关 | Python + FastAPI + LangChain | `8000` | AI 增强服务网关 | |
| 95 | +| 数据库 | PostgreSQL 16 | `5432` | 主数据存储 | |
| 96 | +| 缓存 | Redis 7 | `6379` | 会话 / 缓存 / 限流 | |
| 97 | + |
| 98 | +### 基础设施 |
| 99 | + |
| 100 | +| 类别 | 技术 | |
24 | 101 | |------|------| |
25 | | -| 前端框架 | React 18 + TypeScript + Vite | |
26 | | -| 本地存储 | Dexie.js (IndexedDB) + localStorage | |
27 | | -| 离线缓存 | Service Worker (Workbox) | |
28 | | -| 富文本编辑器 | TipTap (ProseMirror) | |
29 | | -| 后端语言 | Go + Python | |
30 | | -| 数据库 | PostgreSQL 16 + Redis 7 | |
31 | | -| AI 框架 | FastAPI + LangChain | |
| 102 | +| 容器化 | Docker + docker-compose | |
| 103 | +| AI 模型 | 通义千问 (Qwen) / DeepSeek / 智谱 GLM | |
| 104 | +| 服务通信 | gRPC + Protobuf(规划中) | |
| 105 | + |
| 106 | +--- |
| 107 | + |
| 108 | + |
| 109 | +## 📁 项目结构 |
| 110 | + |
| 111 | +``` |
| 112 | +KeBan/ |
| 113 | +├── client/ # 🖥️ 前端客户端(React + Tauri) |
| 114 | +│ ├── src/ |
| 115 | +│ │ ├── features/ # 📦 业务功能模块 |
| 116 | +│ │ │ ├── dashboard/ # 仪表盘 & 学习概览 |
| 117 | +│ │ │ ├── pomodoro/ # 番茄钟模块 |
| 118 | +│ │ │ ├── notes/ # 智能笔记模块 |
| 119 | +│ │ │ ├── flashcards/ # 闪卡模块 |
| 120 | +│ │ │ └── feynman/ # 费曼学习法模块 |
| 121 | +│ │ ├── lib/ # 📚 核心库 |
| 122 | +│ │ │ ├── ai/ # AI 服务集成层 |
| 123 | +│ │ │ ├── auth/ # 认证模块 |
| 124 | +│ │ │ ├── http/ # HTTP 请求封装 |
| 125 | +│ │ │ ├── mode/ # 双模式管理(本地/AI) |
| 126 | +│ │ │ ├── storage/ # Dexie.js 本地存储层 |
| 127 | +│ │ │ ├── sync/ # 数据同步客户端 |
| 128 | +│ │ │ ├── sm2.ts # SM-2 间隔重复算法 |
| 129 | +│ │ │ └── utils/ # 通用工具函数 |
| 130 | +│ │ ├── components/ # 🧩 共享 UI 组件 |
| 131 | +│ │ ├── hooks/ # 🪝 自定义 React Hooks |
| 132 | +│ │ ├── pages/ # 📄 页面级组件 |
| 133 | +│ │ ├── routes/ # 🧭 路由配置 |
| 134 | +│ │ ├── store/ # 🗄️ Zustand 全局状态 |
| 135 | +│ │ ├── styles/ # 🎨 全局样式 & Design Tokens |
| 136 | +│ │ └── types/ # 📐 TypeScript 类型定义 |
| 137 | +│ ├── src-tauri/ # 🦀 Tauri Rust 后端 |
| 138 | +│ └── package.json |
| 139 | +├── server/ # ⚙️ 后端服务 |
| 140 | +│ ├── sync-service/ # Go 数据同步服务(:8080) |
| 141 | +│ ├── ai-gateway/ # Python AI 网关服务(:8000) |
| 142 | +│ ├── shared/proto/ # gRPC Protobuf 定义 |
| 143 | +│ └── docker-compose.yml # 容器编排配置 |
| 144 | +├── docs/ # 📖 项目文档(按阶段组织) |
| 145 | +│ ├── phase0/ # 项目立项与启动 |
| 146 | +│ ├── phase1/ # 需求分析 |
| 147 | +│ ├── phase2/ # 项目计划与技术预研 |
| 148 | +│ └── phase3/ # 系统设计 |
| 149 | +├── .env.example # 🔑 环境变量模板 |
| 150 | +└── README.md |
| 151 | +``` |
| 152 | + |
| 153 | +--- |
| 154 | + |
| 155 | +## 🏗️ 架构概览 |
| 156 | + |
| 157 | +课伴采用 **"本地优先 + AI 增强可选"** 双模式架构: |
| 158 | + |
| 159 | +``` |
| 160 | +┌──────────────────────────────────────────────────────┐ |
| 161 | +│ 课伴桌面端 (Tauri 2.0) │ |
| 162 | +│ ┌────────────────────────────────────────────────┐ │ |
| 163 | +│ │ React 前端 (Vite + TypeScript) │ │ |
| 164 | +│ │ │ │ |
| 165 | +│ │ 🍅 番茄钟 │ 📝 智能笔记 │ 🃏 闪卡 │ 🧠 费曼 │ │ |
| 166 | +│ │ │ │ |
| 167 | +│ │ ↕ ↕ │ │ |
| 168 | +│ │ Dexie.js (IndexedDB) TipTap (ProseMirror) │ │ |
| 169 | +│ └────────────────────┬───────────────────────────┘ │ |
| 170 | +└───────────────────────┼──────────────────────────────┘ |
| 171 | + │ 可选(联网时按需开启) |
| 172 | + ┌──────────┴──────────┐ |
| 173 | + │ │ |
| 174 | + ┌──────┴──────┐ ┌──────┴──────┐ |
| 175 | + │ Sync Service │ │ AI Gateway │ |
| 176 | + │ (Go/Gin) │ │ (FastAPI) │ |
| 177 | + │ ↕ │ │ ↕ │ |
| 178 | + │ PG + Redis │ │ Qwen / DS │ |
| 179 | + └──────────────┘ │ / GLM │ |
| 180 | + └─────────────┘ |
| 181 | +``` |
| 182 | + |
| 183 | +> **离线模式**:所有四大模块在纯本地环境完整运行,数据存储在 IndexedDB,零网络依赖。 |
| 184 | +> |
| 185 | +> **AI 增强模式**:联网时可选择开启 AI 能力(笔记摘要、闪卡生成、学习评估等),通过 AI Gateway 对接国产大模型。 |
| 186 | +
|
| 187 | +--- |
| 188 | + |
| 189 | +## 🗺️ 路线图 |
| 190 | + |
| 191 | +| 阶段 | 状态 | 核心交付 | |
| 192 | +|------|------|----------| |
| 193 | +| **MVP-1 Alpha** | ✅ 已完成 | 纯本地核心版 — 四大模块 + PWA 离线 + 本地存储 | |
| 194 | +| **MVP-2 Alpha** | 🔧 进行中 | AI 增强 + 云同步 + Tauri 桌面端 + 用户认证 | |
| 195 | +| **Beta 公测** | 📋 规划中 | 全功能集成,面向真实用户测试 | |
| 196 | +| **正式上线** | 🎯 规划中 | 生产就绪版 | |
| 197 | + |
| 198 | +### 🔮 未来方向 |
32 | 199 |
|
33 | | -## 项目结构 |
| 200 | +- **社交协作**:学习小组、闪卡共享、专注排行榜 |
| 201 | +- **跨端生态**:移动端 App、浏览器插件 |
| 202 | +- **AI 深度增强**:个性化学习路径、知识图谱、智能复习规划 |
| 203 | +- **开放平台**:插件系统、第三方模板市场 |
34 | 204 |
|
| 205 | +--- |
| 206 | + |
| 207 | +## 📖 项目文档 |
| 208 | + |
| 209 | +完整的开发文档存放在 [`docs/`](./docs/) 目录,按项目生命周期组织: |
| 210 | + |
| 211 | +| 阶段 | 目录 | 主要内容 | |
| 212 | +|------|------|----------| |
| 213 | +| Phase 0 | [`docs/phase0/`](./docs/phase0/) | 项目立项书、可行性评估、风险登记册、团队角色与沟通机制 | |
| 214 | +| Phase 1 | [`docs/phase1/`](./docs/phase1/) | PRD 需求文档、用户故事地图、业务流程图、竞品分析 | |
| 215 | +| Phase 2 | [`docs/phase2/`](./docs/phase2/) | WBS 工作量估算、SM-2 算法验证、技术预研报告、甘特图 | |
| 216 | +| Phase 3 | [`docs/phase3/`](./docs/phase3/) | 系统架构设计、技术选型 ADR、UI 设计规范、API 设计规范 | |
| 217 | + |
| 218 | +--- |
| 219 | + |
| 220 | +## 📦 版本与发布管理 |
| 221 | + |
| 222 | +### 语义化版本规范 |
| 223 | + |
| 224 | +项目遵循 **SemVer**(语义化版本)规范,格式为 `v{MAJOR}.{MINOR}.{PATCH}`: |
| 225 | + |
| 226 | +| 组成部分 | 含义 | 示例 | |
| 227 | +|----------|------|------| |
| 228 | +| `MAJOR` | 主版本号(不兼容的 API 变更) | `1.0.0` | |
| 229 | +| `MINOR` | 次版本号(向后兼容的功能新增) | `0.2.0` | |
| 230 | +| `PATCH` | 修订号(向后兼容的缺陷修复) | `0.2.1` | |
| 231 | + |
| 232 | +**当前版本**:`v0.2.0-alpha`(MVP-2 Alpha 阶段) |
| 233 | + |
| 234 | +### Git Tag 发布流程 |
| 235 | + |
| 236 | +```bash |
| 237 | +# 1. 确保在 master 分支并拉取最新代码 |
| 238 | +git checkout master |
| 239 | +git pull origin master |
| 240 | + |
| 241 | +# 2. 创建语义化版本标签 |
| 242 | +git tag v0.2.0 |
| 243 | + |
| 244 | +# 3. 推送标签到远程仓库 |
| 245 | +git push origin v0.2.0 |
35 | 246 | ``` |
36 | | -├── docs/ # 项目文档(按开发流程阶段组织) |
37 | | -│ ├── phase0/ # 阶段零:项目立项与启动 |
38 | | -│ ├── phase1/ # 阶段一:需求阶段 |
39 | | -│ ├── phase2/ # 阶段二:签约与项目计划 |
40 | | -│ ├── phase3/ # 阶段三:设计阶段 |
41 | | -│ └── templates/ # 文档模板 |
42 | | -├── client/ # 前端客户端代码 |
43 | | -├── server/ # 后端服务代码 |
44 | | -└── scripts/ # 脚本工具 |
| 247 | + |
| 248 | +> ⚠️ 发布 Tag 前请确保:所有测试通过(`npm run test`)、构建成功(`npm run build`)、关键功能手动验证完毕。 |
| 249 | +
|
| 250 | +### Tauri 安装包构建 |
| 251 | + |
| 252 | +桌面端安装包通过 Tauri CLI 构建: |
| 253 | + |
| 254 | +```bash |
| 255 | +cd client |
| 256 | +npm run build # 前端生产构建 |
| 257 | +npx tauri build # 生成 NSIS 安装包 |
45 | 258 | ``` |
46 | 259 |
|
47 | | -## 里程碑 |
| 260 | +- 产物路径:`client/src-tauri/target/release/bundle/nsis/` |
| 261 | +- 安装包格式:Windows NSIS(`.exe`),支持简体中文 / English |
| 262 | +- 安装模式:当前用户安装(`currentUser`),无需管理员权限 |
| 263 | + |
| 264 | +--- |
| 265 | + |
| 266 | +## 👥 团队协作 |
| 267 | + |
| 268 | +### 开发工作流 |
| 269 | + |
| 270 | +``` |
| 271 | +feature/* ──PR──▶ develop ──▶ master ──tag──▶ release |
| 272 | +``` |
| 273 | + |
| 274 | +| 分支 | 用途 | 保护规则 | |
| 275 | +|------|------|----------| |
| 276 | +| `master` | 稳定发布分支 | 仅接受 develop 合并,需 Tag 标记发布 | |
| 277 | +| `develop` | 日常开发集成分支 | 功能分支通过 PR 合入 | |
| 278 | +| `feature/*` | 功能开发分支 | 从 develop 检出,完成后 PR 回合 | |
| 279 | +| `fix/*` | 缺陷修复分支 | 紧急修复可直接 PR 到 master | |
| 280 | + |
| 281 | +### 提交规范 |
| 282 | + |
| 283 | +项目使用 **Conventional Commits** 规范: |
| 284 | + |
| 285 | +``` |
| 286 | +<type>(<scope>): <description> |
| 287 | +
|
| 288 | +# 示例 |
| 289 | +feat(notes): 添加康奈尔笔记模板 |
| 290 | +fix(pomodoro): 修复切换标签页后计时器暂停的问题 |
| 291 | +refactor(storage): 优化 Dexie.js 索引策略 |
| 292 | +docs(phase3): 补充 API 设计规范文档 |
| 293 | +``` |
| 294 | + |
| 295 | +常用类型:`feat` · `fix` · `refactor` · `docs` · `style` · `test` · `chore` · `perf` |
| 296 | + |
| 297 | +### 代码质量 |
| 298 | + |
| 299 | +| 工具 | 用途 | 命令 | |
| 300 | +|------|------|------| |
| 301 | +| Oxlint | 高性能 Rust Linter | `npm run lint` | |
| 302 | +| Vitest | 单元与组件测试 | `npm run test` | |
| 303 | +| TypeScript | 静态类型检查 | `npm run build`(含 `tsc -b`) | |
| 304 | + |
| 305 | +> 提交 PR 前请确保 `npm run lint` 和 `npm run test` 全部通过。 |
| 306 | +
|
| 307 | +--- |
48 | 308 |
|
49 | | -| 里程碑 | 时间节点 | 交付 | |
50 | | -|--------|---------|------| |
51 | | -| MVP-1 Alpha | 第 28 周 | 本地核心版(番茄钟+笔记+闪卡+费曼) | |
52 | | -| MVP-2 Alpha | 第 36 周 | AI 增强版(云同步+AI 功能) | |
53 | | -| Beta 公测 | 第 44 周 | 全功能集成版 | |
54 | | -| 正式上线 | 第 54 周 | 生产就绪版 | |
| 309 | +## 📄 许可证 |
55 | 310 |
|
56 | | -## 许可证 |
| 311 | +**Private — All Rights Reserved.** |
57 | 312 |
|
58 | | -Private - All rights reserved |
| 313 | +本项目为私有项目,所有权利保留。未经书面许可,不得复制、修改或分发本项目的任何部分。 |
0 commit comments