LearnAnything 是一个帮助用户管理和追踪学习计划的应用程序。用户可以创建个性化的学习计划,设置学习目标,追踪学习进度,并通过完成里程碑的方式来实现学习目标。
项目采用前后端分离的架构:
LearnAnything/
├── client/ # 前端应用 (React Native + Expo)
└── server/ # 后端服务 (Node.js + Express + MongoDB)
-
📱 用户认证
- 手机号+密码登录
- 手机号+验证码登录
- 用户注册
-
📚 学习计划管理
- 创建个性化学习计划
- 设置学习周期和目标
- 进度追踪
- 里程碑管理
-
🎯 进度追踪
- 实时更新学习进度
- 里程碑完成度标记
- 学习计划状态管理
- React Native
- Expo
- Redux (状态管理)
- React Navigation (路由导航)
- Node.js
- Express
- MongoDB
- JWT (身份认证)
- Winston (日志管理)
- Joi (数据验证)
- Node.js 14.0+
- MongoDB 4.0+
- Expo CLI
- iOS/Android 模拟器或真机设备
- 进入后端目录:
cd server
- 安装依赖:
npm install
- 配置环境变量:
cp .env.example .env
然后编辑 .env
文件,设置必要的环境变量。
- 启动服务:
# 开发模式
npm run dev
# 生产模式
npm start
- 进入前端目录:
cd client
- 安装依赖:
npm install
- 启动开发服务器:
npm start
- 在模拟器或真机上运行:
- 按
i
在 iOS 模拟器上运行 - 按
a
在 Android 模拟器上运行 - 使用 Expo Go 应用扫描二维码在真机上运行
- POST
/api/auth/register
- 用户注册 - POST
/api/auth/login
- 用户登录
- GET
/api/learning-plans
- 获取所有学习计划 - POST
/api/learning-plans
- 创建新学习计划 - PUT
/api/learning-plans/:id
- 更新学习计划 - DELETE
/api/learning-plans/:id
- 删除学习计划 - PATCH
/api/learning-plans/:id/progress
- 更新学习进度 - POST
/api/learning-plans/:id/milestones
- 添加里程碑 - PATCH
/api/learning-plans/:id/milestones/:milestoneId
- 更新里程碑状态
server/
├── src/
│ ├── config/ # 配置文件
│ ├── constants/ # 常量定义
│ ├── core/ # 核心类
│ ├── middleware/ # 中间件
│ ├── models/ # 数据模型
│ ├── routes/ # 路由定义
│ ├── services/ # 业务逻辑
│ ├── utils/ # 工具类
│ ├── validators/ # 数据验证
│ └── app.js # 应用入口
├── logs/ # 日志文件
└── .env # 环境变量
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交改动 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 创建 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情