Task management backend api project written in go.
- Project Overview
- Features
- Tech Stack
- Architecture
- Getting Started
- API Documentation
- Testing
- Environment Variables
- Contributing
- License
Not yet written
- Board based task management
- Shared task boards
- JWT based user authentication
- Dependency Injection
- Structured logging
- Language: Go 1.25.3
- Web Framework: Gin v1.11.0
- Dependency Injection fx v1.24.0
- Database: MySQL
- ORM: GORM v1.31.1
- Logger: Zerolog v1.34.0
- Configuration: godotenv v1.5.1
///Insert diagram or explanation of layers HTTP Handler --> Service Layer --> Repository / Database
- Handler: Handles HTTP requests and responses
- Service: Business logic
- Repository: Database operations
- git: for cloning the repository
- Go: 1.25 or higher
- Database: MySQL (Can use other sql databases with minimal change)
- Clone the repository and download dependencies
git clone https://github.com/Nebuska/task-tracker.git
cd task-tracker
go mod download- Create a
.envfile in the root directory using.env.example - Adjust values according to your setup. See how
- Create a database for the application (e.g., tasktracker)
Requires Unix Make
choco install make make allBy default, the server should start on http://localhost:8080 (or the port you configured).
Requires go-task
go install github.com/go-task/task/v3/cmd/task@latest task run- Not implemented yet
- Not finished documentation only short example
- Might use Swagger/OpenAPI later
| Method | Path | Description | Auth Required |
|---|---|---|---|
| POST | /api/v1/register | Create an account | No |
| POST | /api/v1/login | Get jwt token for account | No |
| GET | /api/v1/boards | List every board user has access | Yes |
| GET | /api/v1/boards/:id | Get the details of a board | Yes |
| POST | /api/v1/boards | Create new board | Yes |
| DELETE | /api/v1/boards/:id | Delete board | Yes |
| GET | /api/v1/tasks?:filters | List all tasks according to filters | Yes |
| POST | /api/v1/tasks | Create new task | Yes |
| PUT | /api/v1/tasks/:id | Update task | Yes |
| DELETE | /api/v1/tasks/:id | Delete task | Yes |