maurigre / person-management-api

Registration and management of people in an organization.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API Management Person

Esta API tem como finalidade gerenciar cadastro de pessoas. E uma API simples apenas como forma de estudo e aprimoramento de tecnologias. O objetivo desta API e cadastrar, consultar, lista, atualizar e deletar cadastros de pessoas.

Tecnologias

  • Spring boot - Framework de desenvolvimento Java.
  • Spring Hateoas - Hipermídia como o motor do estado do aplicativo
  • Lombok - Biblioteca java que auxilia como ferramentas de construção.
  • JPA/Hibernate - Framework para persistência de dados / ORM.
  • H2 Database Engine - Banco de dados executado em memória, utilizado nos testes.
  • Swagger - Framework para projetar, construir, documentar e usar serviços da Web RESTful.
  • jUnit5 - Testes de unitários
  • Mockk - Ferramenta para mocks na realização dos testes
  • Jacoco - Ferramenta para cobertura de tests

Detalhes importantes

É necessário ter instalado na sua máquina os seguintes programas:

  • A aplicação foi desenvolvida no java-jdk13. Java
  • Motor de build da aplicação e atraves do Mavem. Maven

Arquitetura

A estrutura do projeto foi desenvolvido pensando no conceito do Clean Architecture, que divide a aplicação em módulos:

  • Configuration - Configurações do Framework, injeção de dependências, define as implementações e realiza a união do projeto como um todo

  • Core - Regra de negócio, essa módulo é livre de qualquer tipo de framework para deixar a regra independente de tecnologia e de fácil manutenção, nessa camada temos duas vertentes:

    • entity - Entidades, objetos que representam o negócio
    • use case - Casos de uso do projeto, como um Service, implementa funcionalidades e regras especificas de cada funcionalidade.
  • Data Provider - Camada responsável em fornecer os dados para o core implementando suas interfaces.

  • Entry Points - Responsável em fornecer os end-points, essa camada trata os dados que o usuário envia processa utilizando os use cases do core e trata seu retorno.

A idéia de utilizar o Clean Architecture é para tornar o testável e flexível a alterações drásticas, atravéz dessa estrutura também temos um ganho ao lidarmos com várias pessoas alterando o mesmo código;

About

Registration and management of people in an organization.

License:GNU General Public License v3.0


Languages

Language:Java 100.0%