Desenvolvimento de um Portal Web para Viajantes Utilizando Ruby on Rails e Bootstrap



Documentos relacionados
Manual do Instar Mail v2.0

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

V1.1 SITE EM UM SITE 11/2015 MINUTOS APRENDA A PROGRAMAR IMAGINE FAZER O SEU PRIMEIRO PROGRAMA EM 180 SEGUNDOS

* Técnicas Avançadas. Desenvolvimento de SOFTWARES. Sistemas de Gerenciamento de Conteúdo com Joomla e Magento

4 Desenvolvimento da ferramenta

Tutorial Básico. Instalando e testando o Ruby on Rails no Windows

CENTRO UNIVERSITÁRIO DE ENSINO SUPERIOR DO AMAZONAS - CIESA CENTRO DE PROCESSAMENTO DE DADOS CPD MANUAL DE UTILIZAÇÃO DO MOODLE 2.

Guia do Usuário. idocs Content Server v

MANUAL MOODLE - PROFESSORES

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

II Semana de Tecnologia da Informação. Rails Framework

Manual do Usuário CMS WordPress Versão atual: 3.0

PORTAL DE ATENDIMENTO Manual do Usuário VERSÃO 2.0

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

MULTIACERVO Implementações da versão 20-1

MANUAL WEBDRIVE. webdrive.whirlpool.com.br

Manual do Teclado de Satisfação Online WebOpinião

O Gerenciamento de Documentos Analógico/Digital

LINX POSTOS AUTOSYSTEM

MANUAL DA SECRETARIA

HTML Página 1. Índice

Manual do usuário Sistema de Ordem de Serviço HMV/OS 5.0

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

Lazarus pelo SVN Linux/Windows

MANUAL MÓDULO CIELO QUERY COMMERCE (VERSÃO 1.6.1) QUERY COMMERCE

Usando o Conference Manager do Microsoft Outlook

Atualização, backup e recuperação de software

Manual de Rotinas para Usuários. Advogados da União. Procuradoria da União no Estado do Ceará PU/CE SAPIENS. Sistema da AGU de Inteligência Jurídica

Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO

Manual das planilhas de Obras v2.5

O Framework Rails. Diego Rubin

Manual de Instalação

Pró-Reitoria de Administração - PRAd Assessoria de Informática - AI SISTEMA DE PUBLICAÇÃO DE LICITAÇÕES. Manual de Procedimentos

MANUAL CHAT DE ATENDIMENTO VIASOFT

O QUE É A CENTRAL DE JOGOS?

Manual de Instalação. Instalação via apt-get. SIGA-ADM versão 12.06

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

LGTi Tecnologia. Manual - Outlook Web App. Soluções Inteligentes. Siner Engenharia

Passo a Passo do Cadastro Funcionários no SIGLA Digital

Portal do Projeto Tempo de Ser

DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SETOR DE ESTÚDIO E SUPORTE MANUAL DE UTILIZAÇÃO DO WEBMAIL DA FTC EAD

Manual de Utilização do PDV Klavix

Padrão ix. Q-Ware Cloud File Publisher Manual para realização do Donwload de Arquivos. Versão

Software Planejamento Tributário

1 ACESSO PARA SECRETÁRIA CONFIGURAR HORÁRIOS DE ATENDIMENTO BLOQUEANDO E HABILITANDO HORÁRIOS PRÉ-DEFININDO PARÂMETROS DE

GUIA RÁPIDO DO e-livro. Iniciando

Wordpress - Designtec. Manual básico de gerenciamento Práticas de Geografia

Padrão ix. Q-Ware Cloud File Publisher Manual do Usuário QWCFP. Versão

Prefeitura Municipal de Sete Lagoas Secretaria de Planejamento Orçamento e Tecnologia Subsecretaria de Tecnologia da Informação

Manual do Aluno para o Curso do SEER à Distância

Primeiros passos das Planilhas de Obra v2.6

02 - Usando o SiteMaster - Informações importantes

Relatório referente ao período de 24 de abril de 2007 a 29 de maio de 2007.

Desenvolvendo Websites com PHP

... MANUAL DO MODERADOR SERVIÇOS DE WEB

WordPress Instruções de integração com PayPal

Prezado aluno, 1 - ) Clique no link que segue: ) Clique em iniciar teste: 3-) Verifique a velocidade:

Manual do usuário. Viewer

Capítulo 1. Guia de Início Rápido. Você vai aprender a programar a sua primeira reunião em 5 passos fáceis.

Manual de usuário Portal Cliente

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual

Manual de Instalação do e.sic - Sistema Municipal de Informações ao Cidadão

Atualização, Backup e Recuperação de Software. Número de Peça:

