# 任务管理系统部署指南 ## 环境要求 ### 后端环境 - Go 1.19+ - MySQL 8.0+ - Git ### 前端环境 - Node.js 16+ - npm 或 yarn - 现代浏览器(Chrome, Firefox, Safari, Edge) ## 快速启动 ### 方法一:使用启动脚本(推荐) **Windows:** ```cmd # 双击运行 start.bat # 或命令行运行 .\start.bat ``` **Linux/macOS:** ```bash chmod +x start.sh ./start.sh ``` ### 方法二:手动启动 1. **启动后端服务器** ```bash cd backend go mod tidy go run main.go ``` 2. **启动前端服务器** ```bash cd frontend npm install npm run dev ``` ## 访问地址 - **前端应用**: http://localhost:5173 - **后端API**: http://localhost:8080 - **API文档**: 参考 `api_test_tasks.http` 文件 ## 数据库配置 1. 创建MySQL数据库: ```sql CREATE DATABASE task_track CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 修改后端配置文件 `backend/config.yaml`: ```yaml database: host: localhost port: 3306 user: your_username password: your_password database: task_track ``` ## 功能测试 ### 1. 用户注册和登录 - 访问登录页面 - 注册新用户或使用测试账号登录 ### 2. 创建任务 - 进入任务管理页面 - 点击"创建任务"按钮 - 填写任务信息 - 上传附件(支持拖拽) - 保存任务 ### 3. 管理附件 - 在任务列表中查看附件数量 - 点击附件数量查看详情 - 下载或删除附件 ### 4. API测试 使用 `api_test_tasks.http` 文件测试所有API端点: - 文件上传 - 任务CRUD操作 - 附件管理 - 搜索和筛选 ## 目录结构 ``` task_track/ ├── frontend/ # Vue3前端应用 ├── backend/ # Go后端服务 ├── uploads/ # 文件上传目录 ├── database/ # 数据库初始化脚本 ├── api_test_tasks.http # API测试文件 ├── start.bat # Windows启动脚本 ├── start.sh # Linux/macOS启动脚本 └── README.md # 项目说明 ``` ## 故障排除 ### 常见问题 1. **后端启动失败** - 检查Go版本和环境变量 - 确认MySQL服务运行正常 - 检查数据库连接配置 2. **前端启动失败** - 检查Node.js版本 - 删除 `node_modules` 重新安装依赖 - 检查端口5173是否被占用 3. **文件上传失败** - 确认 `backend/uploads` 目录存在 - 检查目录写入权限 - 确认文件大小和格式限制 4. **API请求失败** - 检查后端服务是否正常运行 - 确认CORS配置正确 - 检查认证token是否有效 ### 日志查看 - **后端日志**: 控制台输出 - **前端日志**: 浏览器开发者工具 - **网络请求**: 浏览器Network面板 ## 生产部署 ### 后端部署 ```bash cd backend go build -o task-track main.go ./task-track ``` ### 前端部署 ```bash cd frontend npm run build # 将 dist/ 目录部署到Web服务器 ``` ### 环境变量 设置以下环境变量用于生产环境: - `GIN_MODE=release` - `DB_HOST`, `DB_PORT`, `DB_USER`, `DB_PASSWORD`, `DB_NAME` - `JWT_SECRET` ## 安全注意事项 1. **文件上传安全** - 限制文件类型和大小 - 扫描恶意文件 - 使用独立的文件存储服务 2. **API安全** - 使用HTTPS协议 - 实现请求频率限制 - 定期更新JWT密钥 3. **数据库安全** - 使用强密码 - 限制数据库访问权限 - 定期备份数据