An open API service indexing awesome lists of open source software.

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

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`

---