一个基于Go和Next.js开发的现代化项目管理系统,支持团队里程碑管理、任务跟踪和用户认证。
- 用户注册和登录(JWT双令牌认证)
- 创建、查看、编辑和删除项目里程碑
- 创建、查看、编辑和删除任务
- 支持任务的状态和优先级管理
- 响应式UI设计,支持移动和桌面浏览器
- Go语言
- Gin Web框架
- GORM (Go ORM库)
- MySQL数据库
- JWT认证
- Next.js 14
- React
- TypeScript
- TailwindCSS
- ShadcnUI组件库
-
进入后端目录:
cd backend -
安装依赖:
go mod tidy
-
创建
.env文件(默认已经提供,可根据需要修改):PORT=8080 JWT_SECRET=your_jwt_secret_key_change_in_production ACCESS_TOKEN_EXPIRY=15m REFRESH_TOKEN_EXPIRY=7d # MySQL配置 DB_DRIVER=mysql DB_HOST=localhost DB_PORT=3306 DB_USER=你的用户名 DB_PASSWORD=你的密码 DB_NAME=project_management DB_CHARSET=utf8mb4 DB_PARSEDATE=True -
启动服务器:
go run main.go
服务器将在 http://localhost:8080 上运行。
-
进入前端目录:
cd frontend -
安装依赖:
npm install
-
启动开发服务器:
npm run dev
前端应用将在 http://localhost:3000 上运行。
本项目支持使用Docker进行部署,提供了完整的Docker配置文件。
-
在项目根目录下,直接运行:
docker-compose up -d
-
服务将在以下地址运行:
- 前端: http://localhost:3000
- 后端: http://localhost:8080
- MySQL: localhost:3306
如果需要单独构建和运行各个服务,可以使用以下命令:
-
构建并运行后端:
cd backend docker build -t pm-backend . docker run -p 8080:8080 pm-backend
-
构建并运行前端:
cd frontend docker build -t pm-frontend . docker run -p 3000:3000 pm-frontend
如果需要在不同CPU架构(如ARM和x86-64)之间共享镜像,可以使用我们提供的多架构构建脚本:
-
给脚本添加执行权限:
chmod +x build-multiarch.sh
-
修改脚本中的Docker仓库地址(如Docker Hub用户名):
# 编辑脚本 nano build-multiarch.sh # 将 yourregistry 改为你自己的Docker仓库
-
登录到Docker仓库:
docker login
-
运行构建脚本:
./build-multiarch.sh
-
等待构建完成后,可以在任何支持的架构上使用以下命令拉取和运行:
docker-compose -f docker-compose.prod.yml up -d
POST /api/auth/register- 用户注册POST /api/auth/login- 用户登录POST /api/auth/refresh- 刷新访问令牌POST /api/auth/logout- 用户登出GET /api/user/me- 获取当前用户信息
GET /api/tasks- 获取所有任务GET /api/tasks/:id- 获取单个任务POST /api/tasks- 创建任务PUT /api/tasks/:id- 更新任务DELETE /api/tasks/:id- 删除任务
GET /api/milestones- 获取所有里程碑GET /api/milestones/:id- 获取单个里程碑POST /api/milestones- 创建里程碑PUT /api/milestones/:id- 更新里程碑DELETE /api/milestones/:id- 删除里程碑
id: 用户IDusername: 用户名(唯一)password: 密码(加密存储)name: 用户姓名created_at: 创建时间updated_at: 更新时间
id: 任务IDname: 任务名称deadline: 截止日期status: 任务状态(待处理、进行中、已完成、已延期)urgency: 紧急程度(低、中、高、紧急)assignee: 负责人created_at: 创建时间updated_at: 更新时间
id: 里程碑IDtitle: 标题date: 日期description: 描述created_at: 创建时间updated_at: 更新时间
MIT