Skip to content

Latest commit

 

History

History
109 lines (80 loc) · 3.59 KB

File metadata and controls

109 lines (80 loc) · 3.59 KB

🧠 English Brain

面向中国学生的英语单词记忆与四六级备考应用。从零基础"启动营"到 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 模式)

🚀 快速开始

1. 安装依赖

npm install

2. 启动数据库(Docker)

docker compose up -d

数据库初始化脚本位于 supabase/init/,容器首次启动时会自动建表。

3. 配置环境变量

复制 .env.example.env.local 并按需填写:

cp .env.example .env.local
DATABASE_URL=postgresql://postgres:postgres@localhost:54322/english_brain
# AI API(仅词库生成脚本需要)
OPENAI_API_KEY=...
OPENAI_BASE_URL=...
OPENAI_MODEL=...

4. 填充词库数据

npx tsx scripts/seed-words.ts        # 基础词库
npx tsx scripts/seed-bootcamp.ts     # 启动营天数/计划

5. 启动开发服务器

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)管理,仓库中不包含任何真实密钥。