一款基于艾宾浩斯记忆法的智能卡片学习应用,帮助用户高效记忆知识。
- 卡片组管理 - 创建、编辑、删除卡片组,支持导入分享的卡片组
- 卡片学习 - 基于艾宾浩斯遗忘曲线的智能复习系统
- 翻转卡片 - 点击翻转查看答案,模拟真实记忆卡片体验
- 记忆评级 - 根据记忆程度选择:忘记了、模糊、记对啦
- 签到系统 - 每日签到获得积分
- 连续签到 - 记录连续学习天数
- 学习日历 - GitHub 风格的学习活动热力图(近12个月)
- 积分系统 - 学习获得积分奖励
- 深色/浅色模式 - 支持日间和夜间学习
- 四种主题风格 - 海洋蓝、莫兰迪、活力橙、极简白
- 公共卡片组 - 浏览和搜索社区分享的卡片组
- 卡片组分享 - 将自己的卡片组设为公开或生成邀请码分享
- 导入功能 - 通过邀请码或公开ID导入卡片组
展示用户待复习的卡片组和快速入口,帮助用户快速开始学习。
复习模式下显示问题,点击翻转卡片查看答案,然后根据记忆程度选择评级。支持进度条显示当前复习进度。
展示用户创建和导入的所有卡片组,支持新建卡片组、通过邀请码导入、删除卡片组等操作。
包含用户信息、签到统计(连续签到天数、累计积分)、GitHub 风格学习活动热力图(近12个月)、外观设置等功能。
浏览和搜索社区分享的卡片组,支持导入公开的卡片组。
将卡片组设为公开或生成邀请码分享给其他用户。
支持四种精心设计的主题风格:
| 海洋蓝 | 活力橙 | 深色模式 | 极简白 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
支持桌面、平板、手机等多种设备自适应显示。
| 桌面设备 | 平板设备 | 手机设备 |
|---|---|---|
| 首页展示 | 平板适配 | 手机适配 |
![]() |
![]() |
![]() |
- 框架: React 18 + TypeScript
- 构建工具: Vite
- 样式: Tailwind CSS 3
- 路由: React Router DOM
- 图标: Lucide React
- 框架: Node.js + Express + TypeScript
- 数据库: SQLite + Prisma ORM
- 认证: JWT
- 邮件服务: Nodemailer
- Node.js >= 20.x
- npm >= 10.x
- 克隆仓库
git clone https://github.com/lwt2024/memo.git
cd memo- 安装依赖
# 安装前端依赖
cd client
npm install
# 安装后端依赖
cd ../server
npm install- 配置数据库
后端使用 SQLite,数据库文件已包含在项目中,无需额外配置。
- 运行项目
# 启动后端服务 (端口 3001)
cd server
npm run dev
# 在新终端启动前端服务 (端口 5173)
cd client
npm run dev- 访问应用
打开浏览器访问 http://localhost:5173
项目已包含模拟数据,可使用以下账号登录:
- 用户名:
demo_user - 密码:
123456
memory-cards/
├── client/ # 前端代码
│ ├── src/
│ │ ├── components/ # 公共组件
│ │ ├── context/ # React Context
│ │ ├── pages/ # 页面组件
│ │ ├── services/ # API 服务
│ │ └── types/ # TypeScript 类型定义
│ ├── index.html
│ ├── package.json
│ ├── vite.config.ts
│ └── tailwind.config.js
├── server/ # 后端代码
│ ├── src/
│ │ ├── controllers/ # 控制器
│ │ ├── services/ # 业务逻辑
│ │ ├── routes/ # 路由
│ │ ├── middlewares/ # 中间件
│ │ └── index.ts # 入口文件
│ ├── prisma/ # Prisma 配置
│ ├── .env # 环境变量
│ └── package.json
├── .gitignore
└── README.md
基于艾宾浩斯遗忘曲线,根据用户的记忆评级自动计算下次复习时间:
- 忘记了: 1天后复习
- 模糊: 3天后复习
- 记对啦: 7天后复习
采用 GitHub 风格的热力图展示,支持:
- 近12个月的学习数据展示
- 根据学习强度显示不同颜色
- Hover 显示详细学习信息
支持四种精心设计的主题风格:
- 🌊 海洋蓝 - 清新护眼,适合长时间学习
- 🎨 莫兰迪 - 低饱和柔和色调,耐看舒适
- 🔥 活力橙 - 热情活力,激发学习动力
- ⬜ 极简白 - 简洁纯净,专注内容
使用 Tailwind CSS 实现完美的响应式设计:
- 桌面端:侧边栏导航 + 宽屏布局
- 平板端:优化间距和字体大小
- 移动端:底部导航栏 + 紧凑布局
- 在
server/src/controllers/添加新控制器 - 在
server/src/services/添加业务逻辑 - 在
server/src/routes/注册路由 - 在
client/src/services/api.ts添加 API 调用 - 在
client/src/pages/或client/src/components/添加组件
# 前端构建
cd client
npm run build
# 后端构建
cd server
npm run buildMIT License
欢迎提交 Issue 和 Pull Request!
使用提示: 建议每天定时复习卡片,坚持连续签到获得更好的学习效果!














