Repositório feito para resolver o projeto final da disciplina Métodos de Programação que tinha como requisito a elaboração de sistema de questionários com usuários respondentes, criadores de questionário, usuários anônimos (que não precisam fazer login na plataforma) e um administrador para gerir o mesmo.
Neste projeto, a ideia inicial era criar um projeto em rails api + react, porém devido à alguns problemas enfrentados pelos membros do grupo, optamos por migrar de última hora para rails full stack. Portanto, os diretórios back-mp e front-mp são referentes às primeiras versões do projeto e podem ser desconsiderados para efeito de correção ou posterior consulta por quem quer que se interesse; e o diretório final-mp refere-se à versão final apresentada, já em rails full stack, ao professor em sala de aula.
Nessa seção iremos passar as instruções passo a passo para a instalação dos programas e frameworks necessários para rodar uma aplicação em ruby on rails, são eles:
-
Ruby
- Pelo terminal ,instale o curl (caso não tenha) com o comando
apt install curl
- Use o comando
curl -L get.rvm.io > rvm-install
para instalar o Ruby Version Manager (RVM) e em seguida use o comandobash < ./rvm-install
. - Abra o arquivo .bashrc no editor de texto e adicione no final do arquivo
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
- Deslogue e relogue na sua conta do computador ou reinicie o computador. Com isso o RVM já deve estar funcionando, para ter certeza rode
rvm -v
e verifique que está sendo retornado a versão do rvm. - Com o RVM instalado basta instalar a versão do ruby que estamos utilizando com o comando
rvm install 2.6.4
. - Com isso o Ruby deve estar instalado, para verificar rode
ruby -v
que irá retornar a versão 2.6.4, se tudo tiver funcionado.
- Pelo terminal ,instale o curl (caso não tenha) com o comando
-
Node.js
- No terminal rode
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
- sudo apt update && sudo apt install -y nodejs
- No terminal rode
-
Yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee/etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
-
PostgreSQL
- A instalação do postgree é um pouco mais complicada, portanto deixaremos aqui um tutorial explicando melhor como instalar e configurar o PSQL.
Para rodar o projeto basta seguir os seguintes passos:
- Entrar no diretório final-mp (
cd final-mp
) - Rodar o comando
gem install bundler
e em seguidagem install rails
. Para verificar se o rails foi corretamente instalado, rodarrails -v
- Rodar
bundle install
para instalar todas as gems necessárias - Rodar
rails db:create
e em seguidarails db:migrate
para setar o banco de dados - Por fim rodar
rails db:seed
para setar o BD com as instâncias que precisaremos para testar nossa aplicação
Agora o programa já deve estar pronto para ser utilizado, bata rodar rails s
para iniciar o servidor localmente, e acessar em algum browser o localhost referente à porta que foi iniciada pela sua máquina (geralmente é http://localhost:3000/). Por fim basta navegar pelo site e buscar a funcionalidade desejada. Para logar como criador de questionário ou como admin, as infromações de login se encontram no seeds.rb, também podemos cadastrar novos usuários, mas nesse caso eles serão apenas usuários respondentes.
Não implementamos a funcionalidade de responder questionário, apenas os métodos necessários para criar, editar e deletar os questionários; No entanto, no show do questionário colocamos uma pré visualização de como seria a página de responder questionário, se essa funcionalidade existisse.
- Para entrar no console do rails, use o comando
rails c
- Nele podemos usar a sintaxe do rails para modificar e acessar os elementos em nosso banco de dados, como por exemplo para criar um novo usuário fazemos
User.create(name: "exemplo", email: "[email protected]", password: "PasswordExample", password_confirmation: "PasswordExample", creator: false, admin: false)
- Para ver todas as instâncias de usuários podemos usar o comando
User.all
- Podemos procurar uma instância específica com o comando
User.find(id)
em que id é o número do id do usuário que estamos querendo acessar - Outra forma de procurarmos é com o comando
User.where(name: "exemplo")
que irá retornar todos os usuários com o nome "exemplo". - Para deletar uma instância basta usar
User.delete(id)
em que id é o id do usuário que estamos querendo deletar.
Os projetos em rails possuem diversos arquivos que são gerados automaticamente, os arquivos que são de fato editados pelos desenvolvedores podem ser encontrados em:
- Arquivos com as validações das classes: app/models
- Arquivo que mostra nossas tabelas do banco de dados: db/schema.rb
- Arquivos que vão nos ajudar a fazer os testes das classes: spec/factories
- Arquivos com os testes das classes: spec/models
- Para rodar o verificador de padrão de codificação, basta rodar no terminal o comando
rubocop
- Para rodar todos os casos de teste das classes e checar que está tudo funcionando corretamente, basta rodar o comando
rspec spec