Skip to content

afranioag/sense-up

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mini-sense

Descrição

API desenvolvida como desafio para sense-up.

Um produto na área de Internet das Coisas (IoT) e Sensoreamento Remoto está sendo desenvolvido. Trata-se de um serviço para gerenciar o estado de dispositivos IoT instalados pelos clientes e alertar, através de um aplicativo, sobre situações ou emergências condicionadas aos objetos, mercadorias, ou locais monitorados por esses sensores.

Arquitetura

A Api foi dividida em duas partes.

  • admin/v1/** nesse ponto foi colocado tudo que diz respeito à administradores. Como criar, editar, deletar e buscar usuários como também adicionar roles a estes.

  • api/v1/** nesse ponto os usuários logados e que não tem nenhuma role adicionada a eles, poderão simplismente usar os endpoints com verbo GET. Já usuários logados e com alguma role atribuída podem adicionar e buscar dados como: devices, streams, data-streams.

A api usa ambientes separados para fins de testes, desenvolvimento e produção. Ao clonar a api e usa-la localmente, deve ser observado que no arquivo application.properties tem uma propriedade spring.profiles.active=${APP_PROFILE:colocarAquiOAmbiente} onde temos:

  • {test} - para fins de testes usando o banco-h2
  • {dev} - voltado para homologação usando uma base de dados real
  • {prod} - para produção. Seu ambiente deve está testado e homologado

Arquivo import.sql

Esse arquivo está no src/main/resource/ e nele contém scripts sql para popular o banco em memoria H2 com finalidade de uso exclusimante para testes. Não alterar os dados para não causar incosistências nos TESTES Junit.

Roles

  • ROLE_ADMIN tem total controle do sistema
  • ROLE_OPERATOR tem acesso e permissão total apenas na api/v1/** para todos os verbos HTTP

API (endpoints)

A descrição detalhada da API pode ser encontrada em https://implant-test.herokuapp.com/swagger-ui.html#/measurement-unit-controller/findAllUsingGET

Arquitetura

Projeto criado com spring e java 11.

  • spring-web
  • spring-security
  • spring-jpa
  • postgreSQL
  • maven
  • H2
  • entre outras ferramentas

Deploy

A api está implantada atualmente no HEROKU podendo ser acessada por:

Docker

Existe uma imagem disponivel no docker-hub Para uso seguir os passos abaixo: -- Baixar a imagem para seu ambiente docker

  • docker pull afranio653/minisense:v1

-- Criar o container

  • docker run -p 80:8080 --name {seu_valor} -e APP_PROFILE={seu_valor} -e DB_URL={seu_valor} -e DB_USERNAME={seu_valor} -e DB_PASSWORD={seu_valor} afranio653/minisense:v1

  • Onde tem {seu_valor} são valores que você deve informar. Para -e você ir em variáveis de ambiente acima e verificar o que cada uma é.

  • OBS se vc optar por rodar no ambiente de test, rodar apenas:

  • docker run -p 80:8080 --name myapp5 -e APP_PROFILE=teste afranio653/minisense:v1

  • URI BASE PARA ACESSAR A API NÂO IMPORTA O AMBIENTE ESCOLHIDO: http://localhost:80/

Variáveis de ambiente

  • APP_PROFILE - ambiente onde seu app irá rodar. Setado como default 'test'
  • DB_URL - URL da base de dados.
  • DB_PASSWORD - password da base de dados.
  • DB_USERNAME - nome do usuário da base de dados
  • CLIENT_ID - id da sua aplicação.
  • CLIENT_SECRET - password da aplicação

Collection postman

Importar no seu postman

Baixar colletion json

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published