面向中国学生的英语单词记忆与四六级备考应用。从零基础"启动营"到 CET4/6 词汇闯关,用「八关测试」+ 间隔重复算法帮助用户高效记忆并对抗遗忘。
基于 Next.js 16 (App Router) + TypeScript + PostgreSQL 构建。
- 零基础启动营:15 天循序渐进的入门训练营,覆盖核心词汇、关键句型与语法点
- CET4 / CET6 词汇闯关:按天数解锁词库,逐级进阶
- 八关测试 (Eight Gates):从认读、拼写到语境运用,多维度检验单词掌握程度
- 多种学习模式:单词卡 (word-card)、盲扫 (blind-scan)、滑动速记 (swipe)
- 间隔重复算法:基于遗忘曲线安排复习,自动标记"危险词"与"虚假掌握"
- 学习进度看板:连续打卡、累计学习时长、掌握率、薄弱维度可视化
- Cookie Session 认证:本地开发用 SHA-256 + session 表,生产可切换 Supabase
| 登录 | 今日学习(启动营) |
|---|---|
![]() |
![]() |
| 学习总览 | 学习进度 |
|---|---|
![]() |
![]() |
- 框架:Next.js 16.2 (App Router, Turbopack)、React 19
- 语言:TypeScript 5
- 样式:Tailwind CSS 4
- 动画:Framer Motion
- 状态管理:Zustand
- 数据库:PostgreSQL 15(本地 Docker;生产可接 Supabase)
- 数据访问:
pg驱动(simple query 模式)
npm installdocker compose up -d数据库初始化脚本位于 supabase/init/,容器首次启动时会自动建表。
复制 .env.example 为 .env.local 并按需填写:
cp .env.example .env.localDATABASE_URL=postgresql://postgres:postgres@localhost:54322/english_brain
# AI API(仅词库生成脚本需要)
OPENAI_API_KEY=...
OPENAI_BASE_URL=...
OPENAI_MODEL=...
npx tsx scripts/seed-words.ts # 基础词库
npx tsx scripts/seed-bootcamp.ts # 启动营天数/计划npm run dev打开 http://localhost:3000 即可访问。
src/
├── app/ # Next.js App Router 页面与 API
│ ├── api/ # 后端接口(auth / words / exercises / user)
│ ├── auth/ # 登录、注册
│ ├── onboarding/ # 水平选择引导
│ ├── today/ # 今日学习(启动营 / 日常)
│ ├── learn/ # 学习模式:word-card / blind-scan / swipe
│ ├── test/ # 八关测试
│ ├── dashboard/ # 学习总览
│ ├── progress/ # 进度日历与统计
│ └── weak-words/ # 薄弱词复习
├── components/ # 复用组件(GateTest、ProgressCalendar 等)
├── lib/ # 数据库、认证、间隔重复算法
├── stores/ # Zustand 状态
└── types/ # TypeScript 类型定义
scripts/ # 词库 / 启动营数据填充脚本
supabase/ # 数据库初始化与迁移 SQL
本仓库为个人学习项目,数据库连接、AI API 等敏感配置均通过 .env.local(已 gitignore)管理,仓库中不包含任何真实密钥。