Tutorial de instalação do ambiente Ruby, Ruby on Rails e MySQL no Ubuntu

Lógica de Programação

Tutorial Moodle ESDM - professores

Manual Rápido de Registro e Configuração do DJPDV

Introdução ao icare 2

Gestão Unificada de Recursos Institucionais GURI

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

SIE - SISTEMA DE INFORMAÇÕES PARA O ENSINO CADASTRO DE FUNCIONÁRIOS

Movie Maker. Fazer download de vídeos no You Tube. Para publicar no You Tube. O Windows Movie Maker 2 torna fácil para qualquer pessoa

Sistema Integrado de Atendimento

Gerenciamento do ciclo de vida de um documento Simone de Abreu

Equipe OC- Olimpíadas Científicas

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

MANUAL DE EMISSÃO E INSTALAÇÃO DO CERTIFICADO TIPO A1 (GOOGLE CHROME)

NOTA FISCAL DE SERVIÇO ELETRÔNICA (NFS-e) Manual de Utilização Envio de arquivos RPS. Versão 2.1

Endereço de acesso:

Introdução ao HTML Utilizando frames Hospedando seu site na WEB

Manual Operacional do Assessor Jurídico

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Manual do Usuário Publicador

MANUAL DO USUÁRIO PORTAL DO PROFESSOR

Manual do Usuário ipedidos MILI S.A. - D.T.I.

Professor Paulo Lorini Najar

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

Tutorial para Atualização do Laboratório de Informática

Guia para utilização do ambiente de EaD UniRitter

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Núcleo de Relacionamento com o Cliente. de Relacionamento com o Cliente GUIA PRÁTICO DE USO. Produtos

Manual de Instalação SIM/SINASC

DESENVOLVIMENTODE APLICAÇÕESPARAINTERNET:PHP. VitorFariasCoreia

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

PBworks - Um novo nome para o mesmo grande serviço

Google Drive. Passos. Configurando o Google Drive

Transcrição:

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Trabalho de Conclusão de Curso Atividade Prática de Desenvolvimento de Software Jackson Hélio de Cerqueira 8386 André Marcos Silva (Orientador) Atividade Prática de Desenvolvimento de Software Desenvolvimento de um Portal Web para Viajantes Utilizando Ruby on Rails e Bootstrap Jackson Hélio de Cerqueira

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Desenvolvimento de um Portal Web para Viajantes Utilizando Ruby on Rails e Bootstrap Trabalho submetido à Coordenação de Ciência da Computação da Faculdade Campo Limpo Paulista como requisito parcial para obtenção do título de Bacharel em Ciência da Computação. Campo Limpo Pta. (SP), 06 de Junho de 2014. Jackson Hélio de Cerqueira Banca examinadora Prof. Me. André Marcos Silva (Orientador) Prof. Dr. Osvaldo Luís de Oliveira Prof. Dr. Luís Mariano del Val Cura (Suplente) 2

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Desevolvimento de um Portal Web para Viajantes Utilizando Ruby on Rails e Bootstrap SUMÁRIO RESUMO... 4 1. PROPOSTA... 4 Motivação... 4 Objetivos... 4 Metodologia de Trabalho... 4 2. RESULTADOS... 5 Apresentação Funcional... 5 Especificação Técnica... 6 Problemas Encontrados... 14 3. CONCLUSÕES... 15 4. REFERÊNCIAS ÚTEIS... 16 ANEXO A MANUAL DE USUÁRIO... 17 ANEXO B PROJETO DE SOFTWARE... 24 ANEXO C MANUAL DE OPERAÇÃO E IMPLANTAÇÃO... 28 3

RESUMO Este trabalho detalha o desenvolvimento de um sistema web para viajantes, onde de forma simples e prática o viajante possa gerenciar suas viagens e compartilhar roteiros e gastos com seus seguidores. Neste trabalho é detalhado o desenvolvimento do sistema web baseado na linguagem de programação Ruby utilizando o framework Rails, que proporciana maior agilidade no desenvolvmento de sistemas web, também é detalhado as principais vantagens na utilização do framework. 1. PROPOSTA Com o propósito de desenvolvimento de um sistema web, neste trabalho é mostrado o desenvolvimento do sistema utilizando Ruby on Rails. Rails é um framework escrito na linguagem de programação Ruby que promete aumentar a velocidade e a facilidade no desenvolvimento de websites orientados a banco de dados. É detalhado os principais pontos que fazem com que o framework traga agilidade no desevolvimento de websites. Motivação A motivação desse trabalho é o aprendizado de novas ferramentas de desenvolvimento web com a finalidade de melhorar, facilitar e agilizar o desenvolvimento no dia-a-dia. Objetivos Este trabalho tem o objetivo de detalhar o desenvolvimento de um sitema web para viajantes, onde de forma simples e prática o viajante possa gerencar suas viagens e compartilhar roteiros e gastos com seus seguidores. Neste trabalho é detalhado o desenvolvimento do sistema web baseado na linguagem de programação Ruby utilizando o framework Rails, assim como os principais detalhes técnicos do framework. Metodologia de Trabalho Para o desenvolvimento do sistema web, serão utilizadas as seguintes ferramentas: Sublime Text v2: Ambiente de desenvolvimento (IDE) que gera códigos em Ruby e em outras diversas linguagens de programação (Sublime, 2014). Bootstrap v3.1.1: Framework para desenvolvimento front-end, desenvolvido em CSS (Cascading Style Sheet) e Javascript, proporciona um elegante design as suas páginas HTML (Hypertext Markup Language) de forma simples e prática (Bootstrap, 2014). 4

