Download - Relatório Estagio Ruby on Rails
-
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN UTFPR
CURSO SUPERIOR DE TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE
SISTEMAS
TIAGO JOS CASANOVA
RELATRIO DE ESTGIO
MEDIANEIRA
2012
-
TIAGO JOS CASANOVA
RELATRIO DE ESTGIO
Relatrio de Estgio apresentado disciplina de
Estgio Supervisionado, do Curso Superior de
Tecnologia em Anlise e Desenvolvimento de
Sistemas COADS da Universidade Tecnolgica Federal do Paran UTFPR, como requisito parcial para obteno do ttulo de
Tecnlogo.
Orientador: Prof. Juliano Rodrigo Lamb
MEDIANEIRA
2012
-
Ministrio da Educao
Universidade Tecnolgica Federal do Paran
Diretoria de Graduao e Educao Profissional
Curso Superior de Tecnologia em Anlise e
Desenvolvimento de Sistemas
TERMO DE ENTREGA
Relatrio de estgio curricular supervisionado, realizado na Serviceweb.com LTDA
no perodo de 11/11/2011 a 11/05/2012, perfazendo aproximadamente 400 horas.
___________________________________
Valter Rodrigo Ekert
Supervisor do Estgio Serviceweb.com LTDA
___________________________________
Prof. Juliano Rodrigo Lamb
Orientador do Estgio
___________________________________
Tiago Jos Casanova
Estagirio
___________________________________
Prof. Juliano Rodrigo Lamb
Responsvel pela Atividade de Estgio do Curso
Medianeira 31 de Outubro de 2012
-
LISTAS DE SIGLAS
API Interface de Programao de Aplicativos
CSS Cascade Style Sheet
HTML Hyper Text Markup Language
IDE Integrated Development Environment
MVC Model-View-Control
PHP Hypertext Preprocessor
SGBD Sistema Gerenciador de Banco de Dados
SQL Structured Query Language
XML eXtensible Markup Language
YAML Yet Another Markup Language
-
LISTA DE FIGURAS
Figura 1 - Criando um projeto Ruby on Rails. ......................................................................... 14
Figura 2 Estrutura de pastas gerada pelo Ruby on Rails. ...................................................... 15
Figura 3 - Estrutura de diretrios do Rails. .............................................................................. 16
Figura 4 - Iniciando aplicao Ruby on Rails. ......................................................................... 16
Figura 5 - Pgina padro do Ruby on Rails. ............................................................................. 17
Figura 6 - Viso Geral do NetBeans. ........................................................................................ 18
Figura 7 - Pgina padro do phpMyAdmin. ............................................................................. 19
Figura 8 - Diagrama de Componentes do site. ......................................................................... 21
Figura 9 - Model validao dos dados. ..................................................................................... 21
Figura 10 - Resultado da Validao. ........................................................................................ 22
Figura 11 - Criando um novo Newsletter no Controller. .......................................................... 22
Figura 12 - Integrao de Ruby com HTML. ........................................................................... 23
Figura 13 - Resultado Final. ..................................................................................................... 24
Figura 14 - Diagrama de Componentes do Sistema Semear. ................................................... 25
Figura 15 Action responsvel por gravar na sesso as opes escolhidas. ........................... 26
Figura 16 Viso renderizada pela action. .............................................................................. 27
Figura 17 Partial renderizao dos Estudantes. ..................................................................... 27
Figura 18 - Action que exibe os dados selecionados. ............................................................... 28
Figura 19 Action que ir buscar os dados. ............................................................................ 28
Figura 20 - Resultado final para impresso. ............................................................................. 29
Figura 21 Criando um Plugin. ............................................................................................... 30
Figura 22 Estrutura criada pelo plugin. ................................................................................. 30
Figura 23 - Arquivo responsvel por gerar os cdigos no projeto Rails. ................................. 31
Figura 24 Implementao das rotas do plugin. ...................................................................... 32
Figura 25 - Mtodo responsvel pelo captcha. ......................................................................... 32
Figura 26 - Mtodo de Internacionalizao do plugin. ............................................................. 33
Figura 27 - Estrutura final do Plugin. ....................................................................................... 34
Figura 28 - Execuo do plugin. ............................................................................................... 35
Figura 29 - Parte admin do site implementado pelo plugin. ..................................................... 35
Figura 30 - Resultado Final. ..................................................................................................... 36
-
Figura 31 Resultado final da votao. ................................................................................... 36
-
SUMRIO
1 INTRODUO ............................................................................................................. 8
1.1 ATIVIDADES PREVISTAS .......................................................................................... 8
2 IDENTIFICAO ....................................................................................................... 9
2.1 NOME DO ACADMICO ............................................................................................. 9
2.2 NOME DO ORIENTADOR ........................................................................................... 9
2.3 INSTITUIO DE ENSINO ......................................................................................... 9
2.3.1 Nome ............................................................................................................................... 9
2.3.2 Endereo ......................................................................................................................... 9
2.3.3 Nome do curso ................................................................................................................ 9
2.4 EMPRESA .................................................................................................................... 10
2.4.1 Nome ............................................................................................................................. 10
2.4.2 Ramo de atividade ........................................................................................................ 10
2.4.3 Endereo ....................................................................................................................... 10
3 TECNOLOGIAS UTILIZADAS ............................................................................... 11
3.1 LINGUAGEM HTML .................................................................................................. 11
3.2 LINGUAGEM CSS ...................................................................................................... 11
3.3 LINGUAGEM RUBY .................................................................................................. 12
3.4 FRAMEWORK ............................................................................................................ 12
3.4.1 RAILS ........................................................................................................................... 13
3.4.2 Exemplo da criao de uma aplicao Rails ................................................................. 14
3.5 BANCO DE DADOS MYSQL .................................................................................... 17
3.6 IDE NETBEANS .......................................................................................................... 17
3.7 WAMP SERVER .......................................................................................................... 18
4 RESULTADOS E DISCUSSES .............................................................................. 20
4.1 DESCRIO DAS ATIVIDADES ............................................................................. 20
-
4.2 DESENVOLVIMENTO DE SITES COM RUBY ON RAILS ................................... 20
4.3 MELHORIAS NO SISTEMA SEMEAR ................................................................. 25
4.4 DESENVOLVIMENTO PLUGIN ENQUETE ........................................................ 29
5 CONSIDERAES FINAIS ..................................................................................... 37
5.1 CONCLUSO .............................................................................................................. 37
5.2 TRABALHOS FUTUROS/CONTINUAO DO TRABALHO ............................... 37
6 REFERNCIAS BIBLIOGRFICAS ...................................................................... 38
-
8
1 INTRODUO
Com o aumento da concorrncia entre as empresas, seja qual for o ramo, eles precisam
expor os seus produtos e sua marca. A Internet tem se destacado como meio privilegiado de
pesquisa de informaes sobre produtos e servios. Uma maneira eficaz de se fazer isso por
meio de pginas web, pois na internet a empresa estar disponvel 24 horas por dia, 7 dias da
semana, podendo ser acessada de qualquer parte do mundo.
Alm de pginas web, as empresas podem precisar de sistemas para controlar suas
operaes. Uma vantagem dos sistemas web que eles podem ser acessados de qualquer
computador conectado rede, gerando uma maior praticidade.
Para o desenvolvimento das pginas web podem ser utilizados frameworks, que tm
por objetivos auxiliar no desenvolvimento, garantem uma melhor segurana e aumentam a
agilidade do desenvolvimento.
O Rails um framework web que tem por objetivo auxiliar no desenvolvimento web.
Muito prtico, ajudando na construo de sites, com cdigo limpo e de fcil manuteno.
Este relatrio descreve as tecnologias e atividades realizadas durante o perodo de
11/11/2011 11/05/2012 na empresa ServiceWeb.com LTDA, utilizando o framework Ruby
on Rails.
1.1 ATIVIDADES PREVISTAS
As atividades previstas no termo de compromisso o qual estabelece o vnculo de
estgio foram:
Estudo e aplicao de HTML, CSS, Javascript;
Estudo e aplicao do Framework Ruby on Rails.
-
9
2 IDENTIFICAO
2.1 NOME DO ACADMICO
Tiago Jos Casanova
2.2 NOME DO ORIENTADOR
Juliano Rodrigo Lamb
2.3 INSTITUIO DE ENSINO
2.3.1 Nome
Universidade Tecnolgica Federal do Paran UTFPR Cmpus Medianeira
2.3.2 Endereo
Avenida Brasil, 4232 CEP 85884-000 - Caixa Postal 271.
Telefone Geral +55 (45) 3240-8000 - Fax : +55 (45) 3240-8101.
Medianeira - PR Brasil.
2.3.3 Nome do curso
-
10
Tecnologia em Anlise e Desenvolvimento de Sistemas
2.4 EMPRESA
2.4.1 Nome
Serviceweb.com LTDA
2.4.2 Ramo de atividade
Desenvolvimento de sites e sistemas Web.
2.4.3 Endereo
Avenida Brasil, nmero 4021 no Bairro Parque Independncia no municpio de
Medianeira PR.
-
11
3 TECNOLOGIAS UTILIZADAS
Este captulo tem por objetivo dissertar sobre as tecnologias utilizadas durante o
perodo de estgio, as informaes sobre cada uma foram obtidas por meio de pesquisas em
sites na Internet. Durante o perodo do estgio, utilizou-se das tecnologias da linguagem
Ruby, juntamente com o framework Ruby on Rails e Ambiente de Desenvolvimento Integrado
(IDE) para o desenvolvimento de pginas HTML com CSS para web.
3.1 LINGUAGEM HTML
A estrutura do HTML baseada em um conjunto de tags, onde cada tag usada para
posicionar um contedo qualquer, como: uma tabela, uma imagem, um formulrio, um texto,
entre outros.
Segundo TEAGUE (2001), HTML uma linguagem de marcao que foi criada para
permitir que os autores definam a estrutura de um documento para distribuio na web.
Segundo a W3C (2008), a linguagem de HTML foi originalmente concebida por TIM
Berners-Lee e popularizada pelo browser Mosaic. Um documento escrito em HTML um
texto comum no formato ASCII, que pode ser aberto por qualquer navegador web. Segundo
ANGELI (200-), HTML (HyperText Markup Language) o termo que designa uma
linguagem usada para criar documentos hiper-texto.
3.2 LINGUAGEM CSS
Com o CSS possvel separar o cdigo referente apresentao do contedo das
pginas, do cdigo responsvel pela estilizao, trazendo uma legibilidade maior para ambos,
aumentando inmeros benefcios como:
Controle do layout de vrios documentos a partir de uma simples folha de
estilos;
Maior preciso no controle do layout;
-
12
Aplicao de diferentes layouts para servir diferentes mdias (telas, impressora,
entre outros.);
Portabilidade, pois funciona em qualquer navegador;
Escalabilidade, pois possibilita a pgina ganhar novas funcionalidades sem
prejudicar as j existentes.
Segundo a W3C (2008), CSS uma linguagem para descrever a apresentao das
pginas web, incluindo cores, layout e fontes.
3.3 LINGUAGEM RUBY
uma linguagem Open-Source o que possibilita aos desenvolvedores abrirem e
melhorarem o cdigo fonte sempre que julgarem necessrio, o que possibilita uma melhoria
constante na correo de bugs.
Segundo MATSUMOTO;FLANAGAN (2008), Ruby uma linguagem de script
interpretada para programao orientada a objetos de um modo fcil e rpido. Ela tem vrios
recursos para processar arquivos de texto e para fazer tarefas de gerenciamento de sistema
(assim como o Perl). Ela simples, direto ao ponto, extensvel e portvel.
A linguagem Ruby foi desenvolvida em 1995, no Japo por Yukihiro Matsumoto, que
se baseou em outras linguagens de programao as quais foram Perl, Smalltalk, Eiffel, Ada, e
Lisp.
3.4 FRAMEWORK
Segundo CAVALHEIRO (20--), Framework uma tcnica que aplicada tanto no
projeto quanto no desenvolvimento de um software orientado a objetos. Ela implica,
basicamente, em explorar o potencial de reutilizao de partes de software j desenvolvidas
e/ou desenvolver novos componentes de software prevendo sua reutilizao no futuro.
O propsito de um framework ajudar no processo de desenvolvimento de aplicaes,
permitindo que aplicaes sejam desenvolvidas mais rapidamente e mais facilmente.
-
13
Segundo FAYAD (1997), framework um conjunto de classes que colaboram para
realizar uma responsabilidade para um domnio de um subsistema da aplicao.
3.4.1 RAILS
O Rails foi desenvolvido em junho de 2004, seu objetivo era de permitir
desenvolvimento gil de suas aplicaes web, produzindo mais com menos linhas de cdigo.
Segundo CARNEIRO; AL BARAZI (2011), O Rails um framework de ponta para
construo de aplicaes web. completo, de cdigo aberto e tem compatibilidade de
plataforma cruzada. Segundo THOMAS;HANSSON (2007), O Ruby on Rails um
framework que torna mais fcil desenvolver, instalar e manter aplicativos web.
A arquitetura do Rails utiliza o padro MVC dividindo em trs categorias distintas: o
model (modelo), a view (viso) e o controller (controlador). Por meio do model representa os
dados, a view representa a interface do usurio e o controller dirige toda a ao.
O Rails surgiu da unio de alguns frameworks, dentre eles tem-se:
Active Record: Contm uma camada de mapeamento objeto-relacional
(model), entre o banco de dados e a aplicao;
Active Suport: Contm colees de diversas classes, e extenses de bibliotecas,
consideradas teis para uma aplicao em Ruby on Rails;
Active WebServices: Prov uma maneira de publicar APIs que se comuniquem
com o Rails;
Action Pack: Compreende Action View (HTML, XML, Javascripts) e a Action
Controller (controle de regras de negcio);
Action Mailer: Compreende ao recebimento de e-mails, realiza diversas
operaes apenas com chamadas de entregas de correspondncia;
Segundo o site RUBY ON RAILS (200-) atualmente, o Ruby on Rails est na verso
3.2.0 lanada no dia 20 de janeiro de 2012.
-
14
3.4.2 Exemplo da criao de uma aplicao Rails
A seguir sero mostrados os passos para criar e executar uma aplicao Ruby on Rails.
Foi usando a verso 2.2.2 do Rails.
A Figura 1 demonstra como criar a aplicao, onde o comando rails informa que
ser criado um projeto Ruby on Rails, o AplicacaoRubyonRails o nome do projeto
que ser criado e a opo d mysql serve para definir que ser utilizado o banco de dados
mysql para a aplicao, por default o Rails usa o banco de dados SQLLite.
Figura 1 - Criando um projeto Ruby on Rails.
Fonte: Autoria prpria.
Ao examinar a estrutura criada pelo Rails, pode-se notar alguns diretrios principais
como:
App Nesta pasta contem a maior parte do projeto. Nela ficam todo o cdigo
de mapeamento de banco de dados (model), as telas (view) e os controladores
(controllers) que so responsveis pela comunicao entre as telas com o
banco, como mencionado anteriormente essa estrutura conhecida como
MVC;
Config Pasta responsvel por armazenar todos os arquivos de configurao;
Db Ficam armazenados os arquivos relacionados ao banco de dados, como as
migraes e esquemas;
Public Neste diretrio ficam os arquivos de acesso pblico, como imagens,
pginas estticas, folhas de estilo, arquivos de javascript e outros;
Test Diretrio onde ficam os arquivos de teste;
Vendor Diretrio responsvel pelas bibliotecas externas, como gems e plug-
ins.
-
15
A Figura 2 demonstra a arquitetura gerada pelo Ruby on Rails, aps a execuo do
comando exibido na Figura 1.
Figura 2 Estrutura de pastas gerada pelo Ruby on Rails.
Fonte: Autoria prpria.
Na Figura 3 pode-se observar a estrutura gerada pelo Rails, contendo os principais
diretrios para o funcionamento da aplicao.
-
16
Figura 3 - Estrutura de diretrios do Rails.
Fonte: Autoria prpria.
O Rails traz por default o servidor chamado Webrick. Para inicializar a aplicao,
deve-se entrar na pasta do projeto criado e digitar o comando ruby script/server.
Logo aps o processamento do comando, o servidor Rails estar em execuo na porta padro
3000. O resultado deste procedimento pode ser verificado na Figura 4.
Figura 4 - Iniciando aplicao Ruby on Rails.
Fonte: Autoria prpria.
Pode-se visualizar a execuo no navegador, por meio da seguinte URL
http://localhost:3000. Na Figura 5 pode-se observar a pgina padro do Ruby on
Rails renderizada no browser.
-
17
Figura 5 - Pgina padro do Ruby on Rails.
Fonte: Autoria prpria.
3.5 BANCO DE DADOS MYSQL
O MySQL um gerenciador de banco de dados relacional que suporta SQL. open-
source e um dos SGBDs para utilizao profissional mais utilizado.
Foi desenvolvido e disponibilizado pela empresa MySQL AB Limited Company,
possui algumas caractersticas como, a portabilidade (suporta praticamente qualquer
plataforma atual), excelente desempenho e estabilidade, facilidade de uso, suporta triggers,
possui interface grfica (MySQL Toolkit) de fcil utilizao, entre outras.
3.6 IDE NETBEANS
A IDE NetBeans um ambiente de desenvolvimento multiplataforma, uma ferramenta
que auxilia programadores a escrever, compilar e debugar aplicaes. Foi iniciado em 1996
por dois estudantes tchecos na Universidade de Charles. Totalmente escrita em JAVA, possui
suporte a linguagens de programao como C, C++, Ruby, PHP, XML e linguagens HTML.
Alguns de seus principais recursos so:
Editor de cdigo fonte integrado;
-
18
Visualizador de classes integrado ao de interfaces visual;
Plugins para UML;
Auto completar avanado;
Integrao de mdulos;
Suporte a Database (banco de dados).
Na Figura 6 pode-se visualizar a execuo da IDE Netbeans, onde renderizado um
arquivo Ruby.
Figura 6 - Viso Geral do NetBeans.
Fonte: Autoria prpria.
3.7 WAMP SERVER
O WampServer foi desenvolvido em PHP, possui tambm o programa PHPMyAdmin
que uma interface que facilita criar, remover e alterar tabelas, inserir, remover e editar
campos, e executar cdigo SQL e manipular campos chaves, aumentando a agilidade no
desenvolvimento da aplicao.
-
19
Segundo LEMES (2010), WampServer um ambiente para o Sistema Operacional
Windows, voltado para programadores e/ou pessoas que precisam testar aplicaes web,
suportando Apache, PHP e banco de dados MySQL.
Na Figura 7 pode-se visualizar a pgina padro do PHPMyAdmin, que pode ser
visualizado pela URL http://localhost/phpmyadmin/.
Figura 7 - Pgina padro do phpMyAdmin.
Fonte: Autoria prpria.
-
20
4 RESULTADOS E DISCUSSES
Este captulo visa mostrar de maneira clara as principais atividades realizadas no
estgio.
4.1 DESCRIO DAS ATIVIDADES
As atividades foram organizadas de seguinte modo:
a. Desenvolvimento de sites utilizando linguagem Ruby e framework rails;
b. Melhorias no sistema SEMEAR;
c. Desenvolvimento de plugin ENQUETE.
4.2 DESENVOLVIMENTO DE SITES COM RUBY ON RAILS
Com a utilizao do Rails junto ao framework interno da empresa, conhecido como
MOSTRATIVO, a criao de sites e sistemas ficou mais simples e gil de ser feita.
Dentre as atividades realizadas no estgio, o site http://naeleicao.com.br foi
escolhido para exibio de seu contedo cadastrado no sistema.
Para melhor entendimento da estrutura do site, pode-se visualizar na Figura 8, o
diagrama de componentes com todas as principais pginas do site, onde tem-se a
possibilidade de a partir de uma pgina navegar pelas outras. Quando uma pgina solicitada
pelo usurio, primeiro feita uma requisio ao banco de dados para recuperar os dados
pertinentes pgina solicitada.
-
21
Figura 8 - Diagrama de Componentes do site.
Fonte: Autoria prpria.
O Rails segue o padro MVC. Primeiramente, feita a validao do Model, segundo
passo gerar as consultas e resposta no Controller, e por ltimo trabalha-se, com os objetos
na View.
Na Figura 9 pode-se ver a primeira etapa desse processo, validao do model
Newsletter. Na linha 3 feita a validao para a presena de um atributo name e email.
Na linha 4 definido que o atributo email ser nico no banco de dados. Na linha 5 criada
uma busca personalizada com o nome actived?.
Figura 9 - Model validao dos dados.
Fonte: Autoria prpria.
No Rails, o Model representa o mapeamento do banco de dados, as validaes do
banco e representa as classes de negcio. Na Figura 10 pode ser vista a validao feita na
linha 4, ao tentar gravar um novo Newsletter que j possui cadastro no site uma
mensagem de alerta exibida, de modo que possa ser facilmente visualizada.
-
22
Figura 10 - Resultado da Validao.
Fonte: Autoria Prpria.
Seguindo as convenes do Rails adotadas pelos desenvolvedores, a action create
responsvel por criar um contedo novo para um Model. No exemplo a seguir, feita a
criao de um novo Newsletter.
Na Figura 11, linha 20 criado um objeto do @newsletter que ir receber os dados
via post atravs de um formulrio. Na linha 23 feita a tentativa de salvar o novo
Newsletter. Se obtiver sucesso, as linhas 24 a 26 sero executadas, caso contrrio sero as
linhas 28 a 30.
Figura 11 - Criando um novo Newsletter no Controller.
Fonte: Autoria Prpria.
Na Figura 11, na linha 24 gravada a mensagem que ser exibida na tela, conforme
visualizado anteriormente na Figura 10. Na linha 25 feita uma requisio HTML, onde o
Rails converter o contedo para HTML, e ser redirecionado para a pgina index. Na linha
-
23
26 feita uma requisio XML, onde o Rails converter o contedo a ser renderizado para
XML.
O objeto criado na action create ficam disponveis para sua viso no
application.html.erb da parte pblica do controller. No application colocado
todo o cdigo que se repete mais de uma vez no site.
O trecho de cdigo da Figura 12 a seguir usa o objeto acima citado, para criao de um
formulrio.
Figura 12 - Integrao de Ruby com HTML.
Fonte: Autoria Prpria.
Como pode-se observar na Figura 12, a integrao Ruby on Rails e HTML feita
facilitando a integrao com HTML.
O resultado final desse processo pode ser visto na Figura 13, onde chamado o link
http://naeleicao.com.br, ele exibe a pgina inicial trazendo o formulrio de
Nesletter e outros dados.
-
24
Figura 13 - Resultado Final.
Fonte: Autoria Prpria.
No perodo de estgio outros sites tambm foram desenvolvidos ou ainda esto em
processo de desenvolvimento, alguns exemplos so:
Set Telecom www.settelecom.com.br
Luce Flores www.luceflores.com.br
Ncleo Informtica www.nucleoinformatica.com.br
Guia Serranpolis www.guiaserranopolis.com.br
Imobiliria Schefer www.schefer.imb.br
-
25
4.3 MELHORIAS NO SISTEMA SEMEAR
A empresa possui um sistema para fins educacionais e de assistncia Social
desenvolvido especificamente para a Sociedade Filantrpica Semear de Medianeira, chamado
Sistema SEMEAR, que tem por objetivo controlar alunos, cursos, turmas, empresas, entre
outros.
Para melhor entendimento de como funciona o Sistema SEMEAR pode-se visualizar
na Figura 14 o diagrama de componentes do sistema. Para acessar a pgina home.html o
usurio obrigado a se autenticar na pgina autenticacao.html, a partir da pgina
home o usurio pode acessar qualquer pgina e vice-versa, quando o usurio requisitar uma
pgina, primeiramente feita a requisio ao banco de dados.
Figura 14 - Diagrama de Componentes do Sistema Semear.
Fonte: Autoria Prpria.
Surgiu a necessidade de criar uma maneira de gerar automaticamente a declarao de
inscrio dos alunos, de uma forma que desse mais agilidade na inscrio.
Aps estudo de como deixar essa funcionalidade mais simples optou-se por
implementar uma soluo que permitisse ao usurio selecionar o aluno, a empresa e o
coordenador e gerar a inscrio.
-
26
Como o Rails trabalha utilizando o padro MVC nenhuma pgina acessada de forma
direta e sim pelo seu controlador correspondente, era necessrio a criao de uma action que
trouxesse todos os estudantes, as empresas e os coordenadores e que salva-se na sesso do
navegador a opo escolhida, para isso foi implemento a chamada enrollment dentro do
controller contract .
Na Figura 15, entre as linhas 112 a 120 feita a verificao do parmetro que
passado pela URL, conforme o parmetro feita uma consulta diferente. Nas linhas 122 a 133
tambm feita a verificao do parmetro, se o parmetro for encontrado ser gravado o
nome e o id na sesso do navegador.
Figura 15 Action responsvel por gravar na sesso as opes escolhidas.
Fonte: Autoria Prpria.
No Rails por padro cada action do controller possui uma view correspondente, onde
mostra os dados que foram buscados anteriormente na chamada da action.
-
27
Figura 16 Viso renderizada pela action.
Fonte: Autoria Prpria.
O Rails possui o conceito de partial, que seria incluir uma pgina dentro de outra,
reaproveitando seu cdigo e facilitando em futuras manutenes. Na Figura 16 pode-se
visualizar nas linhas 32, 34 e 36 as chamadas das partials, conforme o argumento que foi
passado para a consulta no controller ser renderizado uma partial diferente.
Na Figura 17 possvel ver a partial que ir exibir os estudantes. O ponto importante
o mtodo onDbClick(rota), onde ser chamada a prpria action enrollment
passando os argumentos id e o nome do estudante pela URL.
Figura 17 Partial renderizao dos Estudantes.
Fonte: Autoria Prpria.
-
28
Na Figura 18 pode-se visualizar os dados selecionados pela action enrollment.
Figura 18 - Action que exibe os dados selecionados.
Fonte: Autoria Prpria.
Na Figura 16 na linha 22 pode-se observar um formulrio que corresponde a action
show_enrollment, onde sua funo trazer um estudante, uma empresa e um
coordenador para gerar a declarao da matricula. Na Figura 19 pode-se visualizar a action
show_enrollment.
Figura 19 Action que ir buscar os dados.
Fonte: Autoria Prpria.
Na Figura 20 pode-se observar o resultado final, onde a declarao da matricula esta
construda com os todas as suas devidas informaes.
-
29
Figura 20 - Resultado final para impresso.
Fonte: Autoria Prpria.
4.4 DESENVOLVIMENTO PLUGIN ENQUETE
A idia de plugin no Rails trazer mais agilidade ao desenvolvimento de aplicaes
web. Em Rails permite o uso de funcionalidades core: plug-ins, de forma a tornar mais fcil
determinadas funcionalidades.
Com o aumento da concorrncia as empresas esto aumentando os seus interesses nas
opinies dos clientes, cada vez mais esto procurando saber o que esto pensando para melhor
atend-lo.
Atravs de uma enquete possvel realizar pesquisas de opinies dos clientes, pode
tambm verificar as tendncias dos consumidores em relao a um produto.
A cada site que era desenvolvido perdia-se muito tempo implementando a parte da
enquete, o cdigo gerado era o mesmo pra todos os sites, ento surgiu necessidade de
desenvolver um plugin que fizesse a reutilizao do cdigo aumentando agilidade do
desenvolvimento.
-
30
No Rails um plugin deve-se ser criado dentro de um projeto Rails, na Figura 19
demonstra como criar um plugin, onde o comando ruby informa que ser criado um projeto
Ruby, o comando script/generate plugin informa que ser gerado os cdigos do
tipo plugin e o comando enquete o nome dado ao plugin.
Figura 21 Criando um Plugin.
Fonte: Autoria Prpria.
Na Figura 22 pode-se observar a estrutura de pastas gerada a partir do comando
executado na Figura 21. Algumas pastas deve-se ter uma maior ateno, como a pasta
generators a onde temos o diretrio templates onde contm os arquivos
implementado pelo usurio, que podem ser utilizados pelo arquivo
enquete_generator.rb, este arquivo tem por objetivo gerar os cdigos e mover a
estrutura que esta dentro do plugin na pasta templates para dentro do projeto Ruby on
Rails, a pasta lib contm todo o cdigo Ruby, como modelos, bibliotecas que ficaram
automaticamente disponveis para a aplicao Ruby on Rails.
Figura 22 Estrutura criada pelo plugin.
Fonte: Autoria Prpria.
-
31
Tambm a dois arquivo considerados importantes o init.rb que carregado toda
vez que a aplicao inicia, e o arquivo install.rb que carregado somente uma vez, no
momento da instalao do plugin.
Tem-se na Figura 23 o mtodo manifest que tem por objetivo mover os arquivos
que esto dentro da pasta templates para os seus devidos lugares. Nas linhas 6 e 7 por
exemplo ser criado dois arquivos do tipo Javascript que sero colocados na pasta
public/javascripts do projeto. Nas linhas 13 at a 20 sero criados os arquivos de
migraes que so responsveis por manter atualizada a estrutura do banco de dados e
tambm responsvel por aplicar ou reverter s modificaes na estrutura do banco de dados.
Figura 23 - Arquivo responsvel por gerar os cdigos no projeto Rails.
Fonte: Autoria Prpria.
As URLs so importantes em aplicaes web, contem toda a informao necessria
para rotear uma requisio. No Rails as regras de mapeamento de URLs para os controllers
uma questo de configurao.
Na Figura 24 pode-se observar a implementao do mtodo add_rotas que tem por
objetivo adicionar no arquivo de rotas, conhecido como routes.rb e localizado no
diretrio config do projeto Rails.
-
32
Figura 24 Implementao das rotas do plugin.
Fonte: Autoria Prpria.
Para evitar spam ou mensagens disparadas por outros computadores ou robs, foi
implementado um captcha, que ser solicitado aps o usurio escolher uma opo.
Na Figura 23 tem-se um mtodo na linha 22 chamado add_application, sua
funo copiar o cdigo das linhas 81 a 91 para dentro do arquivo application.rb
localizado dentro de app/controllers, esse cdigo tem como funcionalidade gerar
randomicamente um numero que ser usado no captcha da enquete.
Figura 25 - Mtodo responsvel pelo captcha.
Fonte: Autoria Prpria.
-
33
O Rails possui suporte a internacionalizao, onde o Rails chama o seu principal
mtodo translate, que traduz o contedo procurando um texto de traduo em um arquivo
de localidade (locate), normalmente localizado em config/locales. As localidades so
como os idiomas, por exemplo, o em-us representa o Ingls norte-americano, para o
portugus do Brasil representa-se pt-br, a extenso do arquivo de traduo YAML.
Na Figura 23, linha 23 chamado o mtodo add_ptbr que responsvel por
adicionar no arquivo de internacionalizao pt-br.yml do projeto Rails, na Figura 26
pode-se observar implementao desse mtodo.
Figura 26 - Mtodo de Internacionalizao do plugin.
Fonte: Autoria Prpria.
Na Figura 27 pode-se visualizar a estrutura final do plugin, contendo um conjunto de
arquivos e pastas como os controladores, modelos, viso, arquivos de CSS, arquivos de
javaScript entre outros.
-
34
Figura 27 - Estrutura final do Plugin.
Fonte: Autoria Prpria.
Na aplicao Rails, por padro os plugins ficam localizados na pasta
vendor/plugins, um plugin pode ser instalado de duas formas, atravs de uma URL ou
adicionando na pasta padro, executando com comando ruby script/generate e
mais o nome do plugin.
Na Figura 28 feita a instalao do plugin enquete, onde pode-se notar que o
arquivo enquete_generator.rb chamado e executado os mtodos manifest,
add_rotas e o add_ptbr. Criando alguns arquivos de migrao, pastas e copiando os
arquivos localizados dentro de templates.
-
35
Figura 28 - Execuo do plugin.
Fonte: Autoria Prpria.
Na Figura 29 pode-se observar a tela de cadastro para uma nova enquete, onde temos
um menu com algumas opes, e uma tela principal de cadastro de uma pergunta e uma opo
de adicionar uma nova resposta para a pergunta criada.
Figura 29 - Parte admin do site implementado pelo plugin.
Fonte: Autoria Prpria.
O resultado final pode ser observado na Figura 30, onde temos uma enquete com uma
pergunta e algumas opes de respostas e um cdigo de segurana.
-
36
Figura 30 - Resultado Final.
Fonte: Autoria Prpria.
A cada opo escolhida pelo usurio gravado no banco de dados, aps a votao, ou
at antes de votar ele pode visualizar as estticas da votao da enquete, na Figura 31 pode-se
observar o total de votos, como tambm qual foi opo escolhida pelo usurio.
Figura 31 Resultado final da votao.
Fonte: Autoria Prpria.
Ao final de todo esse processo foi desenvolvido um plugin que trar mais agilidade no
desenvolvimento de websites.
-
37
5 CONSIDERAES FINAIS
5.1 CONCLUSO
O Ruby on Rails trouxe uma grande agilidade no desenvolvimento de aplicaes web,
possuindo tags de interao com HTML, JavaScript, CSS e usando a arquitetura MVC, que
visa o aumento da produtividade.
Existem alguns fatores que destacam o uso do Ruby on Rails, como o suporte aos
principais bancos de dados do mercado. Possui uma grande performance no ganho da
produtividade, vem por padro com o suporte ao framework JavaScript JQuery. Possui o
cdigo completamente aberto.
No Ruby on Rails existe uma grande facilidade na manuteno de cdigos gerados por
outros programadores, pois o framework obriga o desenvolvedor a seguir um padro de
desenvolvimento, o que posteriormente facilitar o entendimento do cdigo gerado por ele, e
dessa forma aumentando a rapidez na manuteno.
5.2 TRABALHOS FUTUROS/CONTINUAO DO TRABALHO
Para dar continuidade no trabalho, que se busca para trabalhos futuros o
aprimoramento da declarao de matrcula no Sistema SEMEAR, construindo um plugin
para que possa ser usado em outros projetos. No plugin ENQUETE, implementar a opo
de escolha do cadastro do usurio que votou na enquete.
-
38
6 REFERNCIAS BIBLIOGRFICAS
ANGELI, J. F. HTML. Linguagem de programacao html, 200-. Disponivel em:
. Acesso em: 15 jun. 2012.
CARNEIRO, C.; AL BARAZI, R. Rails 3 Bsico. [S.l.]: Novatec, 2011.
CAVALHEIRO, G. Framework. Framework, 20--. Disponivel em:
. Acesso em: 07 jul. 2012.
FAYAD, M. S. Object-Oriented Application Frameworks. New York: Communication of
the ACM, v. 40, 1997.
LEMES, C. WampServer. criarsites, 2010. Disponivel em:
. Acesso em:
07 jul. 2012.
MATSUMOTO, Y.; FLANAGAN, D. A Linguagem de Programao Ruby. [S.l.]: Starlin
Alta, 2008. Disponivel em: . Acesso
em: 05 jun. 2012.
RUBY on Rails. Ruby on Rails Brasil, 200-. Disponivel em: .
Acesso em: 06 jun. 2012.
TEAGUE, J. C. DHML e CSS para World Wide. [S.l.]: Campus, 2001.
THOMAS, D.; HANSSON, D. H. Desenvolvimento Web gil com Rails. [S.l.]: Bookman,
2007.
W3C. HTML & CSS - W3C, 2008. Disponivel em:
. Acesso em: 10 jun. 2012.