chore(repo): add README, logo and gitignore
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
develop.md
|
||||
.idea/
|
||||
@@ -0,0 +1,156 @@
|
||||
<center>
|
||||
<h1>TodoList</h1>
|
||||
<img src="TodoList.png">
|
||||
<p>一个面向个人与团队的离线优先的待办事宜 Web App,目标是把传统待办清单升级为“可执行计划系统”</p>
|
||||
<p>
|
||||
<img src="https://img.shields.io/github/stars/Yaosanqi137/TodoList?style=for-the-badge&logo=github" alt="GitHub stars">
|
||||
<img src="https://img.shields.io/github/forks/Yaosanqi137/TodoList?style=for-the-badge&logo=github" alt="GitHub forks">
|
||||
<img src="https://img.shields.io/github/last-commit/Yaosanqi137/TodoList?style=for-the-badge&logo=github" alt="Last commit">
|
||||
<img src="https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge&logo=react&logoColor=black" alt="React 18">
|
||||
<img src="https://img.shields.io/badge/TypeScript-5-3178C6?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript 5">
|
||||
<img src="https://img.shields.io/badge/NestJS-11-E0234E?style=for-the-badge&logo=nestjs&logoColor=white" alt="NestJS">
|
||||
<img src="https://img.shields.io/github/license/Yaosanqi137/TodoList?style=for-the-badge" alt="License">
|
||||
</p>
|
||||
</center>
|
||||
|
||||
---
|
||||
|
||||
## 核心功能
|
||||
|
||||
## 任务管理
|
||||
|
||||
- 创建、编辑、删除任务
|
||||
- 任务字段:主题、详细内容、DDL、状态、优先级、标签
|
||||
- 富文本内容支持:图片、视频、链接等媒体信息
|
||||
- 面向执行的展示:按时间、优先级、状态分组
|
||||
|
||||
## AI 分析与 AI 问答
|
||||
|
||||
- 对单任务进行可执行策略建议(步骤拆解、风险点、时间预估)
|
||||
- 对任务集合做协调建议(先后顺序、时间冲突优化)
|
||||
- 支持会话式问答,围绕用户现有任务上下文进行回答
|
||||
- 支持多 AI 渠道切换与故障兜底
|
||||
|
||||
## Astrbot 双向集成
|
||||
|
||||
- TodoList 可调用 Astrbot 接口,复用用户在 Astrbot 中配置的 AI 提供商
|
||||
- TodoList 可注册为 Astrbot skill,被 QQ 机器人调用
|
||||
- 机器人可执行典型操作:添加任务、修改任务、删除任务、请求建议
|
||||
|
||||
## DDL 邮件提醒
|
||||
|
||||
- 任务临近截止时间时触发邮件通知
|
||||
- 支持可靠定时任务队列,避免高峰期漏发
|
||||
- 后续可扩展多级提醒策略(如 24h/6h/1h)
|
||||
|
||||
## 认证与账号安全
|
||||
|
||||
- 邮箱验证码登录
|
||||
- 2FA(TOTP)
|
||||
- OAuth 第三方登录:QQ / 微信 / GitHub
|
||||
- JWT 双 Token(Access + Refresh)机制
|
||||
|
||||
## PWA 与本地能力
|
||||
|
||||
- 支持“添加到桌面/主屏幕”
|
||||
- 首次访问后缓存关键静态资源,离线可进入
|
||||
- 本地数据通过 Dexie.js 管理 IndexedDB
|
||||
- 联网后自动进行增量同步与冲突处理
|
||||
|
||||
## 管理后台(Admin WebUI)
|
||||
|
||||
- 站点品牌配置:头像、Header 等视觉信息
|
||||
- 用户配额管理:默认 100MB,可按用户覆盖
|
||||
- 存储用量监控与限制策略
|
||||
- 日志查看与运维辅助功能
|
||||
- 基于 Token 的后台登录控制
|
||||
|
||||
---
|
||||
|
||||
## TODO List :(
|
||||
|
||||
> 状态说明:`[x]` 已完成,`[ ]` 进行中/未开始(请随开发进度更新)
|
||||
|
||||
| 顺序 | 功能实现项(用户视角) | 你会看到的效果 | 状态 |
|
||||
|---|---|---|---|
|
||||
| 1 | 明确产品能力与交互流程 | 确认 TodoList 的核心使用方式与页面路径 | [x] |
|
||||
| 2 | 实现基础登录(邮箱验证码) | 可以注册/登录并进入主页面 | [ ] |
|
||||
| 3 | 实现任务基础能力(增删改查) | 可以创建、编辑、删除、完成任务 | [ ] |
|
||||
| 4 | 实现富文本与媒体内容 | 任务详情可插入图片、视频、链接等内容 | [ ] |
|
||||
| 5 | 实现本地离线存储(Dexie) | 无网时仍可打开并编辑任务 | [ ] |
|
||||
| 6 | 实现云端同步与冲突处理 | 恢复网络后自动同步,冲突按规则合并 | [ ] |
|
||||
| 7 | 实现提醒系统(邮件) | DDL 临近时收到邮件提醒 | [ ] |
|
||||
| 8 | 实现 AI 问答(用户自带 Key) | 可直接用自己的 AI API Key 获取建议 | [ ] |
|
||||
| 9 | 实现 Astrbot Provider 接入 | 可复用 Astrbot 内配置的 AI 提供商 | [ ] |
|
||||
| 10 | 实现公共 AI 通道(可开关) | 管理员开启后,用户可直接使用站点公共 AI | [ ] |
|
||||
| 11 | 实现 Astrbot Skill 对接 | 可通过 QQ 机器人添加/修改任务与获取建议 | [ ] |
|
||||
| 12 | 实现完整账号安全(2FA + OAuth) | 支持 2FA、QQ/微信/GitHub 登录 | [ ] |
|
||||
| 13 | 实现 PWA 安装与离线体验优化 | 支持“添加到桌面”,像本地 App 一样使用 | [ ] |
|
||||
| 14 | 实现管理后台(配额/日志/系统配置) | 管理员可管理用户配额、站点信息、日志 | [ ] |
|
||||
| 15 | 上线前安全与性能收尾 | 使用更稳定、更安全,核心链路可观测 | [ ] |
|
||||
|
||||
---
|
||||
|
||||
## 技术架构
|
||||
|
||||
## Monorepo
|
||||
|
||||
- 仓库管理:`pnpm workspaces` 或 `Turborepo`
|
||||
- 目标:在一个仓库管理客户端、服务端、后台,统一工程规范与依赖
|
||||
- 共享能力:TypeScript 类型、工具库、API SDK、Lint/Format 配置
|
||||
|
||||
## 客户端(C 端 SPA + PWA)
|
||||
|
||||
- 框架:React 18 + TypeScript + Vite
|
||||
- UI:Tailwind CSS + shadcn/ui
|
||||
- 富文本:Tiptap
|
||||
- 状态管理:Zustand
|
||||
- 离线存储:Dexie.js(IndexedDB)
|
||||
- PWA:vite-plugin-pwa(Service Worker + 资源缓存)
|
||||
|
||||
## 管理后台
|
||||
|
||||
- 复用 React + TypeScript + Vite
|
||||
- 后台组件库:Ant Design 或 Mantine(待最终确认)
|
||||
- 目标:提升数据管理类页面的开发效率与稳定性
|
||||
|
||||
## 后端 API(BFF + 核心服务)
|
||||
|
||||
- 框架:NestJS + TypeScript
|
||||
- 数据库:PostgreSQL + Prisma ORM
|
||||
- 缓存与任务队列:Redis + BullMQ
|
||||
- 文件存储:MinIO(S3 兼容,可迁移至 OSS/COS)
|
||||
|
||||
## 认证中心
|
||||
|
||||
- JWT 双 Token:Access Token + Refresh Token
|
||||
- 2FA:otplib(TOTP)
|
||||
- OAuth:Passport.js 策略体系
|
||||
|
||||
---
|
||||
|
||||
## 仓库目标结构
|
||||
|
||||
```text
|
||||
TodoList/
|
||||
apps/
|
||||
web/ # C端 SPA + PWA
|
||||
admin/ # 管理后台
|
||||
api/ # NestJS 后端
|
||||
packages/
|
||||
shared-types/ # 前后端共享类型
|
||||
ui/ # 可复用 UI 组件(可选)
|
||||
sdk/ # API 客户端封装(可选)
|
||||
eslint-config/ # 统一规范(可选)
|
||||
tsconfig/ # 统一 TS 配置(可选)
|
||||
infra/
|
||||
docker/ # PostgreSQL/Redis/MinIO 等本地编排(规划)
|
||||
docs/
|
||||
architecture/ # 架构文档与决策记录(ADR)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
本项目遵循 [GNUv3](./LICENSE)。
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
Reference in New Issue
Block a user