# progressGantt
**Repository Path**: gaoli8/progressGantt
## Basic Information
- **Project Name**: progressGantt
- **Description**: 进度格 - 在线制作甘特图,在线目标进度管理工具,轻松创建和管理任务计划与里程碑
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-10
- **Last Updated**: 2026-06-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
📊 进度格
可视化计划管理,让目标一步步看得见
在线甘特图工具,帮助个人高效规划任务、设定目标、追踪进度
🌐 在线体验 |
🚀 快速开始 |
📁 项目结构
---
## 📸 系统截图
| 甘特图时间轴 | 任务管理界面 |
|-------------|-------------|
|  |  |
---
## ✨ 功能亮点
- **甘特图直观呈现** — 时间轴 + 任务条,全年规划一目了然
- **父子任务层级** — 支持无限嵌套子任务,大目标拆分为可执行步骤
- **里程碑管理** — 关键节点一目了然,不遗漏任何截止日
- **实时进度追踪** — 拖拽调整排期,进度百分比自动计算
- **拼图验证码** — 自研滑块验证,防暴力破解
- **JWT 认证** — 用户数据完全隔离,安全可靠
- **响应式设计** — 桌面端 / 移动端均可流畅使用
## 🛠 技术栈
| 层级 | 技术 |
|------|------|
| 前端 | Vue 3 + Vite 8 + Element Plus + Pinia + Vue Router |
| 后端 | Go + Gin + GORM |
| 数据库 | MySQL 8.0 |
| 认证 | JWT (HS256) + bcrypt |
| 部署 | Nginx + HTTPS (Let's Encrypt) |
## 🚀 快速开始
### 环境要求
- **Go** ≥ 1.25
- **Node.js** ≥ 22
- **MySQL** ≥ 8.0
### 1. 克隆项目
```bash
git clone https://github.com/your-username/gantt.git
cd gantt
```
### 2. 初始化数据库
```bash
mysql -u root -p < backend/schema.sql
```
### 3. 启动后端
```bash
cd backend
# 安装依赖
go mod download
# 修改数据库连接配置(如需要)
# 编辑 backend/config/config.dev.json
# 启动服务(开发环境,端口 8080)
go run main.go
# 或编译运行
go build -o gantt-server .
./gantt-server
```
### 4. 启动前端
```bash
cd frontend
# 安装依赖
npm install
# 启动开发服务器(端口 5175)
npm run dev
```
浏览器访问 `http://localhost:5175` 即可使用。
## 📁 项目结构
```
gantt/
├── backend/ # Go 后端
│ ├── main.go # 入口,路由注册
│ ├── config/ # 配置加载 + 环境切换
│ ├── database/ # 数据库连接(GORM + MySQL)
│ ├── handler/ # HTTP 处理器(auth/project/task/milestone/captcha)
│ ├── middleware/ # JWT 认证中间件
│ ├── model/ # 数据模型
│ └── schema.sql # 建表脚本
├── frontend/ # Vue 3 前端
│ ├── src/
│ │ ├── api/ # Axios 封装 + API 接口
│ │ ├── components/
│ │ │ └── gantt/ # 甘特图核心组件
│ │ │ ├── GanttChart.vue # 时间轴渲染
│ │ │ ├── TaskRow.vue # 任务行(递归嵌套)
│ │ │ ├── TaskForm.vue # 任务创建/编辑表单
│ │ │ └── MilestoneManager.vue # 里程碑管理
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── views/ # 页面视图
│ │ │ ├── GanttChart.vue # 主工作区
│ │ │ ├── ProjectList.vue # 项目列表
│ │ │ ├── Login.vue # 登录
│ │ │ └── Register.vue # 注册
│ │ ├── router/ # Vue Router 路由配置
│ │ ├── App.vue
│ │ └── main.js
│ ├── public/ # 静态资源
│ ├── index.html
│ └── vite.config.js
├── deploy/ # 部署相关
│ ├── nginx/gantt.conf # Nginx 配置(HTTP + HTTPS)
│ └── deploy.sh # 一键部署脚本
└── build.sh # 交叉编译打包脚本(Linux amd64)
```
## 📦 部署
### 打包
```bash
bash build.sh
```
产物为 `deploy/gantt-deploy-*.tar.gz`,包含后端二进制(Linux amd64)、前端构建产物、Nginx 配置和自动化部署脚本。
### 上传并部署
```bash
# 上传到服务器
scp deploy/gantt-deploy-*.tar.gz root@your-server:/opt/
# 解压并执行
ssh root@your-server
cd /opt && tar -xzf gantt-deploy-*.tar.gz
sudo bash deploy.sh
```
部署脚本会自动完成:停止旧服务 → 部署文件 → 初始化数据库 → 配置 Nginx → 启动后端服务。
### 环境配置
通过 `APP_ENV` 环境变量切换配置:
```bash
# 开发环境(默认)
./gantt-server
# 生产环境
APP_ENV=prod ./gantt-server
```
配置文件位于 `backend/config/config.dev.json` 和 `backend/config/config.prod.json`。
## 🔌 API 概览
### 公开接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/v1/captcha/generate` | 生成拼图验证码 |
| POST | `/api/v1/captcha/verify` | 校验滑块位置 |
| POST | `/api/v1/auth/register` | 用户注册 |
| POST | `/api/v1/auth/login` | 用户登录 |
### 认证接口(Header: `Authorization: Bearer `)
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/v1/user/info` | 当前用户信息 |
| GET/POST | `/api/v1/projects` | 项目列表 / 创建 |
| GET/PUT/DELETE | `/api/v1/projects/:id` | 项目详情 / 更新 / 删除 |
| GET | `/api/v1/projects/:id/stats` | 项目统计 |
| GET/POST | `/api/v1/projects/:id/tasks` | 任务列表 / 创建 |
| GET/PUT/DELETE | `/api/v1/tasks/:id` | 任务详情 / 更新 / 删除 |
| PUT | `/api/v1/tasks/order` | 批量调整排序 |
| GET/POST | `/api/v1/projects/:id/milestones` | 里程碑列表 / 创建 |
| PUT/DELETE | `/api/v1/milestones/:id` | 里程碑更新 / 删除 |
## 🤝 贡献
欢迎提交 Issue 和 Pull Request。如有问题或建议,请在 GitHub Issues 中提出。
## 📧 联系作者
- QQ:1164727947
- 官网:[easyai23.site](https://www.easyai23.site)
## 📄 开源协议
[MIT License](LICENSE)
---
Made with ❤️ | easyai23.site