Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • O onyva-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ONYVA
  • onyva-wiki
  • Wiki
  • configuracao

Last edited by Fernando Luiz Elger Nov 21, 2020
Page history

configuracao

Home Sprints Requisitos Arquitetura Configuração Mockups Banco de Dados Instalação Gerência de Projeto CI

Página de Configuração do Projeto

Back-end (API)

A configuração de cada ambiente está no config/environments/<env>.js. Para desenvolvimento vamos utilizar o arquivo config/environments/development.js. Nele esta configurado para subir a aplicação na porta 3000 e utilizar o MongoDB com a seguinte config:

username: "admin",
password: "p1c4d1nh0",
database: "dev"

Requisitos

Será necessário ter em sua máquina:

  • Node.
  • Docker ou MongoDB local.

Configurando MongoDB

Docker

  • Na raiz do repositório existe um arquivo chamado docker-compose.yml. Com ele é possível subir uma instancia do MongoDB, já configurada para ser utilizada localmente. Para isso é preciso ter instalado o Docker em sua máquina (Linux ou Windows). Com o Docker rodando, o seguinte comando pode ser executado docker-compose up -d

Após isto o MongoDB já estará rodando.

Sem Docker - Para os que tiverem problemas com o Windows Home

  • Também é possível utilizar o MongoDB localmente. Para isto basta configurar o usuário e senha de acordo com o env do projeto.
  1. Deve-se instalar o MongoDB localmente na máquina através do link: https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-4.4.1-signed.msi
  2. No cmd digitar 'cd C:\Program Files\MongoDB\Server\4.4\bin\mongo.exe' O mongodb deve se conectar. Verificar em qual porta está conectado o mongo. No meu caso foi a 27017
  3. Digitar o comando 'use admin'
  4. Digitar o comando para adicionar usuário 'db.createUser( { user: "admin", pwd: "p1c4d1nh0", roles: [ { role: "dbOwner", db: "dev" } ] } )'
  5. No MongoDB Compass adicionar uma conexão como segue: Hostname: localhost Port: 27017 (vai depender de qual porta o mongo está conectado) Authentication: username/password Username: admin Password: p1c4d1nh0 Authentication Database: admin
  6. Após esses passos é possível iniciar o back.

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/

Dependências

Para que todas as dependências do projeto sejam instaladas pode ser utilizado o gerenciador de pacotes NPM.

Com o repositório clonado, navegue até o a pasta raiz do projeto, e execute, npm install.

Rodando

Depois das devidas configurações, basta executar o seguinte comando para rodar o projeto, npm run dev.

Swagger e docs

O projeto conta com um middleware do Swagger para automaticamente documentar as rotas desenvolvidas. Para visualiza-lo, com o projeto em execução, basta acessar http://localhost:3000/api/docs.

Carregando as manutenções da URL para o arquivo Json

Rodar comando '& python ./scriptCarService.py' que gera o arquivo em json scheduledMaintenancesInitialPayload.json

Carregando as manutenções da Chevrolet para banco local

Depois das devidas configurações, e de adicionar informações dos carros no banco, preferencialmente pelo front-end(CASO ADICIONE PELO SWAGGER, USAR LETRAS MAIUSCULAS). Ex: "brand":"CHEVROLET" "model":"ONIX" Após ter os veículos adicionados no contexto da gerência, rodar o comando para iniciar o script seeds.js na branch develop: 'npm run seed'.

Para rodar o script no Heroku, deve-se aceder a branch seedToProd, que contém os apontamentos para o nosso BD de produção. Para isso é necessário rodar o mesmo script: 'npm run seed'

Front-end (Oficina)

Para executar o projeto é necessário ter o Flutter já instalado na sua máquina. O tutorial para a instalação está disponível na documentação oficial do toolkit. A versão utilizada para o desenvolvimento inicial foi a:

Flutter 1.22.0-10.0.pre.161

Assim que você clonar o projeto, inicie o projeto com o comando:

flutter run -d chrome.

O comando acima informa ao flutter que você executará a aplicação em um navegador.

Notificações

O projeto utiliza o serviço de Cloud Messaging do Firebase para enviar push notifications aos usuários. Para isso, foi criado uma conta com os dados:

  • email: [email protected]
  • senha: onyva2020

Ponto de atenção

O projeto possui rotas que permite o envio de notificação para múltiplos usuários. Porém, o serviço do Firebase possui uma limitação de 500 usuários por notificação. Em fase de desenvolvimento e testes isso não é um problema, porém quando em produção, isso pode causar erros. Uma possível solução é dividir os usuários alvos em grupos de 500 e chamar o serviço de notificação para cada grupo.

Notificação mensal

O sistema possui uma notificação mensal, onde pede-se ao usuário proprietário que ele atualize a kilometragem do veículo. O dia do mês e o horário dessa notificação são definidos através de uma expressão cron no arquivo schedulerOperation.js, no projeto de back-end. Aqui está um guia para expressões cron

Deploy Flutter Web no Heroku:

IMPORTANTE

Os conteúdos do projeto (pubspec.yml, pasta de build, arquivos fonte e afins) devem estar no mesmo diretório onde está a pasta .git do seu projeto. Caso contrário você terá erro no deploy.

  1. Instale o CLI do Heroku:

    user$ sudo snap install --classic heroku

  2. Entre no diretório do seu projeto onde estiver localizada a pasta ".git". Ela será referência para o Heroku saber qual branch e de qual repositório será realizado o deploy.

  3. Crie uma conta no Heroku. www.heroku.com

  4. Quando sua conta estiver ok, crie um app e entre nas configurações.

  5. Vá na aba 'Deploy' e siga o pequeno tutorial no fim da página indicado como 'Deploy using Heroku Git'.

  6. Execute os comandos abaixo como pede o tutorial, mas atenção ao executar o último:

$ git add .
$ git commit -am "alguma mensagem"
$ git push heroku master

O Heroku CLI vai reclamar de não ter encontrado um buildpack padrão para esse tipo de aplicação. Adicione um buildpack da sua preferência para o Flutter ou utilize esse comando:

$ heroku buildpacks:set diezep/flutter -a <nome-da-sua-aplicacao>

Fonte do buildpack: https://github.com/diezep/heroku-buildpack-flutter

  1. Agora você vai buildar sua aplicação:
$ flutter build web

Ao término da execução você deve ver uma pasta "build" e dentro dela outra pasta com "web". Esses arquivos serão enviados ao Heroku. Verifique sempre sua branch antes de enviar o build, pois se estiver numa branch desatualizada ou que faça comunicação local com banco de dados/API a aplicação não vai funcionar corretamente.

  1. Depois do build, insira o comando:
$ git push heroku development:main

Se deseja enviar a branch development para testar o deploy utilize o comando acima. Se sua branch chama alastor, troque por:

git push heroku alastor:main

Se deseja enviar o deploy de outra branch, troque para:

git push heroku <branch>:main

Se a versão enviada para o Heroku não for a correta, a sugestão é excluir a pasta "build" e tentar novamente o comando de build.

$ flutter build web

Depois tente novamente o comando de push com a branch desejada.

Dicas

Caso seu projeto não esteja rodando corretamente, siga esses passos:

  • Já verificou os imports do projeto? (arquivo pubspec.yml)
  • Sua classe está exportada corretamente?
  • Você adicionou algum pacote que tenha problemas de nomenclatura com outros pacotes?

Se você já verificou tudo isso, tente esse comando: flutter packages get

Clone repository
  • Testes
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • ci
  • configuracao
  • gp
  • Home
  • instalacao
  • mockups
  • requisitos
  • sprints