Skip to content

jhansenbarreto/pessoa-endereco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Documentação

Este projeto foi implementado na etapa do teste técnico no processo seletivo da Attornatus Procuradoria Digital para a vaga de Desenvolvedor Back End - Java. Seguindo as especificações dadas no teste, o projeto é uma simples API destinada ao cadastro de Pessoas e Endereços, servindo as funcionalidades obrigatórias exigidas no teste e outras implementadas pelo desenvolvedor da API por decisão de projeto.

O projeto conta com o CRUD completo das seguintes entidades:

  • Estados
  • Cidades
  • Pessoas
  • Endereços

A documentação completa do projeto foi feita utilizando as ferramentas da biblioteca Spring Doc, dependência do projeto, através do Swagger UI com as especificações do Open API 3.0, afim de prover maior entendimento para os consumidores da API. Para acessar a documentação, faça o clone do projeto para a sua máquina, inicie a aplicação (pode demorar um pouco, pois será feito o download das dependências na primeira vez) e após subir o serviço abra seu navegador e digite: http://localhost:8080/swagger-ui/index.html. Se preferir, os testes podem ser feitos na própria página da documentação, onde contém as explicações devidas para consumir cada endpoint.

🔨 Funcionalidades

📦 Estados:

  • Cadastra estados
  • Consulta estados
  • Lista todos os estados cadastrados
  • Lista todas as cidades de um estado
  • Edita estados
  • Exclui estados
  • 💡 Detalhes: Não é permitido estados com dados duplicados, nomes só aceitam letras maiúsculas, minúsculas, acentuadas e espaços, UF só aceita 2 letras.

📦 Cidades:

  • Cadastra cidades
  • Consulta cidades
  • Lista todas as cidades cadastradas
  • Edita cidades
  • Exclui cidades
  • 💡 Detalhes: Nomes só aceitam letras maiúsculas, minúsculas, acentuadas e espaços.

📦 Pessoas:

  • Cadastra pessoas
  • Consulta pessoas
  • Lista todas as pessoas cadastradas
  • Edita pessoas
  • Exclui pessoas
  • 💡 Detalhes: Nomes só aceitam letras maiúsculas, minúsculas, acentuadas e espaços. Data de nascimento no padrão yyyy-mm-dd

📦 Endereços:

  • Cadastra endereços para Pessoas
  • Lista todos os Endereços de uma Pessoa
  • Edita endereços
  • Exclui endereços
  • Permite marcar um endereço como principal
  • 💡 Detalhes: CEP aceita apenas 8 caracteres numéricos. Todo primeiro endereço cadastrado é marcado como principal automaticamente. Sempre que um endereço principal for excluído, caso ainda existam outros, o primeiro da lista se torna o novo principal.

✔️ Técnicas e Tecnologias Utilizadas

  • Java 17
  • Spring Boot 3
  • Apache NetBeans IDE 15
  • Banco de Dados em Memória (H2)
  • Postman 10 (para testes práticos)
  • JUnit 5 (para testes programáticos)
  • Swagger UI / Open API 3 (para documentação)
  • Padrão de Projeto DTO (Data Transfer Object)
  • Modelagem com DDD (Domain-Driven Design)

🚨 Observações

  • Comentários e Javadoc: Se for de seu interesse gerar o Javadoc do projeto, os comentários já foram escritos para facilitar o entendimento de algumas decisões tomadas durante a implementação.
  • Dados de Teste: Para facilitar os testes, foi deixado no diretório src/main/resources um arquivo data.sql, utilizado para popular o banco de dados sempre que a aplicação for iniciada. Confira o arquivo clicando aqui. 💡 ATENÇÃO: Os testes de integração desenvolvidos em JUnit 5 utilizam estes dados.
  • Tratamento de Erros: A API conta com tratamento de erros e fornece ao consumidor um modelo de representação de erros baseado na especificação RFC 7807 (Problem Details for HTTP APIs), utilizando-a apenas como referência, não implementando totalmente à risca.

👷 Autor

🧑‍💻 Desenvolvedor 🌐 Links Úteis


Jhansen Barreto

About

API implementada para teste técnico no processo seletivo da Attornatus Procuradoria Digital para a vaga de Desenvolvedor Back End - Java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages