265 lines
6.7 KiB
Markdown
265 lines
6.7 KiB
Markdown
# 工作任务管理系统
|
||
|
||
一个简单而强大的工作任务管理工具,帮助你记录每日工作任务和对应的时间投入。
|
||
|
||
## 功能特性
|
||
|
||
- 🔐 **用户认证**: 密码登录保护,确保数据安全
|
||
- ✅ **任务管理**: 添加、编辑、删除工作任务
|
||
- ⏱️ **时间追踪**: 点击开始/停止计时,自动记录任务时长
|
||
- 📊 **时间统计**: 查看每日、每周的工作时间统计
|
||
- 🤖 **AI润色**: 使用AI优化任务描述,让工作记录更专业
|
||
- 📱 **响应式设计**: 支持桌面和移动设备
|
||
- 💾 **本地存储**: 数据存储在本地SQLite数据库中
|
||
- 🐳 **Docker支持**: 一键部署,开箱即用
|
||
|
||
## 技术栈
|
||
|
||
- **前端**: HTML5 + CSS3 + JavaScript (Vanilla JS)
|
||
- **后端**: Python Flask
|
||
- **数据库**: SQLite
|
||
- **AI服务**: OpenAI API (可选)
|
||
|
||
## 快速开始
|
||
|
||
### 方法一: 使用Docker (推荐)
|
||
|
||
```bash
|
||
# 1. 克隆项目
|
||
git clone <repository-url>
|
||
cd worklist
|
||
|
||
# 2. (可选) 配置环境变量
|
||
cp .env.example .env
|
||
# 编辑 .env 文件,设置自定义用户名和密码
|
||
|
||
# 3. 启动Docker容器
|
||
docker-compose up -d
|
||
|
||
# 4. 访问应用
|
||
# 打开浏览器访问 http://localhost:5000
|
||
# 默认用户名: admin
|
||
# 默认密码: admin123
|
||
```
|
||
|
||
**首次启动说明:**
|
||
- Docker会自动创建数据库和默认用户
|
||
- 默认用户名: `admin`, 默认密码: `admin123`
|
||
- 可通过环境变量 `DEFAULT_USERNAME` 和 `DEFAULT_PASSWORD` 自定义
|
||
- 登录后请立即修改密码
|
||
|
||
### 方法二: 本地运行
|
||
|
||
#### 1. 环境要求
|
||
|
||
- Python 3.7 或更高版本
|
||
- 现代浏览器 (Chrome, Firefox, Safari, Edge)
|
||
|
||
#### 2. 安装和运行
|
||
|
||
#### 方法一:使用启动脚本(推荐)
|
||
|
||
```bash
|
||
# 克隆或下载项目到本地
|
||
cd worklist
|
||
|
||
# 运行启动脚本
|
||
python start.py
|
||
```
|
||
|
||
启动脚本会自动:
|
||
- 检查Python版本
|
||
- 安装所需依赖
|
||
- 创建配置文件
|
||
- 启动服务器
|
||
- 自动打开浏览器
|
||
|
||
**首次使用需创建用户:**
|
||
```bash
|
||
# 运行用户创建脚本
|
||
python create_user.py
|
||
```
|
||
|
||
#### 方法二:手动启动
|
||
|
||
```bash
|
||
# 1. 安装Python依赖
|
||
pip install -r backend/requirements.txt
|
||
|
||
# 2. 创建初始用户
|
||
python create_user.py
|
||
|
||
# 3. 启动服务器
|
||
cd backend
|
||
python app.py
|
||
|
||
# 4. 在浏览器中访问
|
||
# http://localhost:5000
|
||
```
|
||
|
||
### 3. 配置说明
|
||
|
||
#### 环境变量配置
|
||
|
||
#### 环境变量配置
|
||
|
||
创建 `.env` 文件 (可复制 `.env.example`):
|
||
|
||
```bash
|
||
# Flask配置
|
||
SECRET_KEY=your-secret-key-here-please-change-this
|
||
|
||
# OpenAI API配置(可选,用于AI润色功能)
|
||
OPENAI_API_KEY=your_openai_api_key
|
||
|
||
# Docker首次启动时的默认用户(仅Docker部署时有效)
|
||
DEFAULT_USERNAME=admin
|
||
DEFAULT_PASSWORD=admin123
|
||
```
|
||
|
||
**安全建议:**
|
||
- 生产环境务必修改 `SECRET_KEY`
|
||
- 修改默认用户名和密码
|
||
- 登录后立即在系统中修改密码
|
||
|
||
#### AI润色功能(可选)
|
||
|
||
## 使用指南
|
||
|
||
### 登录系统
|
||
|
||
1. 首次访问会显示登录页面
|
||
2. 输入用户名和密码
|
||
3. 登录成功后进入主界面
|
||
|
||
### 基本操作
|
||
|
||
1. **添加任务**
|
||
- 点击"添加任务"按钮
|
||
- 填写任务标题和描述
|
||
- 选择任务状态
|
||
- 点击"保存"
|
||
|
||
2. **时间追踪**
|
||
- 在任务列表中点击"开始"按钮开始计时
|
||
- 点击"停止"按钮结束计时
|
||
- 系统自动记录和累计任务时长
|
||
|
||
3. **查看统计**
|
||
- 点击"查看报表"按钮
|
||
- 选择日期查看当日工作统计
|
||
- 查看各任务的时间投入
|
||
|
||
4. **AI润色**
|
||
- 在编辑任务时,点击"AI润色"按钮
|
||
- 系统会优化任务描述
|
||
- 可选择使用润色版本或保持原版
|
||
|
||
### 界面说明
|
||
|
||
- **任务列表**: 显示所有任务,包括状态、时长等信息
|
||
- **统计面板**: 显示今日总工作时长、完成任务数等
|
||
- **计时器**: 实时显示当前任务计时或总时长
|
||
- **报表**: 详细的每日工作时间统计
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
worklist/
|
||
├── backend/ # 后端代码
|
||
│ ├── app.py # Flask主应用
|
||
│ ├── models.py # 数据库模型
|
||
│ ├── routes.py # API路由
|
||
│ ├── ai_service.py # AI服务
|
||
│ ├── requirements.txt # Python依赖
|
||
│ └── .env # 环境变量配置
|
||
├── frontend/ # 前端代码
|
||
│ ├── index.html # 主页面
|
||
│ ├── css/
|
||
│ │ └── style.css # 样式文件
|
||
│ └── js/
|
||
│ ├── app.js # 主应用逻辑
|
||
│ ├── api.js # API调用
|
||
│ └── timer.js # 计时器功能
|
||
├── start.py # 启动脚本
|
||
└── README.md # 说明文档
|
||
```
|
||
|
||
## API接口
|
||
|
||
### 任务管理
|
||
- `GET /api/tasks` - 获取任务列表
|
||
- `POST /api/tasks` - 创建任务
|
||
- `PUT /api/tasks/:id` - 更新任务
|
||
- `DELETE /api/tasks/:id` - 删除任务
|
||
- `POST /api/tasks/:id/polish` - AI润色任务描述
|
||
|
||
### 时间追踪
|
||
- `POST /api/timer/start` - 开始计时
|
||
- `POST /api/timer/stop` - 停止计时
|
||
- `GET /api/timer/status/:id` - 获取计时状态
|
||
|
||
### 统计报表
|
||
- `GET /api/reports/daily` - 获取日报表
|
||
- `GET /api/reports/summary` - 获取汇总报表
|
||
|
||
## 数据模型
|
||
|
||
### 任务 (Task)
|
||
- `id`: 任务ID
|
||
- `title`: 任务标题
|
||
- `description`: 任务描述
|
||
- `polished_description`: AI润色后的描述
|
||
- `status`: 任务状态 (pending/in_progress/completed)
|
||
- `created_at`: 创建时间
|
||
- `updated_at`: 更新时间
|
||
|
||
### 时间记录 (TimeRecord)
|
||
- `id`: 记录ID
|
||
- `task_id`: 关联的任务ID
|
||
- `start_time`: 开始时间
|
||
- `end_time`: 结束时间
|
||
- `duration`: 时长(秒)
|
||
- `created_at`: 创建时间
|
||
|
||
## 常见问题
|
||
|
||
### Q: 如何备份数据?
|
||
A: 数据库文件位于 `backend/worklist.db`,直接复制此文件即可备份。
|
||
|
||
### Q: 可以多人使用吗?
|
||
A: 当前版本为单用户设计,如需多用户支持需要进一步开发。
|
||
|
||
### Q: AI润色功能需要付费吗?
|
||
A: 需要OpenAI API密钥,按使用量计费,具体费用请查看OpenAI官网。
|
||
|
||
### Q: 支持数据导出吗?
|
||
A: 当前版本暂不支持,但可以通过API获取数据,后续版本会添加导出功能。
|
||
|
||
## 开发说明
|
||
|
||
### 本地开发
|
||
|
||
1. 克隆项目
|
||
2. 安装依赖: `pip install -r backend/requirements.txt`
|
||
3. 启动开发服务器: `cd backend && python app.py`
|
||
4. 访问: `http://localhost:5000`
|
||
|
||
### 添加新功能
|
||
|
||
1. 后端: 在 `routes.py` 中添加新的API端点
|
||
2. 前端: 在相应的JS文件中添加功能逻辑
|
||
3. 数据库: 如需新表,在 `models.py` 中定义
|
||
|
||
## 许可证
|
||
|
||
MIT License
|
||
|
||
## 贡献
|
||
|
||
欢迎提交Issue和Pull Request!
|
||
|
||
---
|
||
|
||
**开始使用**: 运行 `python start.py` 即可开始使用!
|