Projeto de API REST para gerenciamento de tarefas desenvolvido em Go.
A aplicação permite criar, listar, atualizar e remover tarefas por meio de endpoints HTTP, utilizando persistência em banco de dados e execução via Docker Compose.
Este projeto implementa uma API REST para gerenciamento de tarefas com foco em:
- Estrutura modular
- Separação de responsabilidades
- Organização por camadas
- Execução simplificada com Docker
A aplicação foi desenvolvida com o objetivo de consolidar fundamentos de desenvolvimento backend utilizando Go.
- CRUD completo de tarefas:
- Criar nova tarefa
- Listar todas as tarefas
- Buscar tarefa por ID
- Atualizar tarefa existente
- Remover tarefa
- Estrutura organizada por handlers, rotas e modelos
- Testes automatizados
- Configuração via Docker e Docker Compose
- Go
- Gin
- Gorm
- PostgreSQL
- Docker Compose
task.manager/
│
├── cmd/api # Ponto de entrada da aplicação
├── internal/handler # Controllers e lógica de requisições HTTP
├── http/routes # Definição das rotas
├── model # Estruturas e modelos
├── database # Configuração e conexão com banco
├── test # Testes automatizados
├── docker-compose.yml # Orquestração dos serviços
└── go.mod # Gerenciamento de dependências
Para executar o projeto localmente:
- Go instalado (1.25.1)
- Docker Compose
- Clone o repositório:
git clone https://github.com/hugaojanuario/task.manager.git
cd task.manager- Suba os serviços com Docker Compose:
docker compose up --build- A aplicação estará disponível em:
http://localhost:8080
(Confirme a porta no arquivo docker-compose.yml.)
GET /task
GET /task/{id}
POST /task
Content-Type: application/json
Exemplo de corpo:
{
"title": "Estudar Go",
"description": "Revisar conceitos de API REST"
}PUT /task/{id}
DELETE /task/{id}
Criar tarefa:
curl -X POST http://localhost:8080/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Exemplo","description":"Descrição"}'Listar tarefas:
curl http://localhost:8080/tasksPara rodar os testes:
go test ./...Este projeto foi desenvolvido como prática de backend com Go, aplicando conceitos de:
- API REST
- Estrutura modular
- Organização de código
- Integração com banco de dados
- Ambiente containerizado
- Testes automatizados
Projeto para fins educacionais e de estudo.