- Versão do Ruby: 3.2.1 (ou a versão especificada no arquivo
.ruby-version
) - Versão do Rails: 8.0.2
- Banco de Dados: PostgreSQL (configuração padrão para projetos Rails modernos)
- Yarn: 1.22.19 (ou a versão especificada no ambiente)
- Node.js: 18.x (ou a versão especificada no ambiente)
- React: 17.x (ou a versão especificada no
package.json
)
O projeto consiste em um scraper de perfis do Github. Funcionalidades:
- Tela de cadastro e login de usuário com autenticação nativa do Rails 8.
- Tela de cadastro de perfil do Github (scraper síncrono)
- Tela de edição de perfil do Github apenas com os campos editáveis: nome e url do perfil. Ao salvar, será escaneado novamente para atualizar dados.
- Tela de visualização do perfil do Github com todos as informações
- Exclusão de perfis de Github
- Listagem de perfis com as informações do nome e endereço encurtado e os botões de ações para visualizar, editar e excluir.
- Implementação nativa de um encurtador de url, usando apenas os recursos do rails
- Filtro de busca pelos campos nome, usuário do Github, organização ou localização
- Certifique-se de ter o Ruby, Node.js e o PostgreSQL instalados.
- Instale as dependências do backend com:
bundle install
- Instale as dependências do frontend com:
yarn install
- Configure o banco de dados:
rails db:setup
- Inicie o projeto com o comando:
bin/dev
- Acesse a aplicação em http://localhost:3000.
-
Inicie o projeto com o comando:
docker compose up --build
-
Acesse a aplicação em http://localhost:3000.
-
Instale dependências React
Warning
Você pode receber o erro ActionView::Template::Error (The asset ‘application.js’ is not present in the asset pipeline.
O erro ocorre porque os recursos não foram compilados no modo de desenvolvimento, bin/rails assets:precompile
Caso receba erros de permissão para os diretórios tmp, log, db ou node_modules, pode dar permissão ex: chmod -R 0777 node_modules tmp log db
Executa os testes (rspec) no container app
:
docker compose run --rm test
ou
docker compose exec app bash
bundle exec rspec spec/
- Resumo: Inicia os containers definidos no arquivo
docker-compose.yml
. Se os containers ainda não existirem, ele os cria. Esse comando também pode ser usado para rodar a aplicação. - Exemplo:
docker compose up
- Resumo: Inicia os containers e recria as imagens se houverem alterações no Dockerfile ou no contexto de build. Isso garante que a aplicação seja reconstruída com as últimas mudanças.
- Exemplo:
docker compose up --build
- Resumo: Derruba os containers e remove redes, volumes e imagens associadas aos containers. Esse comando é útil quando você quer parar tudo e recomeçar.
- Exemplo:
docker compose down
- Resumo: Exibe os logs do serviço
app
definido nodocker-compose.yml
. É útil para verificar o que está acontecendo dentro do container ou identificar erros. - Exemplo:
docker compose logs app
- Resumo: Executa um comando dentro do container em execução, no caso
app
. No exemplo, é aberto um shell interativo (bash
) dentro do container, permitindo que você execute comandos dentro do ambiente do container. - Exemplo:
docker compose exec app bash
- Resumo: Comando do sistema operacional (não específico do Docker) que lista todos os processos em execução. Com
grep rails
, filtra os processos relacionados ao Rails. É útil para verificar se o servidor Rails está rodando dentro do container. - Exemplo:
ps aux | grep rails
- Resumo: Reconstrói as imagens Docker para os serviços definidos no arquivo
docker-compose.yml
, sem iniciar os containers. Pode ser útil para reconstruir as imagens quando há alterações no Dockerfile ou nas dependências. - Exemplo:
docker compose build
- Resumo: Executa um comando específico no container de um serviço. No exemplo, o comando
rails db:create
é executado no serviçoapp
, criando o banco de dados do Rails. Este comando é útil para rodar tarefas específicas dentro do container. - Exemplo:
docker compose run app rails db:create ou docker compose run app bundle exec rails db:create
- Resumo: Executa as migrações do banco de dados no container
app
. O comando aplica as mudanças no banco de dados de acordo com os arquivos de migração do Rails. - Exemplo:
docker compose run app rails db:migrate ou docker compose run app bundle exec rails db:migrate