Вы находитесь на странице: 1из 39

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 CSS HTML IDE MVC PHP SGBD SQL XML YAML

Interface de Programao de Aplicativos Cascade Style Sheet Hyper Text Markup Language Integrated Development Environment Model-View-Control Hypertext Preprocessor Sistema Gerenciador de Banco de Dados Structured Query Language eXtensible Markup Language 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 1.1 2 2.1 2.2 2.3

INTRODUO............................................................................................................. 8 ATIVIDADES PREVISTAS .......................................................................................... 8 IDENTIFICAO ....................................................................................................... 9 NOME DO ACADMICO............................................................................................. 9 NOME DO ORIENTADOR ........................................................................................... 9 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 3.1 3.2 3.3 3.4 TECNOLOGIAS UTILIZADAS ............................................................................... 11 LINGUAGEM HTML .................................................................................................. 11 LINGUAGEM CSS ...................................................................................................... 11 LINGUAGEM RUBY .................................................................................................. 12 FRAMEWORK ............................................................................................................ 12

3.4.1 RAILS ........................................................................................................................... 13 3.4.2 Exemplo da criao de uma aplicao Rails................................................................. 14 3.5 3.6 3.7 4 4.1 BANCO DE DADOS MYSQL .................................................................................... 17 IDE NETBEANS .......................................................................................................... 17 WAMP SERVER.......................................................................................................... 18 RESULTADOS E DISCUSSES.............................................................................. 20 DESCRIO DAS ATIVIDADES ............................................................................. 20

4.2 4.3 4.4 5 5.1 5.2 6

DESENVOLVIMENTO DE SITES COM RUBY ON RAILS ................................... 20 MELHORIAS NO SISTEMA SEMEAR ................................................................. 25 DESENVOLVIMENTO PLUGIN ENQUETE ........................................................ 29 CONSIDERAES FINAIS ..................................................................................... 37 CONCLUSO .............................................................................................................. 37 TRABALHOS FUTUROS/CONTINUAO DO TRABALHO ............................... 37 REFERNCIAS BIBLIOGRFICAS...................................................................... 38

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.

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 plugins.

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. opensource 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 diretrio config do projeto Rails. e localizado no

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: <http://fit.faccat.br/~julianoangeli/linguagens/trabalho.html>. Acesso em: 15 jun. 2012.

CARNEIRO, C.; AL BARAZI, R. Rails 3 Bsico. [S.l.]: Novatec, 2011.

CAVALHEIRO, G. Framework. Framework, 20--. Disponivel em: <http://gersonc.anahy.org/reppoo/PooApoio14-Framework.pdf>. 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: <http://www.criarsites.com/wampserver-php-apache-e-mysql-para-windows/>. Acesso em: 07 jul. 2012.

MATSUMOTO, Y.; FLANAGAN, D. A Linguagem de Programao Ruby. [S.l.]: Starlin Alta, 2008. Disponivel em: <http://www.geraldonovais.com.br/pdf/tutorial-ruby.pdf>. Acesso em: 05 jun. 2012.

RUBY on Rails. Ruby on Rails Brasil, 200-. Disponivel em: <http://rubyonrails.com.br/>. 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: <http://www.w3.org/standards/webdesign/htmlcss>. Acesso em: 10 jun. 2012.

Вам также может понравиться