O Task Manager API é uma aplicação backend desenvolvida para gerenciar taferas. Este projeto foi construído com foco em colocar meus aprendizados em Node.js e Express em prática, utilizando boas práticas de código e padrões de arquitetura.
A API permite criar, listar, atualizar, iniciar, concluir e deletar tarefas, mantendo o controle completo do ciclo de vida de cada tarefa através de diferentes status.
- ✅ Listar todas as tarefas - Visualize todas as tarefas cadastradas
- 🔍 Buscar tarefa específica - Encontre uma tarefa pelo ID
- ➕ Criar nova tarefa - Cadastre novas tarefas no sistema
▶️ Iniciar tarefa - Marque uma tarefa como "em andamento" com data de início- ✔️ Concluir tarefa - Finalize tarefas alterando o status para "concluída"
- 🔄 Atualizar tarefa - Modifique qualquer campo da tarefa
- 🗑️ Deletar tarefa - Remova tarefas
| Método | Endpoint | Descrição |
|---|---|---|
GET |
/tasks |
Lista todas as tarefas |
GET |
/tasks/:id |
Busca uma tarefa específica |
POST |
/tasks |
Cria uma nova tarefa |
PATCH |
/tasks/start/:id |
Inicia uma tarefa (status: EM_ANDAMENTO) |
PATCH |
/tasks/concludes/:id |
Conclui uma tarefa (status: CONCLUIDA) |
PUT |
/tasks/:id |
Atualiza campos de uma tarefa |
DELETE |
/tasks/:id |
Deleta uma tarefa |
Criar uma tarefa:
POST /tasks
{
"title": "Estudar Node.js",
"description": "Aprender sobre Fastify e Prisma",
"status": "PENDENTE"
"priority": "ALTA",
"endDate": "2026-02-28T23:59:59.000Z"
}Iniciar uma tarefa:
PATCH /tasks/start/1Atualizar uma tarefa:
PUT /tasks/1
{
"title": "Estudar Estrutura de Dados",
"description": "Aprofundar em conceitos de Árvores Binárias"
}Este projeto foi desenvolvido com as seguintes tecnologias:
- Node.js - Runtime JavaScript
- Express - Framework web minimalista
- Prisma - ORM
- PostgreSQL - Banco de dados
- Docker - Docker Compose para conteiner PostgreSQL
- Nodemon - Reinicialização automática durante desenvolvimento
- dotenv - Gerenciamento de variáveis de ambiente
task-manager/
│
├── prisma/
│ ├── migrations/ # Migrações do banco de dados
│ └── schema.prisma # Schema do Prisma
│
├── src/
│ ├── controller/
│ │ └── taskController.js # Controlador das tarefas
│ │
│ ├── routes/
│ │ └── taskRoutes.js # Definição das rotas
│ │
│ └── server.js # Arquivo principal da aplicação
│
├── .env # Variáveis de ambiente
├── .gitignore # Arquivos ignorados pelo Git
├── docker-compose.yml # Configuração do Docker
├── package.json # Dependências do projeto
└── README.md # Documentação do projeto
Antes de começar, você precisa ter instalado:
- Node.js
- Docker e Docker Compose
- Git
- Clone o repositório
git clone https://github.com/seu-usuario/task-manager-node-api.git
cd task-manager- Instale as dependências
npm install- Configure as variáveis de ambiente
Crie um arquivo .env na raiz do projeto:
POSTGRES_USER=seu_usuario
POSTGRES_PASSWORD=sua_senha
POSTGRES_DB=nome_do_seu_banco_de_dados
PORT=3000
DATABASE_URL="postgresql://seu_usuario:sua_senha@localhost:5433/nome_do_seu_banco_de_dados?schema=public"- Suba o container do PostgreSQL
docker-compose up- Execute as migrations do Prisma
npx prisma migrate dev- Inicie o servidor
npm run start:dev- Acesse a API
O servidor estará rodando em: http://localhost:3000
Teste o endpoint principal:
curl http://localhost:3000/Deve aparecer a seguinte mensagem: Servidor funcionando!
Este projeto foi desenvolvido com o objetivo de:
- Implementar uma API REST seguindo as melhores práticas
- Utilizar Prisma ORM para manipulação de dados
- Aplicar padrões de arquitetura (MVC - Model View Controller)
- Trabalhar com PostgreSQL containerizado via Docker
- Estruturar código de forma limpa e manutenível
Contribuições são sempre bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request