GitHub Stars
0
User Rating
Not Rated
Favorites
0
Views
6
Forks
0
Issues
0
README
Task Management System
A task management system built with Go, PostgreSQL, and Model Context Protocol (MCP).
Action Items
[ ] No authN / authZ currently
Architecture
- REST API: Golang-based REST API for task management
- Database: PostgreSQL for persistent storage
- MCP Server: Model Context Protocol server for AI integration
Prerequisites
- Go 1.21 or higher
- Docker and Docker Compose
- PostgreSQL (via Docker)
Project Structure
taskman/
├── taskman-api/ # REST API server
└── taskman-mcp/ # MCP server
Setup Instructions
1. Clone the Repository
git clone <repository-url>
cd taskman
2. Environment Configuration
Copy the example environment file and configure your settings:
cp .env.example .env
Edit .env
and update the following variables:
TASKMAN_DB_PASSWORD
: Set a secure password for the database- Other variables can be left as defaults for local development
3. Start PostgreSQL Database
docker-compose up -d
This will start PostgreSQL with the configured environment variables.
Note: The default port is 5433 to avoid conflicts with existing PostgreSQL installations.
4. Initialize Go Modules
# Initialize API module
cd taskman-api
go mod download
# Initialize MCP module
cd ../taskman-mcp
go mod download
5. Run Database Migrations
cd taskman-api
go run cmd/migrate/main.go up
6. Start the API Server
cd taskman-api
go run cmd/api/main.go
The API server will start on http://localhost:8080
(or the port specified in TASKMAN_API_PORT).
7. Start the MCP Server
In a new terminal:
cd taskman-mcp
go run cmd/server/main.go
API Endpoints
Task Management
GET /api/v1/tasks
- List all tasksPOST /api/v1/tasks
- Create a new taskGET /api/v1/tasks/{task_id}
- Get task detailsPUT /api/v1/tasks/{task_id}
- Update a taskDELETE /api/v1/tasks/{task_id}
- Delete a task
Project Management
GET /api/v1/projects
- List all projectsPOST /api/v1/projects
- Create a new projectGET /api/v1/projects/{project_id}
- Get project detailsPUT /api/v1/projects/{project_id}
- Update a projectDELETE /api/v1/projects/{project_id}
- Delete a projectGET /api/v1/projects/{project_id}/tasks
- Get tasks in a project
Task Notes
GET /api/v1/tasks/{task_id}/notes
- Get task notesPOST /api/v1/tasks/{task_id}/notes
- Add a note to a taskPUT /api/v1/tasks/{task_id}/notes/{note_id}
- Update a noteDELETE /api/v1/tasks/{task_id}/notes/{note_id}
- Delete a note
Development
Running Tests
# Run API tests
cd taskman-api
go test ./...
# Run MCP tests
cd taskman-mcp
go test ./...
Building for Production
# 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
License
[Your License Here]