MySQL v5.5.35.0: Banco de dados de código aberto (open source). É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo (MySQL, 2014). Ruby on Rails v4.1.0: Mais conhecido como Rails, é um framework de código aberto (open source) escrito na linguagem de programação Ruby que promete aumentar a velocidade e a facilidade no desenvolvimento de websites, uma vez que é possível criar aplicações com base em estruturas pré-definidas. As aplicações criadas utilizando o framework Rails são desenvolvidas com base no padrão de arquitetura (MVC) Model-View- Controller (Ruby on Rails, 2014). Os requisitos para o desenvolvimento do sistema web foram feitos com base nas diversas ferramentas já existente no mercado web para viajantes e também em redes sociais. Alguns dos websites consultados e analisados foram: Facebook (Facebook, 2014), Instagram (Instagram, 2014), TripAdvisor (TripAdvisor, 2014) e TripIt (TripIt, 2014). 2. RESULTADOS Apresentação Funcional Neste trabalho é desenvolvido um sistema web para viajantes, onde de forma simples e prática o viajante possa gerenciar suas viagens e compartilhar roteiros e gastos com seus seguidores. As principais funcionalidades do sistema são: Cadastro de usuários Troca de senhas Cadastro de viagens Cadastro de gastos da viagem Cadastro de atividades da viagem Seguir (follow) usuários do sistema. Consultar viagens de seguidores Compartilhar viagens com seguidores Comentar viagens de seguidores Consultar futuras viagens O acesso ao sistema é restrito, somente usários que possuem credenciais para efetuar o login (usuário e senha) terão acesso. As credenciais podem ser obtidas de forma simples e rápida utilizando o link de acesso para página de cadastro de novos usuários que se encontra disponível na (Home) página inicial do sistema. 5

Após a validação das credenciais (usuário e senha) serem realizadas com sucesso, o usuário será redirecionado para a página inicial do sistema onde terá acesso as principais funcionalidades mencionadas acima, conforme demostrado na Figura 1. Figura 1 - Página Inicial do sistema web Informações detalhadas de uso dessas funcionalidades estão disponíveis no Manual de Usuário no Anexo A deste documento. Especificação Técnica Como proposto, neste capítulo será apresentado as especificações técnicas utilizadas no desenvolvimento do sistema web, assim como as principais vantagens da utilização do framework. Ruby Desevolvida por Yukiro Matsumoto no Japão em 1993, reconhecida no mundo apenas em 2000. Ruby se tornou popular devido ao grande sucesso do framework Ruby on Rails. Ruby é uma linguagem de programação interpretada orientada a objetos. Quando dizemos que Ruby é uma linguagem interpretada, isso significa que código Ruby é compilado por um interpretador durante a execução (assim como Javascript e PHP). Tudo que é manipulado no Ruby é um objeto (object) e o resultado da manipulação também é objeto. Ela possui vários recursos para processar arquivos de texto e para fazer tarefas de gerenciamento de sistema (assim como o Perl). Ela é simples, direta ao ponto, extensível e portável. 6

