5 min read • Guide 207 of 877
Project Management for Go Development Teams
Go development teams building microservices, APIs, and system tools need project management that matches their codebase structure. GitScrum helps organize work around Go packages, modules, and services with native Git integration that tracks your commits, PRs, and deployments.
Go Project Structure
Package-Based Organization
GO PROJECT BOARD:
┌─────────────────────────────────────────────────────────────┐
│ MICROSERVICE PROJECT │
├─────────────────────────────────────────────────────────────┤
│ │
│ SERVICE STRUCTURE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 🔷 api-gateway/ ││
│ │ ├── handlers/ ││
│ │ ├── middleware/ ││
│ │ └── routes/ ││
│ │ ││
│ │ 🔷 user-service/ ││
│ │ ├── internal/ ││
│ │ ├── pkg/ ││
│ │ └── cmd/ ││
│ │ ││
│ │ 🔷 order-service/ ││
│ │ ├── internal/ ││
│ │ ├── pkg/ ││
│ │ └── cmd/ ││
│ │ ││
│ │ 📦 shared/ ││
│ │ ├── proto/ ││
│ │ ├── middleware/ ││
│ │ └── utils/ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ Each service = GitScrum project │
│ │
└─────────────────────────────────────────────────────────────┘
Sprint Board
Go-Friendly Tracking
GO SPRINT BOARD:
┌─────────────────────────────────────────────────────────────┐
│ USER-SERVICE - SPRINT 8 │
├──────────────┬───────────────┬───────────────┬──────────────┤
│ BACKLOG │ IN PROGRESS │ REVIEW │ DONE │
├──────────────┼───────────────┼───────────────┼──────────────┤
│ │ │ │ │
│ ┌──────────┐ │ ┌───────────┐ │ ┌───────────┐ │ ┌──────────┐ │
│ │gRPC │ │ │REST API │ │ │Database │ │ │Auth │ │
│ │Streaming │ │ │/users │ │ │Migration │ │ │Middleware│ │
│ │ │ │ │endpoints │ │ │ │ │ │ │ │
│ │proto │ │ │gin router │ │ │PR #234 │ │ │JWT + ctx │ │
│ │M: 5 │ │ │ │ │ │ │ │ │ │ │
│ └──────────┘ │ └───────────┘ │ └───────────┘ │ └──────────┘ │
│ │ │ │ │
│ ┌──────────┐ │ ┌───────────┐ │ │ ┌──────────┐ │
│ │Rate │ │ │Repository │ │ │ │Logger │ │
│ │Limiter │ │ │Pattern │ │ │ │Middleware│ │
│ │ │ │ │ │ │ │ │ │ │
│ │middleware│ │ │sqlx │ │ │ │zerolog │ │
│ │M: 3 │ │ │ │ │ │ │ │ │
│ └──────────┘ │ └───────────┘ │ │ └──────────┘ │
│ │ │ │ │
└──────────────┴───────────────┴───────────────┴──────────────┘
Go-Specific Labels
Categorize Your Work
GO TASK LABELS:
┌─────────────────────────────────────────────────────────────┐
│ RECOMMENDED LABELS │
├─────────────────────────────────────────────────────────────┤
│ │
│ PACKAGE/LAYER: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 📦 pkg - Public packages ││
│ │ 🔒 internal - Internal packages ││
│ │ ⚙️ cmd - Entry points ││
│ │ 🔌 proto - Protocol buffers ││
│ │ 🧪 tests - Testing ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ FRAMEWORK/LIBRARY: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 🍸 gin - Gin router ││
│ │ 🔷 echo - Echo framework ││
│ │ 🔌 grpc - gRPC work ││
│ │ 🗄️ sqlx - Database (sqlx) ││
│ │ 🔷 gorm - Database (GORM) ││
│ │ 📨 kafka - Kafka messaging ││
│ │ 📦 nats - NATS messaging ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ WORK TYPES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 🌐 api - API endpoints ││
│ │ 🧩 middleware - HTTP middleware ││
│ │ 🗄️ database - DB schema, queries ││
│ │ 🔧 refactor - Code cleanup ││
│ │ ⚡ performance - Performance work ││
│ │ 🐛 bug - Bug fixes ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
Task Templates
Common Go Tasks
API ENDPOINT TEMPLATE:
┌─────────────────────────────────────────────────────────────┐
│ Title: POST /api/v1/orders - Create Order │
├─────────────────────────────────────────────────────────────┤
│ │
│ Description: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Implement order creation endpoint with validation, ││
│ │ business logic, and proper error handling. ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ Checklist: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ☐ Define request/response structs ││
│ │ ☐ Add Gin handler function ││
│ │ ☐ Add route to router group ││
│ │ ☐ Implement validation (go-playground/validator) ││
│ │ ☐ Add service layer logic ││
│ │ ☐ Implement repository pattern ││
│ │ ☐ Add proper error handling ││
│ │ ☐ Write table-driven tests ││
│ │ ☐ Add integration tests ││
│ │ ☐ Update Swagger/OpenAPI docs ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ Labels: 🌐 api, 🍸 gin, 🗄️ database │
│ │
└─────────────────────────────────────────────────────────────┘
Git Integration
Go Workflow
GIT + GITSCRUM:
┌─────────────────────────────────────────────────────────────┐
│ GO DEVELOPMENT WORKFLOW │
├─────────────────────────────────────────────────────────────┤
│ │
│ BRANCH NAMING: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ feature/GS-123-user-api ││
│ │ fix/GS-124-race-condition ││
│ │ refactor/GS-125-repository-pattern ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ COMMIT MESSAGES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ feat(api): add user creation endpoint [GS-123] ││
│ │ fix(db): resolve race condition in cache [GS-124] ││
│ │ refactor(user): extract repository pattern [GS-125] ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ AUTO-LINKED IN GITSCRUM: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Task GS-123: User API Implementation ││
│ │ ├── Commits: 8 ││
│ │ ├── PR: #147 (approved) ││
│ │ ├── Pipeline: ✅ Passing (lint, test, build) ││
│ │ └── Status: Ready to merge ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