Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 MorriTodo

AI 驱动的智能待办事项管理平台

自然语言输入 · AI 对话管理 · 飞书深度集成

📖 English  ·  🤝 参与贡献  ·  📄 MIT

License React Vite Express MySQL DeepSeek

---

✨ 核心功能

功能 说明
🗣️ 自然语言创建待办 输入"明天下午3点开会,高优先级"即可自动解析创建
🤖 AI 对话管理 基于 DeepSeek 的多轮对话,支持复杂操作指令
📝 待办 CRUD 创建、编辑、删除、批量操作,支持标题、备注、优先级、状态、截止时间
📊 状态管理 未开始 / 进行中 / 已完成 / 已删除
🔴 优先级管理 紧急 / 重要 / 一般
🏷️ 标签系统 自定义标签(可设颜色),与待办多对多关联
🖥️ 多视图 首页输入视图 / 列表视图 / 卡片网格视图
🔍 筛选与搜索 按状态、优先级、标签筛选(均含计数),全文关键词搜索
✅ 批量操作 批量标记状态、批量删除
📈 进度汇总 环形图、状态分布、优先级分布、截止时间统计
🪶 飞书任务同步 待办 ↔ 飞书任务 v2 API 双向同步
⏰ 飞书任务提醒 截止前自动设置提醒
🔐 用户认证 JWT 登录/注册,密码 bcrypt 加密
🎨 亮色卡通主题 点状背景、3D 阴影、弹性动画、实时时钟

📸 界面预览

MorriTodo Screenshot

MorriTodo Screenshot

MorriTodo Screenshot


🛠️ 技术栈

客户端

技术 用途
React 18 UI 框架
Vite 5 构建工具
React Router 6 路由
Axios HTTP 请求
react-markdown + remark-gfm AI 回复 Markdown 渲染

服务端

技术 用途
Node.js 运行时
Express 4 HTTP 框架
MySQL2 3 数据库驱动
jsonwebtoken 9 JWT 认证
bcryptjs 2 密码加密
dotenv 16 环境变量

外部服务

服务 用途
DeepSeek API AI 自然语言解析(Chat Completions + Function Calling)
飞书开放平台 任务同步、提醒、OAuth 登录

🚀 快速开始

前置要求

  • Node.js ≥ 16
  • MySQL ≥ 5.7(推荐 8.0)

1. 克隆项目

git clone https://github.com/Morri3/MorriTodo.git
cd MorriTodo

2. 安装依赖

# 服务端
cd server
npm install

# 客户端
cd ../client
npm install

3. 配置环境变量

cd server
cp .env.example .env

编辑 server/.env,填入你的配置:

变量 说明
DB_HOST 数据库地址
DB_PORT 数据库端口
DB_USER 数据库用户名
DB_PASSWORD 数据库密码
DB_NAME 数据库名称(默认 morri_todo)
DEEPSEEK_API_KEY DeepSeek API 密钥
DEEPSEEK_BASE_URL DeepSeek API 地址
DEEPSEEK_MODEL 使用的模型名称
JWT_SECRET JWT 签名密钥(请设为随机字符串)
PORT 服务端端口(默认 3001)
FEISHU_APP_ID 飞书应用 ID(可选)
FEISHU_APP_SECRET 飞书应用密钥(可选)

4. 初始化数据库

mysql -u root -p < server/sql/init.sql

5. 启动开发服务器

# 服务端(端口 3001)
cd server
npm run dev

# 客户端(端口 5173)
cd client
npm run dev

浏览器访问 http://localhost:5173,注册账号后即可使用。

使用云服务器里的Docker更便捷管理哦~


📁 项目结构

MorriTodo/
├── client/                 # 客户端 — React + Vite
│   ├── src/
│   │   ├── api/            # API 请求封装(auth, todos, tags, chat, feishu)
│   │   ├── components/     # UI 组件
│   │   │   ├── chat/       # AI 对话面板
│   │   │   ├── layout/     # 侧边栏、筛选器、搜索
│   │   │   ├── todos/      # 待办卡片、列表、智能输入、仪表盘
│   │   │   ├── tags/       # 标签组件
│   │   │   ├── settings/   # 飞书设置
│   │   │   └── common/     # 通用弹窗、确认框
│   │   ├── context/        # React Context(Auth, Todo, Chat)
│   │   ├── pages/          # 页面(Login, MainPage, GridPage)
│   │   └── styles/         # 全局样式
│   └── vite.config.js
│
├── server/                 # 服务端 — Express + MySQL
│   ├── src/
│   │   ├── config/         # 环境变量、数据库连接池
│   │   ├── middleware/     # JWT 认证、错误处理
│   │   ├── models/         # 数据模型(user, todo, tag, conversation, feishu)
│   │   ├── routes/         # API 路由(auth, todos, tags, chat, conversations, feishu)
│   │   ├── services/       # 外部服务(DeepSeek, 飞书 API)
│   │   ├── functions/      # AI Function Calling 处理器(ReAct 模式)
│   │   └── utils/          # 日志、日期解析
│   └── sql/                # 数据库初始化脚本
│
├── docs/                   # 项目文档
│   ├── full-development-guide.md   # 完整开发文档
│   ├── server-details.md           # 服务端实现细节
│   ├── ai-development-guide.md     # AI ReAct 架构说明
│   └── ecs-deployment-guide.md     # ECS 部署指南
│
├── LICENSE
├── README.md
├── README_EN.md
├── CONTRIBUTION.md
└── CONTRIBUTION_EN.md

🔌 API 概览

方法 端点 说明 认证
POST /api/auth/register 用户注册 ❌
POST /api/auth/login 用户登录 ❌
GET /api/todos 获取待办列表 ✅
POST /api/todos 创建待办 ✅
PUT /api/todos/:id 更新待办 ✅
DELETE /api/todos/:id 删除待办 ✅
POST /api/todos/batch-update 批量更新状态 ✅
POST /api/todos/batch-delete 批量删除 ✅
GET/POST/DELETE /api/tags 标签 CRUD ✅
POST /api/chat AI 对话(ReAct 循环) ✅
GET/DELETE /api/conversations 对话管理 ✅
GET /api/feishu/* 飞书 OAuth 与绑定 ✅
GET /api/health 健康检查 ❌

📚 文档


🤝 参与贡献

欢迎提交 Issue 和 Pull Request!请先阅读 贡献指南。


📄 许可证

本项目基于 MIT License 开源。


Made with ❤️ by Morri

About

An AI-driven to-do list management platform.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages