# todo **Repository Path**: andy150/todo ## Basic Information - **Project Name**: todo - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-27 - **Last Updated**: 2026-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Todo App — 待办事项管理 一个功能丰富的待办事项管理应用,采用暖色编辑质感设计,支持多平台运行(Web / Android)。 ## 技术栈 | 层级 | 技术 | | ------ | ----------------------------------------------------------------- | | 前端 | React 18 + TypeScript + Vite + React Router v6 | | 后端 | Express + MySQL 8.0 + mysql2 | | 移动端 | Capacitor 6(Android APK) | | 样式 | iOS 17 设计语言 + 暖色奶油质感 + CSS 变量主题 | | 容器化 | Docker 多阶段构建(Alpine + tini) | ## 功能预览 | 收件箱 | 今日待办 | upcoming | |--------|----------|-----------| | ![收件箱](screenshots/inbox.png) | ![今日](screenshots/today.png) | ![ upcoming](screenshots/upcoming.png) | | 待处理 | 便签 | 密码本 | |--------|------|--------| | ![待处理](screenshots/pending.png) | ![便签](screenshots/notes.png) | ![密码本](screenshots/passwords.png) | | 日历 | 番茄钟 | 统计 | |------|--------|------| | ![日历](screenshots/calendar.png) | ![番茄钟](screenshots/pomodoro.png) | ![统计](screenshots/stats.png) | | 设置 | |------| | ![设置](screenshots/settings.png) | ## 功能清单 - **收件箱** — 快速记录想法和任务 - **今日待办** — 查看和完成今日任务 - **Upcoming** — 按日期查看所有任务 - **待处理** — 所有未完成任务列表 - **便签** — 快捷笔记(底部滑出编辑面板) - **密码本** — 花密算法自动生成站点密码 - **日历** — 日历视图查看任务分布 - **番茄钟** — 专注计时,跟踪工作效率 - **统计** — 日/周/月维度的完成率统计 - **项目管理** — 按项目组织任务 - **标签系统** — 为任务打标签 - **重复任务** — 支持每日/每周/每月/每年重复 - **提醒** — 任务开始前通知 - **搜索** — 全文搜索任务 - **主题切换** — 浅色/深色/跟随系统 - **离线支持** — IndexedDB 本地缓存 + 同步队列 - **PWA** — 可安装为桌面应用 ## 快速开始 ### 环境要求 - Node.js 20+ - MySQL 8.0+ - Docker(可选,容器化部署) ### 本地开发 ```bash # 1. 安装依赖 npm install # 2. 配置数据库连接 # 编辑 server/src/config.ts 中的 MySQL 连接参数 # 或设置环境变量: export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=root export MYSQL_PASSWORD=yourpassword export MYSQL_DATABASE=todo # 3. 创建数据库 mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS todo CHARACTER SET utf8mb4" # 4. 启动后端 npm run dev:server # 5. 启动前端(新终端) npm run dev:client ``` 或一键启动: ```bash npm run dev ``` 前端访问 `http://localhost:5173`,后端 API 在 `http://localhost:3001`。 ### 构建 APK ```bash # 1. 构建前端 npm run -w client build # 2. 同步到 Capacitor npx cap sync android # 3. 构建 APK cd client/android && ./gradlew assembleRelease ``` APK 输出:`client/android/app/build/outputs/apk/release/app-release.apk` ### Docker 部署 ```bash # 构建镜像 docker build -t todo-server:latest -f server/Dockerfile . # 运行容器 docker run -d \ --name todo-server \ --restart unless-stopped \ -p 3001:3001 \ -e MYSQL_HOST=your-mysql-host \ -e MYSQL_USER=root \ -e MYSQL_PASSWORD=yourpassword \ -e MYSQL_DATABASE=todo \ todo-server:latest ``` ## 项目结构 ``` todo-app/ ├── client/ # React 前端 │ ├── src/ │ │ ├── components/ # 通用组件 │ │ ├── context/ # React Context(主题/认证/导航/Toast) │ │ ├── pages/ # 页面组件 │ │ ├── hooks/ # 自定义 Hooks │ │ ├── services/ # API 调用 │ │ ├── db/ # IndexedDB 离线存储 │ │ └── styles/ # 主题与动画 │ ├── android/ # Capacitor Android 工程 │ └── package.json ├── server/ # Express 后端 │ ├── src/ │ │ ├── routes/ # API 路由 │ │ ├── models/ # 数据库层 │ │ ├── services/ # 业务逻辑 │ │ ├── middleware/ # 认证与验证 │ │ └── types/ # 类型定义 │ ├── Dockerfile # 多阶段构建 │ └── package.json ├── data/ # 数据文件(本地开发) ├── screenshots/ # 功能截图 └── package.json # Monorepo 根配置 ``` ## 许可证 MIT