Skip to content

Este repositório contém um desafio de implementação de um sistema CRUD em Java com Spring Boot. O sistema permite o gerenciamento de Pessoas e Endereços, onde cada Pessoa pode ter vários Endereços, criando um relacionamento de um-para-muitos.

Notifications You must be signed in to change notification settings

ezequieldesr/Desafio_CRUD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio CRUD - Pessoa e Endereço 🚀

Este repositório contém um desafio de implementação de um sistema CRUD em Java com Spring Boot. O sistema permite o gerenciamento de Pessoas e Endereços, onde cada Pessoa pode ter vários Endereços, criando um relacionamento de um-para-muitos.

Anexo 📎: CRUD - Pessoa 13.pdf


Requisitos 📋

  • Java 17 ou superior ☕
  • Spring Boot (versão 2.x ou superior) 🚀
  • Banco de dados H2 para persistência 🗄️
  • Spring Data JPA para integração com o banco de dados 🔗
  • Validações básicas ✔️ e tratamento de exceções ⚠️ implementados
  • API RESTful com respostas em formato JSON 🌐

Funcionalidades 🛠️

CRUD Pessoa

  • Listar todas as pessoas e seus respectivos endereços 📝
  • Listar pessoa por id 📜
  • Criar uma nova pessoa com um ou mais endereços 🆕
  • Atualizar os dados de uma pessoa e/ou seu(s) endereço(s) ✏️
  • Excluir uma pessoa e todos os seus endereços 🗑️
  • Mostrar a idade da pessoa 🎂

CRUD Endereço

  • Listar, criar, atualizar e excluir endereços associados a uma pessoa 📍
  • Indicar qual endereço é o principal de uma pessoa 🏠

Funcionalidades Opcionais (Diferenciais) 🌟

  • Swagger para documentação da API 📑
  • Paginação na listagem de pessoas 📑🔢
  • Testes de integração utilizando Spring Boot Test 🧪

Tecnologias Utilizadas 💻

  • Java 17: Linguagem de programação utilizada ☕
  • Spring Boot: Framework para desenvolvimento de aplicações Java 🚀
  • Spring Data JPA: Biblioteca para integração com o banco de dados 🔗
  • H2 Database: Banco de dados em memória para persistência de dados 🗄️
  • JUnit 5: Framework para testes unitários 🧪
  • Swagger (opcional): Ferramenta para documentação da API 📑

Estrutura do Projeto 🏗️

A estrutura do projeto está organizada da seguinte forma:

src/main/java/com/db/Desafio_CRUD_DB
├── controller
│   ├── EnderecoController.java
|   └── PessoaController.java
|
├── dto
│   ├── EnderecoDTO.java
|   └── PessoaDTO.java
| 
├── entity
│   ├── Endereco.java
│   └── Pessoa.java
|
├── repository
│   ├── EnderecoRepository.java
│   └── PessoaRepository.java
|
├── service
│   ├── EnderecoService.java
|   └── PessoaService.java
│  
├── resources
└── application.properties

___________________________________________

src/test/java/com/db/Desafio_CRUD_DB
├── controller
│   ├── EnderecoControllerTests.java
|   └── PessoaControllerTests.java
|
└── service
    ├── EnderecoServiceTests.java
    └── PessoaServiceTests.java


Instruções para Rodar o Projeto 🔧

  1. Clone o repositório 🧑‍💻

    git clone https://github.com/seu-usuario/seu-repositorio.git
    cd seu-repositorio
    
  2. Instale as dependências 🔄
    O projeto utiliza o Maven para gerenciamento de dependências. Para instalar as dependências, execute:

    mvn clean install
  3. Rodar o projeto ▶️
    Para rodar o projeto localmente, execute o seguinte comando:

    mvn spring-boot:run
  4. Acessar a API 🌍
    A API estará disponível em http://localhost:8080. Você pode testar os endpoints da seguinte forma:

  • Listar todas as pessoas: GET /pessoas 📋
  • Listar pessoa por id: GET /pessoas/{id}📜
  • Criar nova pessoa: POST /pessoas 🆕
  • Atualizar pessoa: PUT /pessoas/{id} ✏️
  • Excluir pessoa: DELETE /pessoas/{id} 🗑️
  1. Acessar Swagger 📜
    Se o Swagger foi implementado, acesse a documentação da API no seguinte link:
    http://localhost:8080/swagger-ui/index.html#/

About

Este repositório contém um desafio de implementação de um sistema CRUD em Java com Spring Boot. O sistema permite o gerenciamento de Pessoas e Endereços, onde cada Pessoa pode ter vários Endereços, criando um relacionamento de um-para-muitos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages