O objetivo do projeto Ć© criar um simulador, para poder controlar sondas em outros planetas por meio de comandos.
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
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
- Spring Boot
- MySQL
- Docker
- Swagger
- Flyway: Para criaĆ§Ć£o das "migrations" do banco de dados
- Spring Security
- Postman
- JUnit
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.
- api: Todas as funcionalidades referente a API da aplicaĆ§Ć£o.
- core : NĆŗcleo da aplicaĆ§Ć£o, utilizado para reĆŗso de cĆ³digo.
- domain: Camada utilizada para implementaĆ§Ć£o das regras de negocio, o seu principal objetivo Ć© ser independente de framework.
- db.migration: Onde fica armazenado os arquivos de migrations que sĆ£o executados pelo Flyway para criar o banco de dados.
- test: Local onde fica armazenado os testes da aplicaĆ§Ć£o.
- test.api.controller: Teste de integraĆ§Ć£o utilizando o banco de testes.
- docker-compose.yaml: Utilizado para criar o banco de dados de desenvolvimento e testes.
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'
Toda a API foi documentada utilizando o Swagger. Para acessar a documentaĆ§Ć£o, Ć© sĆ³ acessar a URL http://localhost:8080/swagger-ui/index.html#/
email: admin@gmail.com, password: 123456
ApĆ³s a autenticaĆ§Ć£o Ć© sĆ³ passar o token, nos cabeƧalhos das requisiƧƵes.
UtilizaĆ§Ć£o no Swagger