Ruby é uma parte fundamental do sucesso do Rails. Rails usa Ruby para criar o que é chamado de linguagem de domínio específico (DSL). No caso, o domínio é o de desenvolvimento de web. Quando você está trabalhando no Rails, é quase como se você estivesse escrevendo códigos em uma língua que foi projetado especificamente para a construção de aplicações web, uma língua com o seu próprio conjunto de regras e gramática. Recursos da linguagem: Ruby tem uma sintaxe simples, parcialmente inspirada por Eiffel e Ada. Ruby tem recursos de tratamento de execeções, assim como Java e Phyton, facilitando o tratamento de erros. Ruby é uma linguagem completa e pura orientada a objetos. A orientação a objetos do Ruby é desenhada cuidadosamente para ser completa e aberta a melhorias. Ruby tem blocos em sua sintaxe (código delimitado por {...} ou do...end). Ruby tem um garbage colletor que realmente é do tipo que marca-e-limpa. Ele atua em todos os objetos do Ruby. Ruby é altamente portável: é uma linguagem desevolvida em sua maioria no Linux, mas funciona em muitos tipos como: UNIX, DOS, Windows 95/98/Me/NT/200/XP, MacOS, BeOS, OS/2 etc. Ruby on Rails Mais conhecido como Rails, é um framework multiplataforma de código aberto (open source), escrito na linguagem de programação Ruby. Rails é muito bem pensado e prático. Ele ajuda a construir rapidamente websites poderosos com códigos limpos e torna a manutenção fácil de ser feita, uma vez que é possível criar aplicações com base em estruturas pré-definidas. Rails fornece uma poderosa camada de abstração de banco de dados chamado Active Record, que trabalha com todos sistemas de banco de dados populares. Acima de tudo, o Rails é opinionated software. Ele tem uma filosofia da arte do desenvolvimento web que é levada muito a sério. Felizmente, esta filosofia é centrada em torno de beleza e produtividade. Originalmente criado por David Heinemeier Hansson, Rails era iniciamente apenas um sistema no formato wiki, chamado na época de Instiki. A primeira versão, lançada em julho de 2004, de que é hoje o framework Rails foi extraído de um mundo real, a aplicação de trabalho: Basecamp, da empresa 37signals. Os criadores do Rails retiraram todas as partes específicas do Basecamp e o que restou foi Rails. 7

Por ter sido extraído de uma aplicação real, Rails é prático e livre de recursos desnecessários. Rails foi projetado com agilidade em mente e que leva cada um dos princípios ágeis para o coração quase obsessivamente. Com Rails, você pode responder às necessidades dos clientes com rapidez e facilidade. Rails faz isso, aderindo a seu próprio conjunto de princípios, todos os quais ajudam a tornar o desenvolvimento ágil possível. Rails segue o princípio don t repeat yourself (DRY), que estabelece que as informações em um sistema devem ser expressas em um só lugar. Um dos princípios centrais da filosofia do Rails é a noção de menos software (less software), isso significa usar convenção sobre configuração (Convention over configuration), escrevendo menos código e acabar com as coisas que desnecessariamente aumentam a complexidade de um sistema. Em resumo, less software significa menos código, menos complexidade e menos bugs. MVC Rails utiliza o padrão de arquitetura MVC (Model-View-Controller) que consiste na divisão lógica de aplicação e de trabalho em três categorias dististas: Model, View e Controller. No MVC, o modelo (Model) representa os dados, a visão (View) representa a interface de usuário e o controlador (Controller) direciona toda a ação. Rails é um conjunto de bibliotecas, cada um com uma tarefa especializada. Juntos, estes indivíduos compõem o framework Rails. Das várias bibliotecas que compõem Rails, três delas mapeam diretamente para o padrão MVC, conforme Figura 2: Figura 2 Arquitetura MVC no Ruby on Rails 8

Active Record: Uma biblioteca que lida com abstração de banco de dados e interação Action View: Responsável pela organização da resposta, sistema de templates que gera os HTML Action Controller: Uma biblioteca para manipular o fluxo de aplicação e os dados vindo do banco de dados. Rails vem com uma série de scripts chamados geradores (generators) que são projetados para tornar o seu desenvolvimento mais fácil através da criação de tudo o que é necessário para começar a trabalhar em uma tarefa particular. Uma delas é o gerador de nova aplicação (new application generator), que irá fornecer uma aplicação Rails pré-definida para que você não tenha que escrevê-la do zero. Para usar este gerador, navegue até o diretório onde deseja criar o seu projeto e digite em um terminal: rails new <nome_do_seu_projeto> Depois de executado o comando mencionado acima, acesse o diretório do seu projeto. No diretório em questão existe uma série de arquivos e pastas geradas automaticamente que compõem a estrutura de uma aplicação Rails, conforme Figura 3. Figura 3 Estrutura dos arquivos e pastas gerados por padrão no Rails Um resumo básico sobre a estrutura é descrito abaixo: app/ - Contém os controllers, models, views, helpers, mailers e assets da sua aplicação 9

