Skip to content

Geo-Locator é um serviço inovador que permite a gestão e a localização de pontos de interesse. Utilizando Quarkus, o framework Java supersônico, o Geo-Locator oferece performance e simplicidade no desenvolvimento de APIs RESTful.

Notifications You must be signed in to change notification settings

Marcoant007/geo-locator

Repository files navigation

Geo-Locator

Geo-Locator é um serviço inovador que permite a gestão e a localização de pontos de interesse. Utilizando Quarkus, o framework Java supersônico, o Geo-Locator oferece performance e simplicidade no desenvolvimento de APIs RESTful.

Tecnologias Utilizadas


Pré-requisitos

  • Docker instalado na máquina
  • Maven instalado na máquina
  • Java 17 ou superior

Inicie o Docker

  1. Inicie o serviço do banco de dados
> docker compose up -d

Inicie o Quarkus

Para iniciar a aplicação basta rodar o comando:

> mvn quarkus:dev

NOTE: Aplicação pronta para ultilização rodando na porta http://localhost:8085.


Inicie os Testes

Para iniciar os testes da aplicação basta rodar o comando:

> mvn quarkus:test

NOTE: Com esse comando a aplicação roda os testes unitários e de integração no terminal, mas o vscode também pode rodar os testes.

  • Existe uma outra possibilidade de rodar os testes e pode ser acessada via url
> http://localhost:8085/q/dev-ui/continuous-testing


Endpoints | Swagger

  • Para acessar o swagger basta iniciar a aplicação e acessar a url:
> http://localhost:8085/q/dev-ui/io.quarkus.quarkus-smallrye-openapi/swagger-ui 


Regra de Negócio

1. Serviço para cadastrar pontos de interesse

  • Criar a entidade PointOfInterest:
    • Definir atributos: nome, coordenadaX, coordenadaY (inteiros não negativos).
    • Garantir que os valores de coordenadaX e coordenadaY sejam não negativos.
  • Criar o repositório PointOfInterestRepository:
    • Implementar os métodos para salvar e recuperar dados do banco de dados.
  • Implementar o endpoint de cadastro:
    • Criar o endpoint POST /points-of-interest.
    • Validar a entrada para garantir que coordenadaX e coordenadaY sejam não negativos.
    • Persistir os dados no banco de dados usando o repositório.

2. Serviço para listar todos os POIs cadastrados

  • Implementar o endpoint de listagem:
    • Criar o endpoint GET /points-of-interest.
    • Recuperar todos os POIs do banco de dados usando o repositório.
    • Retornar a lista de POIs no formato JSON.

3. Serviço para listar POIs por proximidade

  • Implementar a lógica de proximidade:
    • Criar um método para calcular a distância entre dois pontos (x1, y1) e (x2, y2) usando a fórmula da distância Euclidiana: sqrt((x2 - x1)^2 + (y2 - y1)^2).
  • Implementar o endpoint de proximidade:
    • Criar o endpoint GET /points-of-interest/proximity.
    • Receber parâmetros x, y e d-max na solicitação.
    • Recuperar todos os POIs do banco de dados usando o repositório.
    • Filtrar os POIs com base na distância calculada para garantir que estejam dentro do raio d-max.
    • Retornar a lista de POIs que atendem ao critério de proximidade no formato JSON.

About

Geo-Locator é um serviço inovador que permite a gestão e a localização de pontos de interesse. Utilizando Quarkus, o framework Java supersônico, o Geo-Locator oferece performance e simplicidade no desenvolvimento de APIs RESTful.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published