BookLovers é um webapp criado com o Framework Rails 6 com o objetivo de passar no teste da Zygo.
A aplicacão foi desenvolvida com Ruby on Rails e Bootstrap e as versões das ferramentas estão listadas abaixo:
- Ruby 2.7.2
- Rails 6.0.3
- Bootstrap 4.5.3
- Postgresql como banco de dados
- Devise para autenticacão dos admins
- Rspec e Capybara para escrever os testes
- Ransack para fazer as buscas
- Outras libs podem ser encontradas no Gemfile do projeto.
Para rodar o projeto na sua máquina e testar e fazer melhorias basta ter o Ruby instalado, e a gem Bundler e então é só seguir os passos abaixo:
$ git clone git@github.com:opedrosouza/booklovers.git
$ cd booklovers
$ bundle install
Crie um arquivo .env na raiz do projeto e coloque as credenciais do seu banco postgresql seguindo o exemplo do arquivo .env.sample
$ echo 'DATABASE_USER=seuusuariopsql
DATABASE_PASSWORD=suasenhapsql' >> .env
$ rails db:create db:migrate
$ rails s
Agora basta acessar no seu browser http://localhost:3000 e prontinho, aplicacão rodando.
Quando a aplicacão está rodando em ambiente de teste (na máquina local) os arquivos ficam salvos na própria máquina, mas quando vai pra producão preferi configurar um S3 usando o Digital Ocean Spaces, então se for subir a aplicacão em producão será necessário mudar as configuracões no arquivo .env com as credenciais do seu S3 e no arquivo config/storage da aplicacão.
Os teste foram escritos usando o Rspec e Capybara, todos os testes estão na pasta /spec da aplicacão, onde foram feitos os testes de controller, components, models e features, para rodar os testes na sua máquina basta entrar no diretório do projeto e rodar o seguinte comando:
$ rspec
Uma pasta chamada coverage será gerada que mostra a cobertura de testes da aplicacão em um arquivo html que pode ser aberto no browser.
Por diversão configurei o continuos integration e continuos deployment com o Github Actions e Heroku, assim toda vez que é aberto um pull request ou é feito um push para branch main é rodado os tests, então todo o processo fica automatizado evitando que eu suba para producão um código com erros.
Configurei uma pequena maquina no heroku para que fosse possível testar a aplicacão rodando em um ambiente de producão, para acessar e dar uma olhada sem precisar rodar na sua máquina visite: https://thebooklovers.herokuapp.com
Me envie um email em: opedrosouza@hotmail.com para saber mais detalhes e conversarmos um pouco.