bin/ - Contém os scripts que inicializam sua aplicação. config/ - Contém os arquivos de routes, database e outros tipos de arquivos. config.ru Arquivo de configuração para servidores em Rack db/ - Contém o esquema (schema) do banco de dados, assim como as migrações de banco de dados. Gemfile, Gemfile.lock - Esses arquivos permitem que você especifique as bibliotecas (gem) que são necessárias para a sua aplicação Rails lib/ - Arquivos estendido para a sua aplicação log/ - Arquivos de log public/ - Contém arquivos estáticos e ativos compilados. Rakefile - Esse arquivo localiza e carrega as tarefas que podem ser executadas a partir da linha de comando README.rdoc - Este é um breve manual de instruções para a sua aplicação README.md - Este é um breve manual de instruções para a sua aplicação test/ - Arquivos de testes tmp/ - Arquivos temporários da sua aplicação vendor/ - Um lugar para todos os códigos de terceiros Para iniciar o servidor da aplicação Rails deve-se utilizar o comando: rails server ou simplesmente rails s. Isto irá iniciar WEBrick, um servidor web distribuído com Ruby por padrão. Para ver o aplicativo em ação, abra uma janela do navegador e navegue até http://localhost:3000. Você deverá ver a página de informações do padrão Rails: 10

Figura 4 Página de boas vindas após iniciar o servidor Rails Uma das principais características que permitiu muita exposição para Rails é o comando scaffold. Scaffold é uma maneira rápida de gerar algumas das principais peças de uma aplicação. Se você quiser criar os modelos (models), visualizações (views) e controladores (controllers) de um novo recurso em uma única operação, scaffold é a ferramenta para o trabalho. Ele ajuda automatizar tarefas repetitivas e geralmente remover as chances de erros durante a criação de novos arquivos, ao contrário do desenvolver, o gerador nunca vai esquecer como nomear um arquivo, nem mesmo ele vai fazer um erro de digitação ao criar uma classe. Para a utilização desse gerador você terá que executar o comando abaixo informando-lhe que você quer um scaffold chamado no caso de Post: rails generate scaffold NAME [field:type field:type] rails generate scaffold Post name:string title:string content:text O gerador cria automaticamente vários arquivos para a sua aplicação, juntamente com algumas pastas e edita seu arquivo de rotas (config/routes.rb). A figura 5 demostra uma visão geral do que ele cria: 11

Figura 5 Estrutura dos arquivos gerados pelo scaffold Para desevolver uma aplicação em Rails sem a utilização do scaffold o desenvolver precisa conhecer muito bem o funcionamento do framework. Embora o comando scaffold crie diversos arquivos e acelere o desenvolvimento, o código que ele gera provavelmente não será o código perfeito para sua aplicação. Você muito provavelmente vai querer customizar o código gerado. Muitos desenvolvedores experientes em Rails evitam utilizar o scaffold completamente, preferindo escrever todo ou a maioria de seu código fonte a partir do zero. Rails, no entanto, faz com que seja muito simples de customizar modelos (model) para os modelos gerados, controladores (controllers), visualizações (views) e outros arquivos de origem. 12

Para criar um novo controller, deve-se executar o comando abaixo informandolhe o nome do controlador e nome da ação desejada, no exemplo abaixo, chamado de "welcome " e "index": rails generate controller welcome index Após a execução do comando acima, alguns arquivos foram gerados, conforme demostrado na Figura 6: Figura 6 Estrutura dos arquivos gerados pelo gerador de controllers O mais importante deles é claro, o controller, localizado em app/controllers/welcome_controller.rb e a view, localizado em app/views/welcome/index.html.erb. Para criar um novo model, deve-se executar o comando abaixo informando-lhe que você quer um model chamado no caso de Article: rails generate model NAME [field:type field:type] rails generate model Article title:string text:text Com esse comando dissemos para o Rails que queremos um modelo de Article, com o atributo title do tipo string e um atributo de texto do tipo texto. Esses atributos são automaticamente adicionados à tabela de articles na base de dados e mapeado para o modelo de article. O gerador cria automaticamente um novo arquivo de modelo no diretório app/models e vários outros arquivos de boot. Entre eles estão uma unidade de teste (para testar a funcionalidade do seu modelo) e uma migração (migrate) de banco de dados. A migração do banco de dados contém instruções para a criação da tabela e os campos no banco de dados. Sempre que você criar um novo model, a migração é criada junto com ele. 13

Figura 7 Exemplo de um arquivo de migração (migrate) Por si só, essa migração não faz nada. Realmente, é apenas uma simples classe Ruby. Se você quer que ele faça algum trabalho e criar uma tabela no banco de dados para você, você precisa executá-lo. Para executar uma migração, você usa o built-in db:migrate ou apenas rake db:migrate tarefa Rake que o Rails fornece. Figura 8 Retorno da execução do comando de migração (migrate) Para maiores detalhes do projeto como: modelagem do banco de dados, diagrama DER (Diagrama Entidade Relacionamento), diagrama de classes e objetos dos projetos desenvolvidos para o sistema, podem ser vistos no Projeto de Software no Anexo B deste documento. 14

