A production-ready, multi-tenant task management SaaS platform built with Go, showcasing modern backend development practices.
- 🏢 Multi-tenant Architecture - Complete tenant isolation and management
- 🔐 JWT Authentication - Secure authentication with refresh tokens
- 👥 Role-based Access Control - Admin, Manager, and User roles
- ⚡ Real-time Updates - WebSocket-based live collaboration
- 📧 Email Notifications - Task assignments and due date reminders
- 🔄 Background Processing - Async job processing with Redis
- 📊 Analytics Dashboard - Team productivity insights
- 🔍 GraphQL API - Flexible query interface
- 🛡️ Rate Limiting - Per-tenant usage control
- 📝 Comprehensive API - RESTful endpoints with OpenAPI docs
- Framework: Gin HTTP framework
- Database: PostgreSQL with GORM
- Cache: Redis for sessions and caching
- Authentication: JWT with refresh tokens
- Real-time: WebSocket with Gorilla
- Background Jobs: Asynq (Redis-based)
- Testing: Testify framework
- Documentation: Swagger/OpenAPI
- Containerization: Docker
taskflow-go/
├── cmd/
│ ├── api/ # Main API server
│ └── worker/ # Background job worker
├── internal/
│ ├── config/ # Configuration management
│ ├── database/ # Database connection and setup
│ ├── models/ # Data models
│ ├── handlers/ # HTTP handlers
│ ├── middleware/ # HTTP middleware
│ ├── services/ # Business logic
│ ├── repositories/ # Data access layer
│ ├── auth/ # Authentication logic
│ ├── websocket/ # WebSocket handlers
│ └── jobs/ # Background job handlers
├── pkg/
│ ├── logger/ # Structured logging
│ ├── utils/ # Utility functions
│ └── errors/ # Error handling
├── migrations/ # Database migrations
├── docs/ # API documentation
├── scripts/ # Build and deployment scripts
├── deployments/ # Docker and k8s configs
└── test/ # Integration tests
- Go 1.21+
- PostgreSQL 15+
- Redis 7+
- Clone the repository:
git clone https://github.com/drazan344/taskflow-go.git
cd taskflow-go- Install dependencies:
go mod download- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration- Run database migrations:
go run cmd/migrate/main.go up- Start the server:
go run cmd/api/main.goOnce the server is running, visit:
- Swagger UI: http://localhost:8080/docs/swagger/index.html
- GraphQL Playground: http://localhost:8080/graphql
Run the test suite:
go test -v ./...- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.