Git Product home page Git Product logo

rails-api-movies's Introduction

API - Sistema de Avaliação de Filmes

Este projeto consiste em uma API para avaliação de filmes, desenvolvida utilizando o framework Ruby on Rails. Foi criado como um desafio no processo seletivo para uma vaga de desenvolvedor Ruby on Rails.

A API oferece aos usuários a capacidade de importar informações de filmes em larga escala a partir da API do TMDB (The Movie Database). Além disso, permite que os usuários submetam avaliações para vários filmes simultaneamente e consultem a média das notas atribuídas a cada filme.

As funcionalidades implementadas são acompanhadas por testes para garantir a robustez e a confiabilidade da aplicação. Para otimizar o desempenho e não bloquear o processo principal, as tarefas de importação de dados são executadas em segundo plano, utilizando o Sidekiq, uma solução de processamento de tarefas assíncronas para Ruby on Rails.

O projeto tem como base o desafio proposto pela Oxeanbits que inclui um esqueleto inicial do projeto disponível em fuzzy-invention, fornecendo uma base sobre a qual este projeto foi construído.

Funcionalidades

Importação de Filmes em Massa: Rota para a importação das informações de filmes em massa por meio de um arquivo CSV. Essa funcionalidade utiliza a API do TMDB (The Movie Database) para buscar e importar dados detalhados dos filmes fornecidos por ID ou nome, enriquecendo a base de dados da aplicação com informações precisas e atualizadas diretamente da fonte.

Avaliação de Filmes em Massa: Rota para submissão de avaliações de filmes em massa por meio de um arquivo CSV.

Autenticação de Usuários: Login com usuário padrão (login: admin@rotten e senha: admin).

Gestão de Usuários: Rota para criação de novos usuários.

Visualização de Avaliações: Exibe a média das notas de cada filme.

Gerenciamento de Filmes: Rota para visualizar, cadastrar e editar detalhes de filmes.

Requisitos:

  • ruby-3.1.4
  • rails 7.1.3
  • Redis (Para o Sidekiq)
  • sqlite3

Configuração e Instalação

Para configurar e rodar este projeto localmente, siga os passos abaixo:

  1. Clone o repositório para sua máquina local:
git clone https://github.com/thomasjteixeira/rails-api-movies
  1. Navegue até o diretório do projeto:
cd rails-api-movies
  1. Instale as dependências do projeto:
bundle install
  1. Crie e configure o banco de dados:
rails db:create db:migrate db:seed
  1. Adicione o arquivo o .env na raiz do projeto com base no .sample_env e insira a sua chave da API do TMBd. Para ter acesso a key da API do TMBd, veja em: https://developer.themoviedb.org/docs/getting-started

  2. Inicie o servidor Rails:

rails server

Executando os Testes

Este projeto utiliza RSpec para testes. Para executar todos os testes:

bundle exec rspec

Principais Gems Utilizadas

themoviedb-api: Integração com a API do TMDB para importação das informações atualizadas dos filmes.

sidekiq: Processamento de jobs em background.

rspec-rails: Framework de testes para Rails.

vcr: Gravar e reproduzir requisições HTTP nos testes.

shoulda-matchers: Fornece matchers para facilitar os testes das funcionalidade comum do Rails, como validações, associações e muito mais.

rails-api-movies's People

Contributors

thomasjteixeira avatar marinofull avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.