WordPecker App: 开发者指南
1. 项目介绍
WordPecker App 是一个个性化的语言学习应用,它结合了 Duolingo 风格的课程与用户自定义的词汇表。用户可以无缝地将单词从书籍、文章或视频中添加进来,并通过交互式测验和 LLM 生成的课程复习这些单词。
2. 项目快速启动
环境准备
- Node.js (版本 >= 16)
- npm 或 yarn
- Supabase 账户
- OpenAI API 密钥
克隆仓库
git clone https://github.com/baturyilmaz/wordpecker-app.git
cd wordpecker-app
安装依赖
# 安装后端依赖
cd backend
npm install
# 安装前端依赖
cd frontend
npm install
初始化数据库
在 Supabase 的 SQL 编辑器中运行以下代码:
-- 创建单词列表表
CREATE TABLE word_lists (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
name TEXT NOT NULL,
description TEXT,
context TEXT,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT name_length CHECK (char_length(name) > 0),
FOREIGN KEY (user_id) REFERENCES auth.users(id)
);
-- 创建单词表
CREATE TABLE words (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
list_id UUID NOT NULL,
value TEXT NOT NULL,
meaning TEXT,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT word_length CHECK (char_length(value) > 0),
FOREIGN KEY (list_id) REFERENCES word_lists(id)
);
-- 创建会话表
CREATE TABLE sessions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
list_id UUID NOT NULL,
type TEXT NOT NULL,
score INTEGER,
current_exercise_index INTEGER,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
completed_at TIMESTAMPTZ,
CONSTRAINT valid_type CHECK (type IN ('learn', 'quiz')),
FOREIGN KEY (list_id) REFERENCES word_lists(id)
);
配置环境变量
创建 .env
文件,并填写以下内容:
后端 .env
PORT=3000
OPENAI_BASE_URL=https://api.openai.com
OPENAI_API_KEY=your_openai_api_key
SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_KEY=your_supabase_service_key
前端 .env
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_API_URL=http://localhost:3000
启动项目
# 启动后端
cd backend
npm run dev
# 启动前端
cd frontend
npm run dev
3. 应用案例和最佳实践
- 案例 1: 学习者正在阅读一本英文书籍,遇到不熟悉的单词时,可以直接在 WordPecker App 中创建一个单词列表,添加单词并获取自动定义,然后通过课程或测验进行学习。
- 最佳实践: 定期复习单词列表,结合上下文记忆,可以显著提高单词记忆的持久性。
4. 典型生态项目
WordPecker App 可以与电子书阅读器、浏览器扩展或笔记应用集成,使用户能够在不离开当前平台的情况下添加新单词。此外,开发者社区可以贡献新的练习类型、改进的界面设计和更多的个性化学习功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考