Task Manager is a RESTful API built with Go and Gin for managing tasks. It supports CRUD operations, caching with TTL, pagination, filtering, and structured logging with Logrus. The project uses PostgreSQL as the database and is containerized with Docker.
- CRUD Operations: Create, read, update, and delete tasks.
- Caching: In-memory caching with TTL for task retrieval.
- Pagination and Filtering: List tasks with pagination and status filtering.
- Logging: Structured logging of HTTP requests using Logrus.
- Docker Support: Run the application and database with Docker Compose.
- Comprehensive Tests: Unit and integration tests for models, repository, services, and handlers.
docker-compose up --buildThe API will be available at http://localhost:8080.
curl -X POST http://localhost:8080/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Test Task","description":"Description","status":"todo"}'curl "http://localhost:8080/tasks?page=1&page_size=5&status=todo"curl -X PUT http://localhost:8080/tasks/<id> \
-H "Content-Type: application/json" \
-d '{"title":"Updated Task","description":"Updated","status":"in_progress"}'curl -X DELETE http://localhost:8080/tasks/<id>