Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

智能复习系统

一个基于 Flask 的错题复习系统,包含网页端、后端 API 和 Android 原生 App。系统支持用户登录、错题本管理、错题详情、复习记录、图片上传,以及基于遗忘概率的今日推荐复习。

功能概览

  • 用户注册、登录、登出
  • 错题本创建与查看
  • 错题新增、详情查看、图片上传
  • 复习反馈记录
  • 根据遗忘概率生成今日推荐复习列表
  • /api 接口供移动端或其他客户端调用

技术栈

  • Flask
  • SQLite
  • Jinja2
  • Werkzeug Security
  • scikit-learn
  • Android 原生 API 客户端

项目结构

.
├─ app.py                         # 根目录兼容入口,Render 暂时继续使用 gunicorn app:app
├─ requirements.txt
├─ README.md
├─ backend/
│  ├─ __init__.py
│  ├─ app.py                      # 真正的 Flask app
│  ├─ config.py                   # 路径、数据库、上传目录等配置
│  ├─ routes/
│  │  ├─ __init__.py
│  │  └─ api_routes.py            # /api 接口
│  ├─ services/                   # 业务逻辑、数据库访问、推荐算法
│  ├─ models/                     # 数据结构和 memory_model.pkl
│  ├─ data/
│  │  └─ mistakes.db              # 默认 SQLite 数据库
│  └─ scripts/
│     └─ train_memory_model.py
├─ web/
│  ├─ __init__.py
│  ├─ routes/                     # 网页端路由
│  ├─ templates/                  # Jinja2 模板
│  └─ static/                     # CSS、上传图片等静态资源
└─ android-app/                   # Android 原生 API App

本地运行网页端

1. 进入项目目录

cd "C:\Users\xiaoye\Desktop\notebook"

2. 激活虚拟环境

.\venv\Scripts\Activate.ps1

3. 安装依赖

python -m pip install -r requirements.txt

4. 启动项目

python app.py

启动后访问:

http://127.0.0.1:5000

如果需要指定端口:

$env:PORT = "5017"
python app.py

数据库和上传目录

默认数据库路径:

backend/data/mistakes.db

可以通过环境变量覆盖数据库路径:

$env:MISTAKES_DB_PATH = "C:\path\to\mistakes.db"
python app.py

网页和 API 上传的图片默认保存到:

web/static/uploads

Render 部署

Render 暂时保持原启动方式:

gunicorn app:app

根目录 app.py 是兼容入口,会导入 backend.app 中真正的 Flask app。

建议在 Render 设置环境变量:

  • SECRET_KEY
  • MISTAKES_DB_PATH,如果使用持久化磁盘保存 SQLite 数据库

如果继续使用 SQLite 和上传图片,生产环境建议配置 Render Persistent Disk,避免重新部署后数据库或上传文件丢失。

Android App

android-app/ 是 Android 原生 API 客户端,启动后直接调用已部署的 Render 后端 API。

当前 API 登录态使用 Flask session cookie,App 会保存并携带 cookie。默认 API 地址在 android-app/app/build.gradle 的 BuildConfig.API_BASE_URL 中配置。

核心页面

  • /:首页,展示今日推荐复习
  • /login:登录
  • /register:注册
  • /notebooks:错题本列表
  • /notebooks/<notebook_id>/mistakes:错题列表
  • /mistakes/<mistake_id>:错题详情

常用 API

  • POST /api/register
  • POST /api/login
  • POST /api/logout
  • GET /api/me
  • GET /api/notebooks
  • POST /api/notebooks
  • GET /api/notebooks/<notebook_id>/mistakes
  • POST /api/notebooks/<notebook_id>/mistakes
  • GET /api/mistakes/<mistake_id>
  • POST /api/mistakes/<mistake_id>/image
  • GET /api/review/recommendations

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages