Skip to content

bigkrys/LearnAnything

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

LearnAnything - 学习计划管理应用

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 模拟器或真机设备

后端服务启动

  1. 进入后端目录:
cd server
  1. 安装依赖:
npm install
  1. 配置环境变量:
cp .env.example .env

然后编辑 .env 文件,设置必要的环境变量。

  1. 启动服务:
# 开发模式
npm run dev

# 生产模式
npm start

前端应用启动

  1. 进入前端目录:
cd client
  1. 安装依赖:
npm install
  1. 启动开发服务器:
npm start
  1. 在模拟器或真机上运行:
  • i 在 iOS 模拟器上运行
  • a 在 Android 模拟器上运行
  • 使用 Expo Go 应用扫描二维码在真机上运行

API 文档

认证接口

  • 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               # 环境变量

贡献指南

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交改动 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published