一个基于Flask和HTML/CSS/JavaScript开发的闪卡学习应用,支持用户创建、管理和学习闪卡,提供学习统计和进度追踪功能。
- 📱 响应式设计:适配桌面和移动端设备
- 👤 用户认证:支持注册、登录和JWT认证
- 📁 分类管理:创建、编辑、删除闪卡分类
- 📝 闪卡管理:创建、编辑、删除闪卡,支持搜索和筛选
- 📚 学习模式:翻转卡片学习,记录学习结果
- 📊 学习统计:查看学习进度和统计数据
- ⚙️ 用户设置:自定义学习目标和模式
- Python 3.6+:主要开发语言
- Flask:Web框架
- Flask-JWT-Extended:JWT认证
- SQLite:轻量级数据库
- Flask-CORS:跨域资源共享
- HTML5:页面结构
- CSS3:样式设计
- Tailwind CSS:CSS框架
- JavaScript (ES6+):交互逻辑
- Font Awesome:图标库
- Chart.js:数据可视化
.
├── backend/ # 后端代码
│ ├── data/ # 数据目录
│ │ └── database.db # SQLite数据库文件
│ ├── __pycache__/ # Python编译缓存
│ ├── app.py # 应用入口
│ ├── auth.py # 认证相关路由
│ ├── config.py # 配置文件
│ ├── models.py # 数据模型
│ ├── requirements.txt # 依赖列表
│ ├── routes.py # API路由
│ ├── start.sh # 启动脚本
│ └── utils.py # 工具函数
├── frontend/ # 前端代码
│ ├── lib/ # 外部库文件
│ ├── app.js # 前端主逻辑
│ ├── index.htm # 主页面
│ └── style.css # 样式文件
├── .gitignore # Git忽略文件
└── README.md # 项目说明
-
安装依赖
cd backend pip install -r requirements.txt -
配置环境变量
cp .env.example .env # 编辑.env文件,设置所需环境变量 -
启动应用
# 使用Python直接运行 python app.py # 或使用启动脚本 chmod +x start.sh ./start.sh
- 直接打开
# 使用浏览器直接打开 open frontend/index.htm # 或使用本地HTTP服务器 python -m http.server 3000 # 访问 http://localhost:3000/frontend/index.htm
POST /api/auth/register- 用户注册POST /api/auth/login- 用户登录GET /api/auth/profile- 获取用户信息POST /api/auth/refresh- 刷新令牌
GET /api/categories- 获取分类列表POST /api/categories- 创建分类GET /api/categories/<id>- 获取单个分类PUT /api/categories/<id>- 更新分类DELETE /api/categories/<id>- 删除分类
GET /api/flashcards- 获取闪卡列表POST /api/flashcards- 创建闪卡GET /api/flashcards/<id>- 获取单个闪卡PUT /api/flashcards/<id>- 更新闪卡DELETE /api/flashcards/<id>- 删除闪卡
GET /api/study/next-cards- 获取下一组学习卡片POST /api/study/submit- 提交学习结果
GET /api/statistics/overview- 获取统计概览
GET /health- 健康检查端点
- 注册/登录:首先创建账号或登录
- 创建分类:在"分类"页面创建闪卡分类
- 添加闪卡:在"闪卡"页面添加闪卡到分类
- 开始学习:在"学习"页面选择分类开始学习
- 查看统计:在"统计"页面查看学习进度和统计数据
- 自定义设置:在"设置"页面调整学习设置
- User:用户信息
- Category:闪卡分类
- Flashcard:闪卡信息
- StudyRecord:学习记录
-
使用Gunicorn:生产环境建议使用Gunicorn作为WSGI服务器
gunicorn app:app -b 0.0.0.0:9000
-
使用Nginx:配置Nginx作为反向代理
-
使用Docker:容器化部署
- Fork项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开Pull Request
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情
- 项目地址:https://github.com/GoofySatoshi/flash-card.git
- 作者:GoofySatoshi
- 邮箱:3033562734@qq.com
- 初始版本
- 实现了基本的闪卡学习功能
- 支持分类管理和闪卡管理
- 提供学习统计功能
- 响应式设计,适配移动端
闪卡学习应用 - 让学习更高效,记忆更轻松! 🚀