Home | Sprints | Requisitos | Arquitetura | Configuração | Mockups | Banco de Dados | Instalação | Gerência de Projeto | Horários Disponiveis |
---|
Página de Configuração do Projeto
Back-end (API)
Requisitos:
- NodeJS + NPM
- Docker + Docker Compose
Para executar a API, você precisa clonar o projeto com o comando:
git clone http://tools.ages.pucrs.br/onyva/onyva-back.git
Em seguida, entre no repositório e execute npm install
. Se você não tiver o NPM instalado, é necessário que o faça antes de prosseguir.
Finalizada a instalação, suba o banco de dados MongoDB utilizando o Docker com o seguinte comando:
docker-compose up -d
(remova a flag -d
se desejar visualizar os logs do banco de dados durante sua execução)
Se tudo ocorreu certo, inicie a aplicação da API com o comando:
npm run dev
Se tudo correu certo, você poderá visualizar a documentação da API através do endereço http://localhost:3000/api/docs
.
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.
-
Instale o CLI do Heroku:
user$ sudo snap install --classic heroku
-
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.
-
Crie uma conta no Heroku. www.heroku.com
-
Quando sua conta estiver ok, crie um app e entre nas configurações.
-
Vá na aba 'Deploy' e siga o pequeno tutorial no fim da página indicado como 'Deploy using Heroku Git'.
-
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
- 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.
- 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