Este é um sistema de gerenciamento de listas e itens que permite aos usuários criar, gerenciar e organizar suas listas, bem como os itens associados a elas. A aplicação suporta a criação de listas e itens, a recuperação de todas as listas e itens, a busca de listas por ID, e a atualização e exclusão de itens. Itens prioritários podem ser destacados, e a aplicação inclui uma API para facilitar a interação com o sistema. Os dados são armazenados de forma persistente em um banco de dados relacional.
- Criação de Listas: Permite criar e gerenciar listas, com cada lista contendo uma coleção de itens.
- Gerenciamento de Itens: Dentro de cada lista, os usuários podem adicionar, editar, remover e alterar o estado dos itens.
- Visualização e Filtragem: Exibe listas e itens, com opções de filtragem.
- Prioridade de Itens: Itens podem ser destacados para indicar prioridade.
- Validação de Dados: Itens devem ter um título com comprimento mínimo e status válido.
- Estado dos Itens: Cada item tem um estado que pode ser modificado pelo usuário.
- Persistência de Dados: As listas e itens são armazenados de forma persistente.
- API RESTful: A aplicação fornece endpoints para as principais operações, incluindo criação e busca de listas e itens, consulta de listas por ID, atualização e exclusão de itens, além de atualização do status e destaque dos itens.
- Testes Automatizados: Foram implementados testes nos controladores para validar funcionalidades principais.
- Java 17
- Spring Boot 3
- H2 Database (para desenvolvimento e testes)
- JPA / Hibernate (para persistência de dados)
- Maven (para gerenciamento de dependências)
- JUnit 5 (para testes automatizados)
- Postman (para testar os endpoints da API)
- JDK 17+
- Maven 3.8+
- Postman (opcional, para testar os endpoints da API manualmente)
Clone o repositório:
git clone https://github.com/JaineSantos0/sgtarefas.git
Compile e rode a aplicação:
mvn clean install
mvn spring-boot:run
Acessando o Console H2:
- URL: http://localhost:8080/h2-console
- JDBC URL: jdbc:h2:mem:devdb
- Username: sa
- Password: (deixe vazio)
Clone o repositório:
git clone https://github.com/JaineSantos0/sgtarefas.git
Compile e rode a aplicação:
mvn clean install -DskipTests
mvn spring-boot:run -Dspring.profiles.active=test
Acessando o Console H2:
- URL: http://localhost:8080/h2-console
- JDBC URL: jdbc:h2:mem:testdb
- Username: sa
- Password: (deixe vazio)
- POST /tasks - Cria uma nova lista de tarefas.
- GET /tasks - Retorna todas as listas de tarefas com paginação.
- GET /tasks/{id} - Retorna uma lista de tarefas específica pelo ID.
- POST /tasks/{taskId}/items - Adiciona um novo item a uma lista de tarefas.
- PUT /items/{id} - Atualiza um item existente.
- DELETE /items/{id} - Remove um item.
- PATCH /items/status/{id} - Atualiza o status de um item.
- PATCH /items/highlighted/{id} - Atualiza o destaque de um item.
- GET /items - Retorna todos os itens ordenados por destaque com filtragem opcional por status.
Executar testes automatizados:
mvn test
Após rodar a aplicação, você pode acessar a documentação dos endpoints gerada pelo Swagger:
- URL: http://localhost:8080/swagger-ui.html
- Acessando no projeto o arquivo swagger.json no caminho src/main/resources/static/swagger.json
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── sgtarefas/
│ │ │ ├── controllers/
│ │ │ │ ├── handlers/
│ │ │ ├── dto/
│ │ │ ├── entities/
│ │ │ ├── repositories/
│ │ │ ├── services/
│ │ │ │ └── exceptions/
│ │ │ └── SgtarefasApplication.java
│ │ ├── resources/
│ │ │ ├── application.properties
│ │ │ └── application-dev.properties
│ ├── test/
│ │ ├── java/
│ │ │ └── sgtarefas/
│ │ │ ├── controllers/
│ │ │ └── SgtarefasApplicationTests.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── application-test.properties
Nome do Autor: Jaine Santos
Email: jainejosiane@gmail.com