Skip to content

PhilipeeX/jedis-project

Repository files navigation

Jedis project

Ruby on Rails CI GitHub Tag Static Badge Static Badge Static Badge GitHub repo size GitHub issues GitHub closed issues GitHub closed pull requests

Screenshots

App Screenshot

Este projeto consiste na criação de um sistema de gerenciamento de munícipes, desenvolvido em Ruby e Ruby on Rails, abordando tanto aspectos do backend quanto do frontend. O sistema permite a realização de operações CRUD apenas(Create, Read, Update) para munícipes, com validações dos campos e a peculiaridade de que os munícipes podem estar ativos ou inativos.

Stack utilizada

Front-end: TailwindCSS

Back-end: Ruby 3.1.2, Rails 7.0.8

Database: PostgreSQL

Acesso à aplicação em deploy através do link abaixo

https://jedis-project.onrender.com

obs: É necessário aguardar alguns segundos até o carregamento da página porque é um serviço gratuito.

Rodando localmente

Clone o projeto

  git clone https://github.com/PhilipeeX/jedis-project

Entre no diretório do projeto

  cd jedis-project

Inicie o Docker

  docker-compose up -d

Acesse a aplicação em localhost porta 3000

Rodando os testes

Para rodar os testes, rode o seguinte comando

  bundle exec rspec --exclude-pattern 'spec/features/**/*_spec.rb' --format progress

Setups e deploys

Esse arquivo realiza uma série de tarefas automatizadas para melhorar a qualidade e facilitar o processo de integração contínua.

Rubyonrails.yml

  • Executa testes automatizados.
  • Realiza verificações de segurança, incluindo análises com o Brakeman.
  • Verifica a qualidade do código usando linters como rubocop, garantindo consistência e boas práticas.
  • Além disso, quando um PR é mergeado na 'main', configurei para que automaticamente uma nova imagem Docker seja construída e enviada para o Dockerhub.

Imagem do projeto no Dockerhub

Atribuições

Tip

  • Crie um CRUD de municipes (Exceto deletar). O munícipe tem status ativo e inativo.
    Issue relacionada

Tip

  • Dados do munícipe: Nome completo, CPF, CNS(cartão nacional de saúde), Email, Data nascimento, Telefone (código do país e ddd), Foto e status.
  • Todos os dados do munícipe são obrigatórios;
  • CPF, CNS,Email devem ser válidos;
  • Tenha atenção a data de nascimento. Valide os casos impossíveis/improváveis de serem válidos;
  • Foto do munícipe deve ser tamanhos diferentes para servir vários casos.
    Pull Request

Tip

  • Ter a entidade relacional chamada enderenço com Campos: CEP, Logradouro, complemento, bairro, cidade, UF e código IBGE;
  • Todos os dados são obrigatórios, exceto complemento e código IBGE;
    Issue relacionada

Important

  • Após criar/atualizar um munícipe, você deve mandar um Email e sms ao mesmo informando sobre o cadastro de suas informações e quando o seu status sofrer alteração;
  • Filtrar municipes por dados dele e/ou de endereço. É livre a escolha do que deve ser feito.
    Pull Request release v0.2

Aprendizados

Para envio de sms optei pela utilização da gem Twilio, que se mostrou relativamente fácil de implementar.

No entanto, ao perceber que esta era uma solução paga, iniciei a busca por alternativas que me permitissem realizar o envio de SMS de maneira gratuita.

Após considerar ambas as opções, optei por manter o código pronto, com a lógica da gem Twilio comentada, possibilitando sua rápida ativação quando necessário.

Então para utilizar a gem Twilio, será necessário adicionar as seguintes variáveis de ambiente em credentials

Rails.application.credentials.twilio[:account_sid]

Rails.application.credentials.twilio[:auth_token]

Rails.application.credentials.twilio[:twilio_phone]

Caso contrário, ao remover o comentário '#' do código das regras para envio de sms o seguinte erro ocorrerá:

"[HTTP 400] 21608 : Unable to create record The number +5524 5525XXXX is unverified. Trial accounts cannot send messages to unverified numbers; verify +5524 5525XXXX at twilio.com/user/account/phone-numbers/verified, or purchase a Twilio number to send messages to unverified numbers"

Apêndice

Author: Philipe Rodrigues ([email protected])

Voltar ao topo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published