Problemas Encontrados Durante o desenvolvimento do sistema, foi encontrado apenas o problema relacionado a falha ao instalar o gem (plugin) rmagick, esse plugin é utilizado para o gerencimanento de imagens do sistema web. Para solucionar esse problema foi necessário a instalação dos pacotes a seguir no servidor linux, pois esse plugin tem dependências com eles: sudo apt-get install imagemagick sudo apt-get install graphicsmagick-libmagick-dev-compat sudo apt-get install libmagickwand-dev Após a instalação dos plugins o sistema funcionou corretamente. 3. CONCLUSÕES O desenvolvimento do sistema web utilizando os frameworks: Rails e Bootstrap, proporcionou um desenvolvimento de um sistema de alta qualidade, código limpo, organizado e estrutural, tornando a manutenção e a continuidade do sistema uma tarefa simples. O tempo de desenvolvimento também é um ponto importante a ser mencionado, uma vez que o Rails possui muitos plugins (gems) desenvolvidos pela comunidade Rails que facilitam e agilizam o desenvolvimento de websites. Vale ressaltar também que o desenvolvimento desse trabalho proporcionou um grande aprendizado, pois as ferramentas utilizadas são bastante utilizadas em grandes empresas de desenvolvimento web. 15

4. REFERÊNCIAS ÚTEIS Bootstrap [on-line]. Site do framework front-end Bootstrap. Disponível em: http://getbootstrap.com/. Acessado em: 4 de Março de 2014. Cloves Carneiro Jr., and Rida Al Barazi (2010). Beginning Rails 3 (Expert's Voice in Web Development). Apress. New York. Facebook [on-line]. Site da rede social Facebook. Disponível em: http://www.facebook.com. Acessado em 25 de Fevereiro de 2014. Griffiths, David J. (2009). Head First Rails: A Learner's Companion to Ruby on Rails. O'Reilly Media. Instagram [on-line]. Site da rede social Instagram. Disponível em: http://www.instagram.com. Acessado em 25 de Fevereiro de 2014. MySQL [on-line]. Site do banco de dados MySQL. Disponível em: http://dev.mysql.com. Acessado em 6 de Março de 2014. Oliveira Junior, Eustaquio Rangel de (2006). Ruby Conhecendo a linguagem. Brasport. Rio de Janeiro. Ruby on Rails [on-line]. Documentação de Referência Ruby on Rails. Disponível em: http://guides.rubyonrails.org/index.html. Acessado em 7 de Março de 2014. Sam Ruby, Dave Thomas, David Heinemeier Hansson (2013). Agile Web Development with Rails 4. Pragmatic Bookshelf Smyth, Neil (2010). Ruby Essentials. [on-line]. Disponível em: http://www.techotopia.com/index.php/ruby_essentials. Acessado em 9 de Abril de 2014. Sublime [on-line]. Site do ambiente de desenvolvimento (IDE). Disponível em http://www.sublimetext.com/2. Acessado em 1 de Março de 2014. TripAdvisor [on-line]. Site da rede social de viagem TripAdvisor. Disponível em: http://www. tripadvisor.com. Acessado em 27 de Fevereiro de 2014. TripIt. [on-line]. Site de gerenciamento de viagens TripIt. Disponível em: http://www.tripit.com. Acessado em 27 de Fevereiro de 2014. 16

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Desenvolvimento de um Portal para Viajentes Utilizando Ruby on Rails e Bootstrap ANEXO A MANUAL DE USUÁRIO Para acessar o sistema web o usuário deverá abrir um navegador web e informar a URL (Uniform Resource Locator) que será criado durante as configurações do servidor (para mais detalhes, consulte o Manual de Implantação no Anexo C deste documento). Ao acessá-la, o usuário será redirecionado para a tela de login do sistema, conforme figura A1, onde o mesmo deverá informar as credenciais de acesso (username e password). Figura A1 Tela de login do sistema web Caso o usuário não tenha as credenciais de acesso, o mesmo poderá obtê-las de forma simples utilizando o link (Sign up) que dará acesso a página de cadastro de novos usuários, conforme demostrado na Figura A2. Essa tela contém os seguintes campos a serem preenchidos: First Name Primeiro Nome do usuário. Last Name Sobrenome do usuário. 17

