# card-box
**Repository Path**: ldodo/card-box
## Basic Information
- **Project Name**: card-box
- **Description**: 一款简单易用的卡盒学习小程序,通过正反面卡片帮助你随时随地记录、复习任何内容~
- **Primary Language**: TypeScript
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 9
- **Created**: 2025-03-29
- **Last Updated**: 2025-03-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
学习卡盒
## 📝 项目介绍
学习卡盒是一个类似于 anki 的卡片式学习小程序,每个用户可以创建多个卡盒,每个卡盒中可以放很多张卡片,每张卡片分为正反两面:
- 正面可以用来记录 **“问题 \ 概念 \ 中英文”**
- 反面可以用来记录 **“答案 \ 概念解析 \ 中英文的翻译”**
### ✨ 核心功能
#### 📁 目录管理
- **多目录支持**:每个用户拥有默认目录,可创建多个目录分类管理卡盒
#### 📦 卡盒管理
- **AI 生成卡盒**:通过描述需求让 AI 自动卡片,支持预览和自定义上下文
- **创建空白卡盒**:手动创建并添加卡片
- **导出/导入卡盒**:以固定格式导出卡盒内容为文本,或从文本导入卡片
- **卡盒封面颜色**:自定义卡盒外观颜色
- **卡盒排序**:调整卡盒在目录中的显示顺序
- **移动目录**:将卡盒移动到其他目录
- **正反面交换**:一键交换卡盒中所有卡片的正反面内容和笔记
#### 📝 卡片管理
- **AI 生成卡片**:通过 AI 生成卡片并添加到指定卡盒
- **批量删除**:支持多选删除卡片
- **卡片排序**:调整卡片在卡盒中的顺序
- **卡片关联**:建立卡片之间的关联关系,支持查看和跳转
- **卡片笔记**:为卡片添加额外笔记,支持 AI 生成笔记
- **朗读功能**:支持中英文朗读卡片内容
- **翻面模式**:在卡盒中快速翻面查看内容,适合背单词场景
- **样式设置**:自定义卡片排版(居左/居中)、文字大小、序号显示等
#### 🔍 搜索功能
- **全局搜索**:通过关键字搜索所有目录中的卡片内容
- **快速定位**:点击搜索结果直接跳转到对应卡盒和卡片位置
#### 👤 用户相关功能
- **学习统计**:记录学习时间并生成热力图,直观展示学习进度
- **AI 额度管理**:查看 AI 功能的剩余使用额度
#### 📚 学习相关功能
- **回忆模式**:展示卡片正面,用户自行判断是否记住反面内容
- **单选模式**:AI 生成混淆选项,用户选择正确答案,错误时提供解析
- **复述模式**:支持文字或语音输入回答,AI 评分判断正误
- **学习计划**:基于艾宾浩斯记忆曲线,科学安排每日学习和复习内容
- **练一练模式**:无需制定计划,随时选择学习模式进行练习
#### 🏪 卡盒集市
- **卡盒列表**:系统提供各类现成卡盒(英语短文、单词、考试知识点等)
- **分类浏览**:按类别查看和导入卡盒
## 🛠️ 技术栈
- **前端框架**:[Vue 3](https://v3.vuejs.org/) + [TypeScript](https://www.typescriptlang.org/)
- **跨端框架**:[uni-app](https://uniapp.dcloud.io/)
- **构建工具**:[Vite 5](https://vitejs.dev/)
- **CSS 框架**:[UnoCSS](https://github.com/unocss/unocss)
- **UI 组件**:[wot-design-uni](https://github.com/Moonofweisheng/wot-desig-uni)
- **后端服务**:微信云开发(数据库、云函数)
## 🚀 快速开始
### 安装依赖
```bash
pnpm i
```
### 开发模式
```bash
pnpm dev:mp-weixin
```
然后打开微信开发者工具,导入本地文件夹,选择本项目的 `dist/dev/mp-weixin` 文件夹
### 构建发布
```bash
pnpm build:mp-weixin
```
打包后的文件在 `dist/build/mp-weixin`,通过微信开发者工具导入并上传
## ☁️ 云开发配置
在使用本项目前,需要先配置微信云开发环境:
1. 在微信开发者工具中开通云开发,创建云环境
2. 在 `env` 目录下创建或修改 `.env.local`,添加以下配置:
```bash
# 云开发环境 ID
VITE_CLOUD_ENV_ID='xxx'
# 版本号
VITE_APP_VERSION='1.0.0'
# 微信同声传译插件 ID,用于朗读卡片内容
VITE_WECHAT_SI_ID = 'xxx'
```
3. 在云开发控制台中创建以下数据集合(数据库):
- `users` - 用户信息
- `config` - 系统配置
- `market` - 卡盒集市数据
- `market-classification` - 卡盒集市分类
- `monthly-study` - 月度学习统计
4. 在 `config` 集合中添加以下初始配置数据:
```json
{
"id": "xxx", // 由系统生成
"limit": { "default": "30", "max": "200", "pro": "100" }, // AI 功能限制
"model": "microsoft/phi-4", // AI 功能模型名称,可以在 openrouter 中查看
"reviewVersion": "xxxx" // 限制 AI 功能的版本号,如果系统版本和该版本一致,则无法使用 AI 功能
}
```
> 注意:请确保云函数的权限配置正确,以便应用能够正常访问云资源。
5. 在云开发控制台中,为云函数添加以下环境变量:
- `KEY` - OpenRouter 平台的 API Key,用于访问 AI 模型服务
> 提示:你可以在 [OpenRouter](https://openrouter.ai/) 平台注册账号并获取 API Key
## 📄 开源协议
[Apache License, Version 2.0](https://opensource.org/license/apache-2-0)