Clayder / probe-manager

:rocket: Probe Manager API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

šŸ¤œšŸ¤› Objetivo:

O objetivo do projeto Ć© criar um simulador, para poder controlar sondas em outros planetas por meio de comandos.

ExplicaĆ§Ć£o da necessidade:

Tamanho da Ɣrea do planeta : 5x5

PosiĆ§Ć£o de pouso da sonda 1: x=1, y=2 apontando para Norte Sequencia de comandos: LMLMLMLMM PosiĆ§Ć£o final da sonda: x=1 y=3 apontando para Norte

PosiĆ§Ć£o de pouso da sonda 2: x=3, y=3 apontando para Leste Sequencia de comandos: MMRMMRMRRML PosiĆ§Ć£o final da sonda: x=5 y=1 apontando para Norte

Detalhes sobre o funcionamento acima:

A sequĆŖncia de comandos Ć© um conjunto de instruƧƵes enviadas da terra para a sonda, onde :

  • M -> Andar para a frente na direĆ§Ć£o que estĆ” 1 posiĆ§Ć£o.
  • L -> Virar a sonda para a esquerda (90 graus)
  • R -> Virar a sonda para a direita (90 graus)

A Ɣrea do planeta Ʃ um plano cartesiano com o tamanho informado pelo operador.

A orientaĆ§Ć£o da sonda dentro do plano cartesiano usa uma rosa dos ventos como referĆŖncia

rosa dos ventos

šŸ‘Øā€šŸ’» Tecnologias utilizadas

  1. Spring Boot
  2. MySQL
  3. Docker
  4. Swagger
  5. Flyway: Para criaĆ§Ć£o das "migrations" do banco de dados
  6. Spring Security
  7. Postman
  8. JUnit

šŸ‘½ Testes

Esse projeto foi desenvolvido utilizando testes de integraĆ§Ć£o e de unidade. Na camada controller e repository foi implementado teste de integraĆ§Ć£o com o banco de dados.

Peek 06-05-2022 18-222

šŸ“‚ OrganizaĆ§Ć£o do projeto

image

Principais arquivos/diretĆ³rios

  1. api: Todas as funcionalidades referente a API da aplicaĆ§Ć£o.
  2. core : NĆŗcleo da aplicaĆ§Ć£o, utilizado para reĆŗso de cĆ³digo.
  3. domain: Camada utilizada para implementaĆ§Ć£o das regras de negocio, o seu principal objetivo Ć© ser independente de framework.
  4. db.migration: Onde fica armazenado os arquivos de migrations que sĆ£o executados pelo Flyway para criar o banco de dados.
  5. test: Local onde fica armazenado os testes da aplicaĆ§Ć£o.
  6. test.api.controller: Teste de integraĆ§Ć£o utilizando o banco de testes.
  7. docker-compose.yaml: Utilizado para criar o banco de dados de desenvolvimento e testes.

šŸ’¾ Banco de dados

Modelagem

image

Banco de dados

Os bancos de desenvolvimento e testes podem ser utilizados atravĆ©s de contĆŖiner docker .

Para subir o banco Ć© sĆ³ executar o comando: docker-compose up --build

Obs: Em toda execuĆ§Ć£o dos testes de integraĆ§Ć£o o banco de teste Ć© apagado.

Credenciais do banco de desenvolvimento:

Porta: 3306

MYSQL_DATABASE: 'probe_manager'  
MYSQL_USER: 'user'  
MYSQL_PASSWORD: 'password'  
MYSQL_ROOT_PASSWORD: 'password'

Credenciais do banco de testes:

Porta: 3307

MYSQL_DATABASE: 'probe_manager_test'  
MYSQL_USER: 'user'  
MYSQL_PASSWORD: 'password'  
MYSQL_ROOT_PASSWORD: 'password'

šŸ—’ļø DocumentaĆ§Ć£o da API

Toda a API foi documentada utilizando o Swagger. Para acessar a documentaĆ§Ć£o, Ć© sĆ³ acessar a URL http://localhost:8080/swagger-ui/index.html#/

image

šŸ” AutenticaĆ§Ć£o na API

Dados do usuƔrio default

email: admin@gmail.com, password: 123456

image

Exemplo de uso

ApĆ³s a autenticaĆ§Ć£o Ć© sĆ³ passar o token, nos cabeƧalhos das requisiƧƵes.

image

UtilizaĆ§Ć£o no Swagger

image

About

:rocket: Probe Manager API


Languages

Language:Java 100.0%