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.
Front-end: TailwindCSS
Back-end: Ruby 3.1.2, Rails 7.0.8
Database: PostgreSQL
https://jedis-project.onrender.com
obs: É necessário aguardar alguns segundos até o carregamento da página porque é um serviço gratuito.
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
Para rodar os testes, rode o seguinte comando
bundle exec rspec --exclude-pattern 'spec/features/**/*_spec.rb' --format progress
Esse arquivo realiza uma série de tarefas automatizadas para melhorar a qualidade e facilitar o processo de integração contínua.
- 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
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
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"
Author: Philipe Rodrigues ([email protected])