Aplicação desenvolvida para permitir um cadastro de pessoas com as operações de consulta, criação, edição e deleção de registros. Possui validação de CPF para pessoas físicas. Ao cadastrar o endereço da pessoa, o CEP busca automaticamente os dados de localização, caso estiverem corretos. Possui relatório em CSV das pessoas cadastradas.
Diagrama de Entidade e Relacionamento
Este projeto foi desenvolvido utilizando Java com Spring Boot para o backend e Angular para o frontend. A aplicação é containerizada usando Docker e orquestrada com Docker Compose.
- Angular
- Bootstrap
- Java JDK 17
- Spring
- H2 in memory (para testes)
- PostgreSQL (PROD)
- Swagger Open API Documentation
- Postman
- Flyway
- Docker
- Docker Compose
- Docker Hub
- GitHub Projects
- Frontend: alvescamila87/frontend:1.0.0
- Backend: alvescamila87/backend:1.0.0
- Docker
- Docker Compose
-
Clone o repositório
git clone https://github.com/alvescamila87/api-cadastro-pessoa.git cd api-cadastro-pessoa
-
Executar via Docker compose
docker-compose up
- Frontend: Abra seu navegador e acesse http://localhost:3000.
- Backend: O backend estará disponível em http://localhost:9000.
- Documentação da API (Swagger): Acesse http://localhost:9000/swagger-ui.html para ver a documentação da API.
- URL: http://localhost:9000/pessoas
- Descrição: Cria uma nova pessoa. Caso o
enderecoId
não exista no banco de dados, a aplicação busca o endereço no ViaCEP e o salva. - Estrutura JSON do Body:
{ "nomeCompleto": "", "cpf": "", "telefone": "", "endereco": { "cep": "", "logradouro": "", "numero": "", "complemento": "", "bairro": "", "localidade": "", "uf": "", "ibge": "", "gia": "", "ddd": "", "siafi": "" } }
- URL: http://localhost:9000/pessoas/{id}
- Descrição: Retorna a pesssoa do ID fornecido.
- Estrutura JSON retornada:
{ "id": 1, "nomeCompleto": "Zebedeu Abraão", "cpf": "02100000000", "telefone": "47-9999-5555", "endereco": { "id": 1, "cep": "00000-000", "logradouro": "Rua Israel", "numero": "7", "complemento": "Próximo à igreja", "bairro": "Europa", "localidade": "Blumenau", "uf": "SC", "ibge": "", "gia": "", "ddd": "", "siafi": "" } }
- URL: http://localhost:9000/pessoas/
- Descrição: Retorna a lista de todas as pessoas cadastradas.
- Estrutura JSON retornada:
[ { "id": 1, "nomeCompleto": "Zebedeu Abraão", "cpf": "02100000000", "telefone": "47-9999-5555", "endereco": { "id": 1, "cep": "00000-000", "logradouro": "Rua Israel", "numero": "7", "complemento": "Próximo à igreja", "bairro": "Europa", "localidade": "Blumenau", "uf": "SC", "ibge": "", "gia": "", "ddd": "", "siafi": "" } } ]
- URL: http://localhost:9000/pessoas/{id}
- Descrição: Deleta uma pessoa existente pelo ID informado.
- URL: http://localhost:9000/pessoas/{id}
- Descrição: Atualiza uma pessoa existente. Caso o enderecoId não exista no banco de dados, a aplicação busca o endereço no ViaCEP e o salva.
- Estrutura JSON do Body:
{ "id": 1, "nomeCompleto": "", "cpf": "", "telefone": "", "endereco": { "cep": "", "logradouro": "", "numero": "", "complemento": "", "bairro": "", "localidade": "", "uf": "", "ibge": "", "gia": "", "ddd": "", "siafi": "" } }
- Camila Alves