https://github.com/bssallex/to-do-list
- API para gerenciamento de tarefas, construída com arquitetura MVC. Permite criar, listar, atualizar e excluir, com autenticação Oauth2 e documentação completa
https://github.com/bssallex/to-do-list
api-rest backend java springboot todolist
Last synced: 10 days ago
JSON representation
- API para gerenciamento de tarefas, construída com arquitetura MVC. Permite criar, listar, atualizar e excluir, com autenticação Oauth2 e documentação completa
- Host: GitHub
- URL: https://github.com/bssallex/to-do-list
- Owner: Bssallex
- Created: 2025-05-05T09:23:20.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-21T09:50:51.000Z (about 1 year ago)
- Last Synced: 2026-04-29T09:41:09.591Z (2 months ago)
- Topics: api-rest, backend, java, springboot, todolist
- Language: Java
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📝 To-Do List
API REST desenvolvida para gerenciamento de **tarefas**, com autenticação, arquitetura em camadas e banco de dados versionado com Flyway. A aplicação permite que usuários criem, atualizem, concluam, listem e removam tarefas.
---
## 📊 Tecnologias e Ferramentas
- Java 17
- Spring Boot
- Spring Data JPA
- Spring Security + JWT + OAuth2 (Google)
- Swagger / OpenAPI
- Lombok
- DTOs e Mapper
- Maven
- Flyway
- Docker + PostgreSQL
- YAML
- ResponseEntity
---
## 🚀 Funcionalidades
- 📝 Criar novas tarefas
- 🔍 Listar todas as tarefas
- 🔍 Buscar tarefa por ID
- ✅ Marcar tarefa como concluída
- 🕒 Listar tarefas pendentes
- 📋 Listar tarefas concluídas
- ✏️ Atualizar tarefa existente
- 🗑️ Deletar tarefa
---
## 🧠 Regras de Negócio (Entidade `Tarefa`)
| Atributo | Descrição |
|--------------|------------------------------------------|
| nome | Nome da tarefa |
| descricao | Descrição da tarefa |
| dataCriacao | Data de criação |
| status | Status da tarefa (`PENDENTE` ou `CONCLUIDO`) |
---
## 📌 Endpoints
| Método HTTP | Caminho | Descrição | Status |
|-------------|--------------------------------|------------------------------------|--------------------------|
| GET | /tarefas | Listar todas as tarefas | 200 OK |
| GET | /tarefas/{id} | Buscar tarefa por ID | 200 OK / 404 Not Found |
| GET | /tarefas/concluidas | Listar tarefas concluídas | 200 OK |
| GET | /tarefas/pendentes | Listar tarefas pendentes | 200 OK |
| POST | /tarefas | Criar nova tarefa | 201 Created |
| PUT | /tarefas/{id} | Atualizar dados da tarefa | 200 OK / 404 Not Found |
| PUT | /tarefas/{id}/concluir | Marcar como concluída | 200 OK / 404 Not Found |
| DELETE | /tarefas/{id} | Deletar uma tarefa | 204 No Content / 404 Not Found |
---
## 🔐 Segurança
- Autenticação via **Spring Security** com **OAuth2 (Google)**
- Emissão e validação de **JWT Tokens**
- API protegida com controle de acesso baseado em token
---
## 🛠️ Migrations
- Controle de versão do banco com **Flyway**
- Scripts versionados aplicados automaticamente no start da aplicação
---
## 🐳 Banco de Dados
- **PostgreSQL** como banco principal
- Contêiner gerenciado com **Docker**
---
## ⚙️ Configuração
- Arquivos `.yml` centralizam as configurações
- Dados sensíveis são armazenados em variáveis de ambiente
- Uso de Maven e Lombok para simplificar o desenvolvimento
---
## 📑 Documentação da API
- Documentação automática com **Swagger / OpenAPI**
- Acesse via: `http://localhost:8080/swagger-ui.html`
---