跳转至

🧠 艾宾浩斯复习系统 - Web 版

基于艾宾浩斯记忆曲线的网页版复习系统,支持电脑、手机、平板多端访问


📋 系统特点

✅ 核心功能

  • 智能复习提醒 - 按艾宾浩斯曲线自动安排复习时间
  • 多端适配 - 响应式设计,电脑/手机/平板完美适配
  • 实时同步 - 与现有 cron 系统共享数据
  • 快速添加 - 一键添加复习点
  • 进度追踪 - 实时查看复习进度和统计数据

🎨 界面特色

  • 简洁美观 - 现代化 UI 设计
  • 操作流畅 - 丝滑动画效果
  • 直观易懂 - 清晰的状态标识
  • 触摸友好 - 手机端优化体验

🚀 快速启动

方式 1:一键启动(推荐)

cd /home/admin/.openclaw/workspace/projects/ebbinghaus-web
./start.sh

方式 2:手动启动

1
2
3
cd /home/admin/.openclaw/workspace/projects/ebbinghaus-web
npm install  # 首次运行
npm start

访问地址

启动后访问: - 本地: http://localhost:3000 - 远程: http://服务器IP:3000


📱 多端访问

电脑端

直接访问 http://localhost:3000

手机端

  1. 确保手机和电脑在同一网络
  2. 访问 http://电脑IP:3000
  3. 可添加到主屏幕,像 APP 一样使用

外网访问

如需外网访问,可:

  1. 使用内网穿透(推荐)

    # 使用 ngrok
    ngrok http 3000
    

  2. 部署到 VPS

  3. 上传项目到服务器
  4. 使用 PM2 管理进程
  5. 配置 Nginx 反向代理

🎯 使用指南

添加复习点

  1. 点击右上角 ➕ 添加复习点
  2. 输入内容,选择类型
  3. 点击 添加

进行复习

  1. 在列表中点击 复习 按钮
  2. 根据掌握程度选择:
  3. 掌握了 - 下次复习延后
  4. 有点模糊 - 正常复习
  5. 忘记了 - 重新学习

筛选查看

  • 全部 - 显示所有复习点
  • 待复习 - 只显示到期的
  • 📊 项目 - 项目进度相关
  • 🔧 技术 - 技术知识相关
  • 💬 对话 - 对话内容相关

统计数据

顶部卡片显示: - 总复习点数量 - 待复习数量 - 今日完成数量 - 已完成周期数量


🔧 技术架构

前端

  • 框架: 原生 HTML + JavaScript
  • 样式: Tailwind CSS (CDN)
  • 特点: 无需构建,开箱即用

后端

  • 框架: Node.js + Express
  • API: RESTful
  • 数据: JSON 文件(与现有系统共享)

数据库

  • 格式: JSON 文件
  • 位置: /home/admin/.openclaw/workspace/memory/review-db.json
  • 优势: 与现有 cron 脚本无缝集成

📊 API 文档

获取复习点列表

GET /api/reviews?type=project&due=true

参数: - type - 类型筛选(project/tech/dialog) - due - 只看期(true/false) - status - 状态筛选(pending/completed)

添加复习点

1
2
3
4
5
6
7
POST /api/reviews
Content-Type: application/json

{
  "content": "复习内容",
  "type": "project"
}

完成复习

1
2
3
4
5
6
PUT /api/reviews/:id/complete
Content-Type: application/json

{
  "mastery": 80  // 掌握度 0-100
}

获取统计数据

GET /api/stats

批量添加

1
2
3
4
5
6
7
8
9
POST /api/reviews/batch
Content-Type: application/json

{
  "reviews": [
    {"content": "内容 1", "type": "tech"},
    {"content": "内容 2", "type": "project"}
  ]
}

🔄 与现有系统集成

数据共享

Web 版与现有的命令行系统共享同一个数据文件:

/home/admin/.openclaw/workspace/memory/review-db.json

这意味着:

  • ✅ Web 添加的复习点,cron 会自动提醒
  • ✅ cron 检查的复习状态,Web 实时显示
  • ✅ 两边操作完全同步

导入现有数据

系统启动时会自动加载现有的 50 个复习点,无需额外配置。


📦 部署方案

方案 1:本地运行(当前)

适合个人使用,快速启动。

./start.sh

方案 2:PM2 管理(推荐生产环境)

1
2
3
4
5
6
7
8
9
# 安装 PM2
npm install -g pm2

# 启动服务
pm2 start server.js --name ebbinghaus-web

# 开机自启
pm2 startup
pm2 save

方案 3:Docker 部署

1
2
3
4
5
6
7
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
docker build -t ebbinghaus-web .
docker run -p 3000:3000 ebbinghaus-web

方案 4:Nginx 反向代理

server {
    listen 80;
    server_name review.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

🎨 后续优化方向

短期(1-2 周)

  • 用户认证系统
  • 复习点分组管理
  • 导出/导入功能
  • 搜索功能
  • 深色模式

中期(1 个月)

  • 微信小程序版本
  • 语音输入复习点
  • 复习统计图表
  • 成就系统
  • 数据备份到云端

长期(3 个月+)

  • 原生 APP(iOS/Android)
  • 多人协作复习
  • AI 智能出题
  • 记忆曲线个性化调整
  • 学习小组功能

🐛 故障排查

端口被占用

1
2
3
4
5
6
7
8
9
# 查看占用端口的进程
lsof -i :3000

# 杀死进程
kill -9 <PID>

# 或修改端口
export PORT=3001
npm start

无法访问

  1. 检查防火墙:

    sudo ufw allow 3000
    

  2. 检查服务器是否运行:

    curl http://localhost:3000/api/stats
    

数据丢失

数据文件位置:

/home/admin/.openclaw/workspace/memory/review-db.json

定期备份此文件即可。


📞 技术支持

查看日志

# 服务器日志
tail -f /home/admin/.openclaw/workspace/logs/ebbinghaus-web.log

重启服务

1
2
3
4
5
6
# 停止
pkill -f "node server.js"

# 启动
cd /home/admin/.openclaw/workspace/projects/ebbinghaus-web
npm start

🎉 开始使用

  1. 启动服务:./start.sh
  2. 打开浏览器:http://localhost:3000
  3. 添加第一个复习点
  4. 开始高效学习!

版本: v1.0.0
创建时间: 2026-03-15
维护: OpenClaw 自动化系统