Esta é uma aplicação simples de controle de vendas, feita para o desafio de programação Rails da Nama.
A aplicação oferece para o usuário um formulário de upload de arquivo através do qual deve ser submetido um arquivo de texto contendo dados de vendas de uma empresa fictícia. Após a submissão do arquivo, os dados são salvos no banco de dados e é possível exibi-los na tela.
Seguem abaixo as instruções para obter uma cópia deste projeto em sua máquina local, para fins de desenvolvimento e execução de testes. Confira a seção Deployment para instruções de como instalar e executar a aplicação em ambiente de produção.
- Ambiente macOS ou Linux
- Compilador C (como gcc ou clang)
- Ruby versão 2.3 ou superior
- Bundler versão 1.14 ou superior
- SQLite versão 3
- zlib
- Node.js
- PostgreSQL (somente se quiser rodar em modo PRODUÇÃO)
Dica: no Ubuntu 16.04 é possível instalar todas as dependências acima
executando o script ubuntu-install-deps.sh
.
Após clonar este repositório para sua máquina local, entre no diretório raiz do repositório e instale as dependências da aplicação através do comando:
$ bundle install --path vendor/bundle --without production
Nota: se quiser executar a aplicação localmente em modo produção, você irá
precisar do PostgreSQL instalado localmente. Neste caso, suprima o --without production
do comando bundle install
.
Concluída a instalação, é preciso realizar a criação do banco de dados, com o seguinte comando:
$ bin/rails db:migrate
Após a criação do banco de dados, você poderá executar a aplicação através do comando:
$ bin/rails server
Nota: para modo produção, é preciso criar um banco de dados chamado
salesapp_production
no PostgreSQL, e um usuário salesapp
que possa
acessá-lo. Depois, os comandos são os seguintes:
$ export SALESAPP_DATABASE_PASSWORD=senha_do_usuario_salesapp_do_postgresql
$ RAILS_ENV=production bin/rails db:migrate
$ bin/rails assets:precompile
$ SECRET_KEY_BASE=`bin/rails secret` RAILS_SERVE_STATIC_FILES=TRUE bin/rails server -e production
Feito isto, basta apontar o navegador para o endereço http://localhost:3000 para acessar a aplicação.
Para executar os testes automatizados, após as instruções de instalação detalhadas na seção anterior, basta executar o seguinte comando:
$ bin/rails test
Nota: ao executar os testes, é também contabilizada a cobertura de código através da gem SimpleCov.
Este projeto possui documentação extensiva no diretório doc
. Recomenda-se
fortemente que contribuintes estudem essa documentação antes de realizar
mudanças no código, e que atualizem a documentação caso suas mudanças
necessitem.
Esta aplicação está preparada para deployment no Heroku, bastando para tanto seguir os passos na documentação do Heroku para Rails 5.
Para contribuir com o projeto, o requerimento mínimo é a leitura do arquivo doc/principal.md, onde existe uma explicação de alto nível sobre a aplicação, como ela está estruturada e como funciona.
- Thiago Sigrist (@sigriston)
MIT