AplicaĆ§Ć£o Web para gerenciamento de tarefas(To-Do list), onde Ć© possĆvel adicionar, atualizar, visualizar e deletar tarefas.
- [Spring Boot]
- [Spring Web]
- [Spring Data]
- [Spring Security]
- [Hibernate]
- [Swagger]
Antes de rodar a aplicaĆ§Ć£o Ć© preciso garantir que as seguintes dependĆŖncias estejam corretamente instaladas:
- Java 11
- PostgreSQL 16.1
- Maven 3.1.0
Ć necessĆ”rio a criaĆ§Ć£o da base de dados relacional no Postgres para o sistema
CREATE DATABASE "db_tarefa";
Para os testes de integraĆ§Ć£o tambĆ©m Ć© necessario criar uma base de dados para os testes nĆ£o interferirem na base de desenvolvimento.
CREATE DATABASE "db_tarefa_test";
Primeiramente, faƧa o clone do repositĆ³rio:
https://github.com/alex-girao/spring-boot-todolist.git
Feito isso, acesse o projeto:
cd spring-boot-todolist
Ć preciso compilar o cĆ³digo e baixar as dependĆŖncias do projeto:
mvn clean package
Finalizado esse passo, vamos iniciar a aplicaĆ§Ć£o:
mvn spring-boot:run
Pronto. A aplicaĆ§Ć£o estĆ” disponĆvel em http://localhost:8080
Tomcat started on port(s): 8080 (http)
Started AppConfig in xxxx seconds (JVM running for xxxx)
O projeto disponibiliza endpoints para 2 contextos diferentes: UsuĆ”rios e Tarefas, onde utilizam o padrĆ£o Rest de comunicaĆ§Ć£o, produzindo e consumindo dados no formato JSON.
A documentaĆ§Ć£o Swagger estĆ” disponĆvel em http://localhost:8080/swagger-ui.html
GET /tarefa
http://localhost:8080/tarefa/
GET /tarefa/:id
http://localhost:8080/tarefa/1
DELETE /tarefa/:id
http://localhost:8080/tarefa/1
POST /tarefa
http://localhost:8080/tarefa/
Request Body
{
"titulo": "Carga de clientes",
"descricao": "Executar Carga de clientes",
"status": "PENDENTE"
}
PUT /tarefa/:id
http://localhost:8080/tarefa/2
Request Body
{
"titulo": "Atualizar cadastro de clientes",
"descricao": "Atualizar todos os cadastros dos clientes",
"status": "CONCLUIDO"
}
POST /usuario
http://localhost:8080/usuario/
Request Body
{
"nome": "Alex Girao",
"email": "alex.girao@email.com",
"senha": "123"
}
GET /usuario/:id
http://localhost:8080/usuario/1