🎮 个人实验项目 | 持续开发中 | 欢迎体验
基于 AI 的主动学习平台,通过 输入内容 → 生成问答 → 自我测试 → AI 评估 → 记忆巩固 的闭环流程
帮助用户高效掌握知识
⚠️ 项目状态: 这是一个个人实验项目,目前仍在开发中,部分功能可能不完善。欢迎试用和提出建议! 😊
- ✅ 智能问答生成: 利用 AI 自动从文章中提取关键知识点并生成问答对
- ✅ AI 实时评估: 智能评估用户答案并提供个性化改进建议
- ✅ 多格式支持: 支持文本粘贴、TXT、PDF、DOCX 文件上传
- ✅ URL 导入: 支持从网页链接直接导入文章内容
- ✅ 多 AI 提供商: 支持 OpenAI 和 DeepSeek,可灵活切换
- ✅ 进度追踪: 可视化学习进度和统计数据
- ✅ 间隔重复: 基于遗忘曲线的智能复习提醒
- 框架: Next.js 15 + React 18 + TypeScript
- UI 组件: Tailwind CSS + shadcn/ui
- 状态管理: React Context + Hooks
- 图标: Lucide React
- API: Next.js API Routes
- 数据库: PostgreSQL (Supabase)
- 认证: Supabase Auth
- 文件存储: Supabase Storage
- 模型: OpenAI GPT-4o-mini / DeepSeek Chat (可配置)
- 文件解析: pdf-parse, mammoth
- 网页抓取: cheerio
git clone <repository-url>
cd QuesMindnpm install复制 .env.example 为 .env.local 并填写以下配置:
# Supabase 配置
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# AI 配置
# 选择 AI 提供商: openai 或 deepseek
AI_PROVIDER=openai
# OpenAI 配置
OPENAI_API_KEY=your_openai_api_key
# DeepSeek 配置 (可选)
DEEPSEEK_API_KEY=your_deepseek_api_key
# 应用配置
NEXT_PUBLIC_APP_URL=http://localhost:3000使用 OpenAI:
- 访问 OpenAI Platform
- 创建 API Key
- 设置
AI_PROVIDER=openai和OPENAI_API_KEY
使用 DeepSeek (推荐,性价比高):
- 访问 DeepSeek 平台
- 创建 API Key
- 设置
AI_PROVIDER=deepseek和DEEPSEEK_API_KEY
详细配置指南: AI_PROVIDERS.md | DeepSeek 快速开始
在 Supabase 控制台中执行以下 SQL 脚本:
- 执行
database/schema.sql创建数据表 - 执行
database/rls_policies.sql配置行级安全策略
npm run dev访问 http://localhost:3000 查看应用。
QuesMind/
├── app/ # Next.js App Router
│ ├── (dashboard)/ # Dashboard 路由组
│ │ ├── dashboard/ # 概览页面
│ │ ├── articles/ # 文章管理
│ │ ├── cards/ # 问答卡片
│ │ └── progress/ # 学习统计
│ ├── auth/ # 认证页面
│ ├── api/ # API 路由
│ ├── layout.tsx # 根布局
│ └── globals.css # 全局样式
├── components/ # React 组件
│ └── ui/ # UI 基础组件
├── contexts/ # React Context
│ └── AuthContext.tsx # 认证上下文
├── lib/ # 工具库
│ ├── supabase/ # Supabase 客户端
│ ├── openai/ # OpenAI 服务
│ ├── services/ # 业务服务
│ └── utils.ts # 工具函数
├── types/ # TypeScript 类型定义
├── database/ # 数据库脚本
│ ├── schema.sql # 表结构
│ └── rls_policies.sql # RLS 策略
└── public/ # 静态资源
- 创建文章(粘贴文本或上传文件)
- 自动提取文本内容
- 文章列表查看和管理
- AI 自动从文章生成问答对
- 根据文章长度智能调整问答数量
- 多样化问题类型(事实、概念、应用)
- 卡片式问答界面
- 实时 AI 评分(0-100分)
- 个性化反馈和改进建议
- 整体学习进度统计
- 卡片状态管理(未答题/复习中/已掌握)
- 学习曲线可视化
user_profiles: 用户配置表articles: 文章表qa_pairs: 问答对表answer_attempts: 答题记录表card_status: 卡片状态表
详细设计请参考 database/schema.sql
- 项目初始化和基础配置
- 数据库设计和 RLS 策略
- 用户认证系统
- 文章上传和管理
- AI 问答生成服务
- 问答卡片 UI
- AI 答案评估
- Dashboard 页面
- 文件上传 API 实现
- 文章详情页面
- 卡片复习页面
- 学习统计图表
- 间隔重复算法
- 移动端优化
- 多人协作功能
- 知识图谱
创建新文章并生成问答对
请求体:
{
"title": "文章标题",
"content": "文章内容"
}响应:
{
"articleId": "uuid",
"qaCount": 10,
"message": "文章创建成功"
}获取文章列表
查询参数:
page: 页码(默认 1)limit: 每页数量(默认 10)
欢迎贡献代码! 请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
MIT License
如有问题或建议,请提交 Issue。
QuesMind - 让学习更高效! 🎓
Made with ❤️ by QuesMind Team