Username Nome utilizado para o acesso ao usuário. Email Email do usuário. Password Senha de acesso do sistema. Figura A2 Tela de cadastro de usuários Após a validação das credenciais serem realizadas com sucesso, o usuário será redirecionado para a página inicial do sistema, conforme demostrado na Figura A3, onde terá acesso as seguintes opções do sistema: Home Página onde será exibido as futuras viagens (Upcoming Trips), últimos usuários seguidores do seu perfil (Latest Followers) e últimos usuários que você seguiu (Latest Followings). Trips Página de cadastro de viagens, onde será possível criar, consultar, alterar e deletar viagens. Maiores detalhes serão abordados a seguir. Network Página onde será exibido as viagens compartilhadas pelos seguidores (following). Maiores detalhes serão abordados a seguir. Profile Settings Página de alteração de informações básicas do perfil do usuário como: senha, nome, email e etc.. 18

Figura A3 Tela Inicial (Home) do sistema Ao clicar sobre a imagem dos followers ou dos following, o usuário será redirecionado para a página de perfil do usuário clicado, conforme Imagem A4. Figura A4 Página de detalhes de usuários Se o usuário que foi clicado não for um following, a opção Follow será exibida permitindo que o usuário do sistema comece a seguir o perfil que foi selecionado. 19

Ao clicar no link Trips, o usuário será redirecionado para a página de viagens, conforme demostrado na Figura A5. O usuário terá acesso a uma lista com todas as viagens, onde será possível consultar, editar, deletar e criar uma viagem. Para criar uma nova viagem o usuário deverá clicar sobre o botão Add new Trip. Figura A5 Tela de Viagens Ao clicar na opção Add new Trip, o usuário será redirecionado para a página de cadastrado de viagens, conforme demostrado na Figura A6. Essa tela contém os seguintes campos a serem preenchidos: Image Imagem que represente a viagem. Exemplo: Foto da cidade, foto de uma atividade que represente sua viagem etc.. Starts at Data Inicial da viagem. Obrigatório o preenchimento. Ends at Data Final da viagem. Obrigatório o preenchimento. Description Descrição da viagem. Private Opção de compartilhamento da viagem: Privada ou entre seguidores (followers). Tag list Tags da viagem. Palavras chaves que representam a viagem. Exemplos: festa, praia etc.. Destinations - Destinos da viagem. Será possível adicionar mais de destino para a viagem. 20

Figura A6 Tela de cadastro de viagens Para consultar mais detalhes da viagem, o usuário deverá clicar no link Details onde será redirecionado para a página de detalhes, conforme Figura A7. Na página de detalhes o usuário poderá consultar informações como: Destinos, Atividades, Gastos, comentários e etc.. Figura A7 Tela de detalhes de viagens Para editar uma viagem, o usuário deverá clicar no link Edit onde será redirecionado para a página de edição, conforme Figura A8. 21

Na página de edição de viagens o usuário poderá editar as principais informações como: destinos, imagem, datas, descrição além dos demais campos disponíveis na página. O usuário também poderá adicionar Atividades e Gastos da viagem. Figura A8 Tela de edição de viagens Ao clicar no link Network, o usuário será redirecionado para a página onde será possível visualizar todas as viagens compartilhadas pelos os usuários que você segue (following) e consultar todos os following e followers, conforme Figura A9. Figura A9 Tela de Network 22

Ao clicar sobre o link com nome do usuário na parte superior da tela, será exibido duas opções: Settings Página de configurações do usuário. Logout Sair do sistema. Ao clicar no link Settings, o usuário será redirecionado para a página onde será possível editar as informações básicas do perfil do usuário, conforme Figura A10: Figura A10 Tela de editar perfil do usuário 23

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Desenvolvimento de um Portal para Viajantes Utilizando Ruby on Rails e Bootstrap ANEXO B PROJETO DE SOFTWARE Na figura B1 temos o diagrama de Caso de Uso, onde demostra as principais funcionalidades do sistema web, no projeto temos um único ator, que no caso será o usuário do sistema. Figura B1 Diagrama de Caso de Uso A figura B2 demostra o Diagrama Entidade Relacionamento (DER) do Banco de Dados, cuja finalidade é descrever o modelo de dados do sistema web. As tabelas foram criadas automaticamente a partir dos models gerados pelo framework Rails e a execução do comando de migração (migrate), descrito na Especificação Técnica deste documento. 24

Figura B2 Diagrama Entidade Relacionamento (DER) do Banco de Dados Como já mencionado na Especificação Técnica deste documento, models correspondem aos nomes de tabela de banco de dados. A figura B3 demostra o diagrama de modelos (models) do sistema web gerados pelo Rails. 25

Figura B3 Diagrama de Modelos (models) do sistema web A figura B4 demostra o diagrama de Controladores (controllers) do sistema web, onde temos os principais controladores e os seus respectivos métodos. Figura B4 Diagrama de Controladores (Controllers) gerados pelo Rails 26

