【初中地生会考练习系统】一个类似驾考宝典的初中地理生物会考在线练习系统,支持题库管理、错题本、顺序练习、模拟考试等功能
初中地生会考练习系统
一个类似驾考宝典的初中地理生物会考在线练习系统,支持题库管理、错题本、顺序练习、模拟考试等功能。
项目地址
演示站点: 地生考试训练系统
项目地址:初中生地生考试训练系统
功能特点
- 题库管理:支持 JSON 格式批量导入,支持单选、多选、判断题
- 章节练习:可按科目、题型、章节筛选练习
- 错题本:自动收集错题,支持错题练习和标记已掌握
- 模拟考试:支持地理/生物/综合考试,自动计时和评分
- 多用户系统:每个用户独立的答题记录和错题本
- 免费试用:新用户赠送 10 次免费答题
- VIP 会员:支付 10 元开通当日无限次刷题
技术栈
- 框架: Next.js 16 (App Router)
- UI: shadcn/ui + Tailwind CSS 4
- 数据库: Supabase (PostgreSQL)
- 支付: ZhuPay 个人免签支付
- 语言: TypeScript 5
本地开发
1. 克隆项目
gitclone<项目地址>cdprojects2. 安装依赖
pnpminstall3. 配置环境变量
复制.env.example为.env.local并填入配置:
cp.env.example .env.local编辑.env.local:
# Supabase 数据库(必填) COZE_SUPABASE_URL=https://your-project.supabase.co COZE_SUPABASE_ANON_KEY=your-anon-key # 管理员密码(可选,默认 admin123) ADMIN_PASSWORD=your-secure-password4. 初始化数据库
在 Supabase SQL Editor 中执行以下 SQL:
-- ============ 题库相关表 ============-- 题库表CREATETABLEIFNOTEXISTSquestions(idSERIALPRIMARYKEY,subjectVARCHAR(20)NOTNULL,chapterVARCHAR(100)NOTNULL,question_typeVARCHAR(20)NOTNULL,contentTEXTNOTNULL,options JSONB,answerVARCHAR(100)NOTNULL,explanationTEXT,difficultyINTEGERDEFAULT1NOTNULL,image_urlVARCHAR(500),created_atTIMESTAMPWITHTIMEZONEDEFAULTNOW()NOTNULL);-- 答题记录表CREATETABLEIFNOTEXISTSanswer_records(idSERIALPRIMARYKEY,question_idINTEGERNOTNULLREFERENCESquestions(id)ONDELETECASCADE,user_answerVARCHAR(100)NOTNULL,is_correctBOOLEANNOTNULL,answered_atTIMESTAMPWITHTIMEZONEDEFAULTNOW()NOTNULL,user_idINTEGERREFERENCESusers(id)ONDELETECASCADE);