Relatorio Versao Final

Embed Size (px)

Citation preview

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