A figura B5 demostra o diagrama de implantação, onde é possível ter uma visão do ambiente. Figura B5 Diagrama de Implantação No diagrama de implantação há um servidor web (WEBrick), um servidor de Banco de Dados e a máquina do usuário. A máquina do usuário através de um navegador acessa o sistema web, todas as solicitações do usuário, conhecidas como request (requisição), são enviadas para o servidor web. O servidor web irá processar as informações que foram solicitadas pelo usuário, caso seja necessário recuperar alguma informação que está armazenada, o servidor irá fazer uma chamada utilizando o protocolo TCP (Transmission Control Protocol) ao banco de dados, logo em seguida o banco de dados retorna para o servidor web o que foi solicitado que por sua vez retorna para o usuário. 27

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Desenvolvimento de um Portal para Viajantes utilizando Ruby on Rails e Bootstrap ANEXO C MANUAL DE OPERAÇÃO E IMPLANTAÇÃO O primeiro passo para a implantação do sistema web deverá ser a configuração do ambiente onde a aplicação será instalada. A aplicação é homologada para utillizar o servidor Linux, utilizando umas de suas distribuições, o Ubuntu, versão 12.04. A razão pela qual a aplicação estar usando o Ubuntu é porque a maioria dos códigos que você escreve será executado em um servidor Linux. Ubuntu é uma das distribuições Linux mais fáceis de usar pois possui muita documentação, por esse motivo é uma boa opção utilizá-lo. Para obter o servidor, acesse o site http://releases.ubuntu.com/12.04/ e faça o download. Para a instalação do Ruby, primeiramente será necessário fazer a instalação de algumas dependências. Abra um terminal (Prompt) e execute os comandos abaixo: sudo apt-get update sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev A instalação do Ruby será feita utilizando um dos métodos disponíveis de instalação, o Ruby Version Manager (RVM). Instale o RVM executando o comando: curl -L https://get.rvm.io bash -s stable Depois que é feita a instalação do RVM. Será necessário sair de sua sessão do terminal e iniciar uma nova. Com a nova sessão aberta execute o comando abaixo: source ~/.rvm/scripts/rvm Para funcionar corretamente, o RVM tem algumas dependências que precisam ser instaladas. Execute o comando abaixo para instalá-las automaticamente: rvm requirements A instalação do Ruby torna-se muito fácil uma vez que esteja utilizando RVM, para instalá-lo basta executar o comando abaixo: rvm install ruby 28

O próximo passo das configurações é a instalação do RubyGems, para isso execute o comando abaixo: rvm rubygems current Depois que tudo estiver configurado, é hora de instalar o Rails. Para iniciar o processo execute o comando abaixo: gem install rails Este processo pode demorar um pouco. Depois que ele terminar, você terá Ruby on Rails instalados no seu servidor. Rails vem com sqlite3 como o banco de dados padrão. Provavelmente, você não vai querer usá-lo porque ele é armazenado como um arquivo simples no disco. Você provavelmente vai querer algo mais robusto como o MySQL. Você pode instalar o servidor e cliente MySQL a partir dos pacotes do repositório do Ubuntu. Como parte do processo de instalação, você vai definir a senha para o usuário root. Esta informação vai entrar em seu arquivo database.yml Rails da sua aplicação no futuro. Para a instalação execute: sudo apt-get install mysql-server mysql-client libmysqlclient-dev Instalando o libmysqlclient-dev, você terá os arquivos necessários para compilar o gem mysql2 que é o que o Rails irá usar para se conectar ao MySQL quando você configurar sua aplicação Rails. Próximo passo é atualizar as gem do projeto, para isso execute o comando abaixo: bundle update Após a instalação do Ruby, Rails e Banco de Dados no servidor, esse é o momento de iniciar a instalação do sistema web. Navegue até o diretório onde desejar criar o seu projeto no servidor e descompacte para dentro desta pasta o arquivo.zip obtido do projeto. Antes de iniciar o servidor é necessário alterar o arquivo de configuração do banco de dados do projeto. Navegue até /config e edite o arquivo database.yml incluindo os dados de acesso ao banco de dados, conforme Figura C1. 29

Figura C1 Arquivo de configuração do Banco de Dados Próximo passo da instalação é a migração do banco de dados. Esse processo irá criar todas as tabelas definidas no projeto. Para isso execute o comando: rake db:migrate O último passo da instalação é iniciar o servidor Rails, para isso execute o comando abaixo: rails server Processo finalizado, sua aplicação está configurada e pronta para o uso. Para acessar o sistema web, o usuário deverá abrir um navegador web e informar a URL (Uniform Resource Locator). 30