Aluna: Caroline Bohadana Rodrigues Viana
Matrícula: 232050975
A aplicação foi construída com o uso do framework Ruby (3.4.6) on Rails (8.0.2.1), seguindo as orientações apresentadas no livro Engineering Software as a Service: An Agile Approach Using Cloud Computing Second Edition, de Armando Fox and David Patterson, capítulo 4: SaaS Framework: Rails as a Model–View–Controller Framework, e seguindo o padrão de arquitetura Model-View-Controller (MVC). O objetivo é criar uma página web capaz de listar filmes de um banco de dados e permitir que o usuário os liste por título ou data de lançamento.
-
Configuração do Model (Dados):
- O Model
Moviefoi criado para representar os filmes no banco de dados. - Uma migration (migração) foi executada para criar a tabela
moviesno banco de dados, definindo as colunas:title,rating,descriptionerelease_date. - O banco de dados foi populado com dados iniciais através do arquivo
seeds.rb, o qual cadastrou quatro filmes de exemplo.
- O Model
-
Definição das Rotas (URLs): No arquivo
config/routes.rb, uma única linha (resources :movies) foi usada para gerar automaticamente todas as URLs necessárias para listar, ver, criar, editar e apagar filmes, seguindo as convenções RESTful. -
Implementação do Controller (Lógica):
- O
MoviesControllerfoi criado para gerenciar as requisições dos usuários. - O método
indexfoi implementado para buscar os filmes do banco de dados. Ele foi aprimorado para receber um parâmetro da URL (params[:sort]) e usar o método.orderdo ActiveRecord para ordenar a lista de filmes de acordo com o critério escolhido (título ou data de lançamento). - O controller passa a lista de filmes (
@movies) e a informação da coluna ordenada (@coluna_ordenada) para a View.
- O
-
Desenvolvimento da View (Visualização):
- O arquivo
index.html.erbfoi criado para exibir a lista de filmes. - Com o uso do ERB (Embedded Ruby), o loop (
<% @movies.each do |movie| %>) percorre a lista de filmes e exibe os dados de cada um em uma linha. - Nos cabeçalhos da tabela, foram adicionados links (
link_to) que, ao serem clicados, recarregam a página com os parâmetros de ordenação na URL (ex:?sort=title). - Uma lógica condicional (
if/else) foi implementada para adicionar uma classe CSS.sorteddinamicamente ao cabeçalho da coluna que está atualmente ordenada, permitindo o destaque visual.
- O arquivo
Pré-requisitos:
- Git
- Ruby
- Bundler (
gem install bundler) - Ruby on Rails (
gem install rails)
- Clonar o Repositório: execute o comando abaixo no terminal para baixar o código do GitHub:
git clone https://github.com/CarolB57/HW2.git- Entrar no Diretório do Projeto:
cd HW2- Instalar as Dependências: o Bundler irá ler o arquivo
Gemfilee instalar todas as bibliotecas (gems) que o projeto necessita.
bundle install- Configurar o Banco de Dados: os dois comandos a seguir irão criar o banco de dados, executar a migration para criar a tabela
moviese, em seguida, popular a tabela com os dados iniciais.
rake db:migrate
rake db:seed- Iniciar o Servidor: o comando abaixo inicia o servidor web local do Rails.
rails server- Acessar a Aplicação: no navegador, entre no link abaixo:
http://localhost:3000/movies