Segue o link onde me apresento e apresento minhas contribuições
Esta aplicação foi criada com o intuito de demonstrar as diferenças e características entre aplicações monolíticas e as que seguem a arquitetura de microsserviços, representadas respectivamente pelas tecnologias Node.js e Lagom em sua versão para a linguagem Scala.
Possuir instalados
- Node.js versão 10.0 ou superior
- Yarn versão 1.22 ou superior
- MongoDB versão 4.0 ou superior
- Python 3 com as bibliotecas
Pandas
,Requests
ePymongo
já instaladas. Você pode configurar um ambiente do Miniconda, se preferir.
Inicie o MongoDB na sua máquina e se certique que ele está disponível no host localhost
e na porta 27017
, essas são as configurações padrões. Caso contrário, você deve modificar essas configurações no servidor no passo a seguir.
Popule o banco de dados com as linhas e paradas dos ônibus de São Paulo. Este passo só precisa ser realizado uma única vez. Estando na raiz do projeto, execute o comando (isso deve demorar um pouco):
Linux e MacOs:
MONGO_HOST=localhost MONGO_PORT=27017 MONGO_DB=bmap python data-seed/trip_seed.py
Windows (Powershell):
$env:MONGO_HOST='localhost'; $env:MONGO_PORT='27017'; $env:MONGO_DB='bmap'; python data-seed/trip_seed.py
Entre na pasta /nodejs-api
copie todo o conteúdo do arquivo .env.example
para um novo arquivo .env
. Substitua os "???" da variável API_OLHO_VIVO_TOKEN
pelo seu token. Na seção Produção > Iniciar serviços logo abaixo é explicado como conseguí-lo.
Instale os módulos necessários. Já dentro da pasta /nodejs-api
execute o seguinte comando:
yarn
Inicie a aplicação:
node index.js
Entre na pasta /webapp
e crie o arquivo .env.development.local
com o seguinte conteúdo:
REACT_APP_SERVER_HOST=localhost:5000
Instale os módulos necessários. Já dentro da pasta /webapp
, execute o seguinte comando:
yarn
Inicie o servidor como mostrado na seção anterior.
Inicie a aplicação:
yarn start
Assim, basta acessar http://localhost:3000.
Possuir instalados
Antes de iniciar os serviços é necessário definir corretamente as variáveis de ambiente. Para isso, crie localmente um arquivo .env
e preencha-o com o mesmo conteúdo do arquivo .env.example
já existente substituindo cada "???" pelo seu respectivo valor esperado:
MONGO_DB
: Nome do banco de dados que se deseja armazenar as rotas e paradas de ônibus vindos do arquivo GTFS presente na API SPTrans.API_OLHO_VIVO_TOKEN
: Após se cadastrar no portal da API Olho Vivo de São Paulo e criar uma aplicação, você receberá esse token. Teve algum problema com seu token?. Saiba que a liberação deste pode demorar algumas horas após sua criação.APPLICATION_SECRET
: À nível de testes este pode ser apenas um conjunto alfanumérico Mais informações em: https://www.playframework.com/documentation/2.8.x/ApplicationSecret.
Após isso, basta subir as aplicações utilizando o docker-compose
como segue.
docker-compose -f common-services.yml -f docker-compose-node.yml up
No caso da aplicação Lagom, antes de iniciar os serviços é necessário gerar a imagem do microsserviço utilizando o módulo sbt-native-packager
.
Para isso acesse o diretório do projeto e execute o comando responsável por publicar a imagem localmente:
cd lagom-api
sbt docker:publishLocal
Após isso, verifique se a imagem foi criada corretamente com o comando
docker images
O retorno deve ser algo como:
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
---|---|---|---|---|
spbus-impl | 1.0-SNAPSHOT | d193c3623031 | About an hour ago | 597MB |
... | ... | ... | ... | ... |
Com a imagem publicada, basta iniciar os serviços:
docker-compose -f common-services.yml -f docker-compose-lagom.yml up
Com todos os serviços no ar, basta acessar http://localhost/ no navegador.
Isso pode acontecer devido a algum problema nas requisições com o servidor.
- Verifique se o servidor está no ar.
- Verifique se o MongoDB também está funcionando.
- Verifique os passos logo abaixo.
Isso pode acontecer devido a algum problema nas requisições com a API Olho Vivo.
- Verifique sua conexão com a internet.
- Vá para o passo logo abaixo.
Para saber se seu token está funcionando faça uma requisição HTTP POST para http://api.olhovivo.sptrans.com.br/v2.1/Login/Autenticar?token={token} substituindo {token}
pelo seu token. Se retornado true
, este está funcionando e false
significa algum problema na autenticação.
Saiba que a liberação deste pode demorar algumas horas após sua criação.