任务管理系统

一个基于Go、PostgreSQL和模型上下文协议(MCP)构建的任务管理系统,提供任务和项目的创建、更新、删除等功能。

  • by brianchambers21
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 brianchambers21/taskman

使用说明

任务管理系统

一个用Go、PostgreSQL和模型上下文协议(MCP)构建的任务管理系统。

行动项目

[]当前没有authN/authZ

建筑

  • REST API:用于任务管理的基于Golang的REST API
  • 数据库:PostgreSQL用于持久存储
  • MCP服务器:用于AI集成的模型上下文协议服务器

先决条件

  • 达到1.21或更高
  • Docker和Docker Compose
  • PostgreSQL(通过Docker)

项目结构

taskman/
├── taskman-api/     # REST API server
└── taskman-mcp/     # MCP server

安装说明

1.克隆存储库

git clone <repository-url>
cd taskman

2.环境配置

复制示例环境文件并配置您的设置:

cp .env.example .env

编辑 .env 并更新以下变量:

  • TASKMAN_DB_PASSWORD:为数据库设置安全密码
  • 其他变量可以保留为本地开发的默认值

3.启动PostgreSQL数据库

docker-compose up -d

这将使用配置的环境变量启动PostgreSQL。

注意:默认端口为5433,以避免与现有PostgreSQL安装冲突。

4.初始化Go模块

# Initialize API module
cd taskman-api
go mod download

# Initialize MCP module
cd ../taskman-mcp
go mod download

5.运行数据库迁移

cd taskman-api
go run cmd/migrate/main.go up

6.启动API服务器

cd taskman-api
go run cmd/api/main.go

API服务器将于启动 http://localhost:8080 (或在TASKMAN_API_port中指定的端口)。

7.启动MCP服务器

在新终端中:

cd taskman-mcp
go run cmd/server/main.go

API终点

任务管理

  • GET /api/v1/tasks -列出所有任务
  • POST /api/v1/tasks -创建新任务
  • GET /api/v1/tasks/{task_id} -获取任务详细信息
  • PUT /api/v1/tasks/{task_id} -更新任务
  • DELETE /api/v1/tasks/{task_id} -删除任务

项目管理

  • GET /api/v1/projects -列出所有项目
  • POST /api/v1/projects -创建新项目
  • GET /api/v1/projects/{project_id} -获取项目详细信息
  • PUT /api/v1/projects/{project_id} -更新项目
  • DELETE /api/v1/projects/{project_id} -删除项目
  • GET /api/v1/projects/{project_id}/tasks -获取项目中的任务

任务注释

  • GET /api/v1/tasks/{task_id}/notes -获取任务笔记
  • POST /api/v1/tasks/{task_id}/notes -向任务添加注释
  • PUT /api/v1/tasks/{task_id}/notes/{note_id} -更新注释
  • DELETE /api/v1/tasks/{task_id}/notes/{note_id} -删除注释

发展

运行测试

# Run API tests
cd taskman-api
go test ./...

# Run MCP tests
cd taskman-mcp
go test ./...

生产大楼

# Build API server
cd taskman-api
go build -o bin/api cmd/api/main.go

# Build MCP server
cd taskman-mcp
go build -o bin/mcp cmd/server/main.go

许可证

[您的许可证在这里]