Skip to content

nathanfmachado/credishop-challenge

Repository files navigation

README

Getting started:

  • Clone repo:

    git clone https://github.com/nathanfmachado/credishop-challenge.git

  • (Optional) Config asdf to manage ruby, nodejs and yarn versions:

    https://github.com/asdf-vm/asdf

    Ruby v2.7.4 - https://github.com/asdf-vm/asdf-ruby
    NodeJS v16.13.0 - https://github.com/asdf-vm/asdf-nodejs
    Yarn v1.22.17 - https://github.com/twuni/asdf-yarn

  • In the projects root path, run:

    bundle
    yarn
    sudo apt install redis-server

  • With the .env.sample file as guide, create a .env file and put your datebase credentials, example:

    DATABASE_HOST=localhost
    DATABASE_NAME=credishop-challenge
    DATABASE_USERNAME=postgres
    DATABASE_PASSWORD=postgres

    RAILS_MAX_THREADS=5
    SECRET_KEY_BASE=
  • To create, migrate and seed DB, run the development task:

    rails dev:setup

  • Finally, start redis and rails:

    redis-server
    rails s

Observações:

  • Foi utilizado 'scaffold' para criar os models/controllers/views/migrates/tests com maior agilidade
  • Foi utilizado um layout externo (que utiliza bootstrap) para melhor visualização, por isso é necessário rodar o projeto com acesso a internet, já que o layout está hospedado no S3 da AWS.
  • Foi utilizado sistema de autenticação básica com Devise (signin, signup, logout). Usuário padrão: admin@admin.com | 123456
  • Caso o calculo do desconto de INSS não esteja funcionando no formulário do Proponente, verifique se o redis está de pé (redis-server). O calculo do INSS é feito assim que o blur do input de Salário acontece.

- Requisitos ou melhorias que não foram desenvolvidas

  • Devido a falta de tempo, algumas features não foram desenvolvidas ou ficaram com problemas, como:
    • Testes
    • Listagem do relatório (foi feito apenas o gráfico)
    • Refinamento das views e formulários, além de validações mais elaboradas nos models

- Extras (Não requisitados no desafio)

  • Rake tasks para setup do ambiente de desenvolvimento e seeding
  • Informações segmentadas em várias tabelas, para que um Proponente possa ter vários contatos e/ou endereços
  • Adição dinâmica de contatos no formulário do Proponente, caso ele possua muitos contatos (não esta refinado)
  • Utilização de .env para centralizar variáveis de ambiente em um único arquivo e facilitar setup de ambientes de test, homologação e produção
  • Internacionalização com I18n de algumas features.

- Dúvidas? Sinta-se a vontade para me contactar: nathanfabiano@hotmail.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published