CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS FERNANDO HENRIQUE ALVES RAFAEL DE LIMA DA CUNHA CARVALHO PROTÓTIPO DE LOJA VIRTUAL UTILIZANDO WEB DESIGN RESPONSIVO LINS/SP 1° SEMESTRE/2013 CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS FERNANDO HENRIQUE ALVES RAFAEL DE LIMA DA CUNHA CARVALHO PROTÓTIPO DE LOJA VIRTUAL UTILIZANDO WEB DESIGN RESPONSIVO Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnólogo em Banco de Dados. Orientador: Prof. Me. Paulo Augusto Nardi LINS/SP 1° SEMESTRE/2013 Dedicatória Dedico esse trabalho primeiramente a minha mãe, Janes Luz de Lima e a minha esposa, Juliana Cristina Pacheco de Oliveira pelo apoio, incentivo, compreensão e por acreditarem em meu potencial. Agradeço também ao meu pai, Mario da Cunha Carvalho in memorian, que com plena certeza, sempre está ao meu lado, auxiliando e guiando meus passos. E a minha filha Sophia que é a razão pela qual eu vivo e busco adquirir o conhecimento que compartilharei com ela por toda minha vida. Rafael de Lima da Cunha Carvalho AGRADECIMENTOS É com muita alegria que concluo uma parte de grande e valiosa importância em minha vida pessoal e profissional, sei que de forma alguma conseguiria isso sozinho, por isso, gostaria de agradecer a pessoas que tornaram esse momento possível. Primeiramente agradeço ao Professor Me. Paulo Augusto Nardi, por me orientar durante todo o desenvolvimento da monografia, por estar sempre disponível para tirar dúvidas e por compartilhar parte de seu grande conhecimento comigo. Gostaria também de agradecer aos professores Alexandre Ponce, Adriana de Bortoli e Luciane Noronha, pela grande ajuda nas correções e pelos valiosos momentos de aprendizado que nos proporcionaram durante esse momento importante para a minha formação. Agradeço também aos professores Fabio Lucio Meira, Anderson Pazin, Renato Barros, Adriano Bezerra e Mario Henrique de Souza Pardo por estarem sempre dispostos a tirar dúvidas e sugerir melhorias com a finalidade de tornar esse trabalho ainda mais especial. E ao grande amigo Fernando Henrique Alves, que admiro muito por sua competência e dedicação e por ser a pessoa com o qual tive a oportunidade de partilhar conhecimentos e desenvolver este trabalho. Rafael de Lima da Cunha Carvalho Dedicatória Primeiramente, dedico este trabalho a Deus, por ter me dado esta oportunidade e por ter me dado forças para nunca nem pensar em desistir. Além disso, dedico este trabalho aos meus pais, pela paciência e compreensão ao permitir que eu focasse apenas em minha formação. Dedico também à minha irmã e meus amigos, pela motivação, e à minha prima in memorian. Fernando Henrique Alves AGRADECIMENTOS Neste momento tão importante de minha vida, tenho a felicidade de agradecer a todos os que me ajudaram, de alguma forma, a finalizar esta caminhada. Em especial, agradeço o Professor Me. Paulo Augusto Nardi, pela dedicação e por todas as horas de auxílio nas quais pude conviver a aprender com um profissional de extrema competência. Agradeço ao professor Fábio Lúcio Meira, pelo auxílio sempre que precisei e pela oportunidade de estágio no Núcleo de Inovação Tecnológica (NIT). Aos professores Alexandre Ponce, Adriana de Bortoli e Luciane Noronha pela dedicação e paciência ao nos ensinar e ao corrigir nossos trabalhos. Aos professores Renato Barros, Anderson Pazin, Adriano Bezerra e Mário Henrique de Souza Pardo, pela atenção e ajuda no esclarecimento de dúvidas. Aos meus amigos Guilherme Delbortolo, Gustavo Marinho e Luiz Antonio Mantana, por terem fornecido livros quando precisei. Aos meus amigos do Núcleo de Inovação Tecnológica, Felipe Petucoski, Clóvis Grete, Denis Santos e Nathan Souza da Silva, por muito terem me ajudado em todas as etapas deste trabalho. E ao meu amigo Rafael de Lima da Cunha Carvalho, uma das pessoas mais dedicadas que já conheci, na qual tive a honra de poder contar ao desenvolver este trabalho. Fernando Henrique Alves RESUMO O presente trabalho tem como tema principal o desenvolvimento de uma loja virtual, que na maioria dos casos possui o objetivo de ampliar o campo de atuação e o potencial de competitividade do negócio para o qual foi desenvolvida. A loja virtual implementada ao longo deste trabalho é voltada para o segmento de som e acessórios automotivos, com o intuito de promover os objetivos citados anteriormente à empresa Car System, que atualmente possui restrições que a impedem de crescer no âmbito empresarial. Com o objetivo definido, foi realizado um levantamento teórico que aborda as principais tecnologias utilizadas para o desenvolvimento da loja virtual em questão, assim como também algumas tecnologias que possuem grande relevância no mercado. Também foi realizado o estudo de caso referente ao problema atual da empresa e os requisitos (expressos em forma de diagramas) necessários para o desenvolvimento da solução proposta (a loja virtual). Além disso, são exemplificadas, com imagens e códigos, a parte de implementação das funcionalidades do sistema, na qual é ressaltado o uso do Web Design Responsivo, que é uma técnica que promove uma melhor apresentação da loja virtual em dispositivos móveis. Por fim, são apresentados os resultados obtidos e as dificuldades enfrentadas durante o processo de desenvolvimento, que juntos concluem este trabalho. Palavras-Chave: Loja Virtual e Comércio Eletrônico. ABSTRACT The current study has as main motif the development of a virtual shop that in the most of the cases has the objective of enlarge the acting field and the competitive potential of the business for which if was developed. The virtual shop developed during this study is focused to the segment of automotive sound and accessories with the intention of promoting the objectives cited previously to the CarSystem company, that currently has restrictions that prevent it to grow in the business scope. With the definite objective, it was performed a theoretical survey that approaches the main technologies used in the development of such virtual shop concerned, as well as some technologies that have great relevance in the market. It was also performed a case study relative to the company current problem and the requirements (expressed in form of diagrams) required to the development of the proposed solution (the virtual shop). Besides, parts of the development of the system’s features are exemplified, with pictures and codes, which are emphasizing the use of the Responsive Web Design, that is a technique that promote a better presentation of the virtual shop in mobile devices. Finally, they are presented the results obtained are presented and the difficulties faced during the process of development that together complete this study. Keywords: Virtual Shop and Eletronic Commerce LISTA DE ILUSTRAÇÕES Figura 2.1 – Diagrama de Caso de Uso .................................................................... 39 Figura 2.2 – Diagrama de Implantação ..................................................................... 40 Figura 2.3 – Modelo Lógico ....................................................................................... 41 Figura 2.4 – Modelo Relacional ................................................................................. 42 Figura 2.5 – Diagrama de Atividade – Cadastrar Categoria ...................................... 42 Figura 2.6 – Diagrama de Atividade – Cadastrar Marca............................................ 43 Figura 2.7 – Diagrama de Atividade – Cadastrar Fabricante..................................... 43 Figura 2.8 – Diagrama de Atividade – Cadastrar Especificação ............................... 43 Figura 2.9 – Diagrama de Atividade – Realizar Compra ........................................... 44 Figura 2.10 – Diagrama de Atividade – Cadastrar Produto ....................................... 44 Figura 2.11 – Diagrama de Atividade – Efetuar Login (Administrador)...................... 45 Figura 2.12 – Diagrama de Atividade – Efetuar Login (Cliente) ................................ 45 Figura 2.13 – Diagrama de Atividade – Cadastrar Cliente ........................................ 46 Figura 2.14 – Diagrama de Atividade – Realizar Contato.......................................... 46 Figura 2.15 – MVC – Cadastrar Categoria ................................................................ 47 Figura 2.16 – MVC – Cadastrar Marca ...................................................................... 47 Figura 2.17 – MVC – Cadastrar Fabricante ............................................................... 48 Figura 2.18 – MVC – Cadastrar Especificação.......................................................... 48 Figura 2.19 – MVC – Realizar Compra...................................................................... 49 Figura 2.20 – MVC – Cadastrar Produto ................................................................... 49 Figura 2.21 – MVC – Efetuar Login (Administrador) .................................................. 50 Figura 2.22 – MVC – Efetuar Login (Cliente)............................................................. 50 Figura 2.23 – MVC – Cadastrar Cliente..................................................................... 51 Figura 2.24 – MVC – Realizar Contato ...................................................................... 51 Figura 2.25 – Diagrama de Sequência – Cadastrar Categoria .................................. 52 Figura 2.26 – Diagrama de Sequência – Cadastrar Marca ....................................... 52 Figura 2.27 – Diagrama de Sequência – Cadastrar Fabricante ................................ 53 Figura 2.28 – Diagrama de Sequência – Cadastrar Especificação ........................... 53 Figura 2.29 – Diagrama de Sequência – Cadastrar Cliente ...................................... 54 Figura 2.30 – Diagrama de Sequência – Cadastrar Produto ..................................... 54 Figura 2.31 – Diagrama de Sequência – Efetuar Login (Administrador) ................... 55 Figura 2.32 – Diagrama de Sequência – Efetuar Login (Cliente) .............................. 55 Figura 2.33 – Diagrama de Sequência – Realizar Compra ....................................... 56 Figura 2.34 – Diagrama de Sequência – Realizar Contato ....................................... 56 Figura 3.1 – Página Home do site ............................................................................. 57 Figura 3.2 – Página de Contato................................................................................. 58 Figura 3.3 – Carrinho de Compras ............................................................................ 59 Figura 3.4 – Login ..................................................................................................... 59 Figura 3.5 – Busca por categorias do menu Lateral .................................................. 60 Figura 3.6 – Detalhes do produto .............................................................................. 60 Figura 3.7 – Adição de produto ao carrinho de compras ........................................... 61 Figura 3.8 – Mensagem do site sobre quantidade em estoque ................................. 62 Figura 3.9 – Login do Cliente ao efetuar compra ...................................................... 63 Figura 3.10 – Cadastro de Cliente ............................................................................. 63 Figura 3.11 – Confirmação de cadastro .................................................................... 64 Figura 3.12 – Inserção dos dados do cartão ............................................................. 64 Figura 3.13 – Página com dados da compra e do cliente.......................................... 65 Figura 3.14 – Login de clientes ................................................................................. 66 Figura 3.15 – Área do cliente .................................................................................... 66 Figura 3.16 – Alteração de dados do cliente ............................................................. 67 Figura 3.17 – Visualização de compras do cliente .................................................... 67 Figura 3.18 – Visualização de detalhes de compras de clientes ............................... 68 Figura 3.19 – Login Gerente...................................................................................... 69 Figura 3.20 – Área do Gerente .................................................................................. 69 Figura 3.21 – Menu de marcas .................................................................................. 70 Figura 3.22 – Cadastro de marcas ............................................................................ 70 Figura 3.23 – Consulta de marcas ............................................................................ 71 Figura 3.24 – Atualização marcas ............................................................................. 71 Figura 3.25 – Menu de produtos ............................................................................... 72 Figura 3.26 – Cadastro de produtos .......................................................................... 72 Figura 3.27 – Adição de Especificação ao cadastrar ................................................ 73 Figura 3.28 – Consulta de produtos .......................................................................... 73 Figura 3.29 – Atualização de produtos ...................................................................... 74 Figura 3.30 – Adição de especificação ao atualizar .................................................. 74 Figura 3.31 – Recuperação de dados do formulário ................................................. 75 Figura 3.32 – Upload de arquivo ............................................................................... 76 Figura 3.33 - Verificação de inserção ou atualização do Servlet ControleProduto .... 76 Figura 3.34 – Página de adição de especificação ..................................................... 77 Figura 3.35 – Verificação de inserção ou atualização do servlet ControleListaEspecificacao ....................................................................................... 78 Figura 3.36 – Recuperação dos valores do formulário .............................................. 78 Figura 3.37 – Gerencia Especificação ....................................................................... 79 Figura 3.38 – Servlet DownloadManual..................................................................... 80 Figura 3.39 – Servlet TrataImagem ........................................................................... 81 Figura 3.40 – Imagem flexível ................................................................................... 81 Figura 3.41 – Código CSS fixo .................................................................................. 82 Figura 3.42 – Código CSS flexível ............................................................................ 83 Figura 3.43 – Código para resolução mínima de 846 pixels...................................... 84 Figura 3.44 – Elemento superior para resolução mínima de 846 pixels .................... 84 Figura 3.45 – Código para resolução mínima de 699 pixels e máxima de 845 ......... 85 Figura 3.46 – Elemento superior para resolução mínima de 699 pixels e máxima de 845 pixels .................................................................................................................. 85 Figura 3.47 – Código para resolução mínima de 392 pixels e máxima de 668 pixels .................................................................................................................................. 85 Figura 3.48 – Elemento superior para resolução mínima de 392 pixels e máxima de 668 pixels .................................................................................................................. 86 Figura 3.49 – Código para resolução máxima de 391 pixels ..................................... 86 Figura 3.50 – Código para resolução máxima de 391 pixels ..................................... 86 Figura 3.51 – Dispositivo com resolução de 320 x 480. ............................................ 87 Figura 3.52 – Dispositivo com resolução de 320 x 240. ............................................ 88 Figura 3.53 – Dispositivo com resolução de 240 x 320. ............................................ 88 Figura 3.54 – Dispositivo com resolução de 480 x 320. ............................................ 89 Figura 3.55 – Dispositivo com resolução de 685 x 380. ............................................ 89 Figura 3.56 – Dispositivo com resolução de 600 x 1024. .......................................... 90 Figura 3.57 – Dispositivo com resolução de 600 x 1024. .......................................... 91 LISTA DE ABREVIATURAS E SIGLAS API – Application Programming Interface B2B – Business to Business B2C – Business to Consumer BD – Banco de Dados BDOO – Banco de Dados Orientado a Objetos C2B – Consumer to Business CE – Comércio Eletrônico CSS – Cascading Style Sheets ER – Entidade Relacionamento GB – Giga Bytes HTML – Hypertext Markup Language HYTIME – Hypermidia Time-Based Structuring Language JDBC – Java Data Base Connectivity JEE – Java Enterprise Edition JME – Java Micro Edition JSE – Java Standard Edition JSP – Java Server Pages MB – Mega Bytes MIME – Multipurpose Internet Mail Extensions ODBC – Open Data Base Connectivity OMG – Object Management Group PL / SQL – Procedural Language / Structured Query Language RAD – Rapid Application Development RAM – Random Access Memory SGBD – Sistema Gerenciador de Banco de Dados SGML – Standard Generalized Markup Language SO – Sistema Operacional TB – Tera Bytes UML – Unified Modeling Language XHTML – Extensible Hypertext Markup Language XML – Extensible Markup Language SUMÁRIO INTRODUÇÃO .......................................................................................................... 17 1 FUNDAMENTAÇÃO TEÓRICA .............................................................................. 20 1.1 COMÉRCIO ELETRÔNICO (CE) ........................................................................ 20 1.2 NETBEANS ......................................................................................................... 22 1.3 ECLIPSE ............................................................................................................. 22 1.4 BANCO DE DADOS ............................................................................................ 22 1.5 SGBD .................................................................................................................. 25 1.5.1 MySQL ............................................................................................................. 25 1.5.2 Oracle ............................................................................................................... 26 1.6.1 Hypertext Markup Language (HTML) ............................................................... 27 1.6.2 Extensible Markup Language (XML) ................................................................ 27 1.6.3 Extensible Hypertext Markup Language (XHTML) ........................................... 27 1.7 WEB DESIGN RESPONSIVO ............................................................................. 28 1.8 DOCTYPE ........................................................................................................... 28 1.8.1 Doctype Transitional ......................................................................................... 29 1.8.2 Doctype Strict ................................................................................................... 29 1.9 QUIRKS MODE ................................................................................................... 29 1.10 CASCADING STYLE SHEETS (CSS) ............................................................... 30 1.11 JAVASCRIPT .................................................................................................... 30 1.12 FRAMEWORK ................................................................................................... 30 1.13 HIBERNATE ...................................................................................................... 31 1.14 JAVA ................................................................................................................. 31 1.15 SERVLET .......................................................................................................... 32 1.16 JSP .................................................................................................................... 33 1.18 JDBC ................................................................................................................. 33 1.19 UNIFIED MODELING LANGUAGE (UML) ........................................................ 33 2 ANÁLISE E PROJETO DE SISTEMA .................................................................... 35 2.1 ANÁLISE DE NEGÓCIO ..................................................................................... 35 2.1.1 Instrução do problema ...................................................................................... 35 2.1.2 Análise de Mercado .......................................................................................... 35 2.1.3 Atores envolvidos no processo ......................................................................... 36 2.1.4 Descrição do ambiente atual ............................................................................ 36 2.2 VISÃO GERAL DO PRODUTO ........................................................................... 36 2.2.1 Perspectiva do Produto (Análise de Mercado) ................................................. 36 2.2.2 Premissas e Dependências .............................................................................. 36 2.2.3 Características.................................................................................................. 37 2.2.4 Outros Requisitos do Produto .......................................................................... 38 2.3 ANÁLISE DE REQUISITOS FUNCIONAIS ......................................................... 38 2.3.1 Análise de Requisitos Funcionais ..................................................................... 38 2.3.1.1 Diagrama de Caso de Uso ............................................................................ 39 2.3.1.2 Especificação de Histórias ............................................................................ 39 2.4 ANÁLISE E DESIGN ........................................................................................... 40 2.4.1 Diagrama de Implantação ................................................................................ 40 2.4.2 Projeto de Banco de Dados.............................................................................. 41 2.4.2.1 Diagrama de Dados....................................................................................... 41 2.4.2.2 Mapeamento para o Modelo Relacional e Projeto Físico .............................. 42 2.4.3 Diagrama de Atividades ................................................................................... 42 2.4.3.1 Cadastrar Categoria ...................................................................................... 42 2.4.3.2 Cadastrar Marca ............................................................................................ 43 2.4.3.3 Cadastrar Fabricante ..................................................................................... 43 2.4.3.4 Cadastrar Especificação................................................................................ 43 2.4.3.5 Realizar Compra............................................................................................ 44 2.4.3.6 Cadastrar Produto ......................................................................................... 44 2.4.3.7 Efetuar Login ................................................................................................. 45 2.4.3.8 Cadastrar Cliente........................................................................................... 46 2.4.3.9 Realizar Contato ............................................................................................ 46 2.4.4 MVC ................................................................................................................. 46 2.4.4.1 Cadastrar Categoria ...................................................................................... 47 2.4.4.2 Cadastrar Marca ............................................................................................ 47 2.4.4.3 Cadastrar Fabricante ..................................................................................... 48 2.4.4.4 Cadastrar Especificação................................................................................ 48 2.4.4.5 Realizar Compra............................................................................................ 49 2.4.4.6 Cadastrar Produto ......................................................................................... 49 2.4.4.7 Efetuar Login ................................................................................................. 50 2.4.4.8 Cadastrar Cliente........................................................................................... 51 2.4.4.9 Realizar Contato ............................................................................................ 51 2.4.5 Diagrama de Sequência ................................................................................... 51 2.4.5.1 Cadastrar Categoria ...................................................................................... 52 2.4.5.2 Cadastrar Marca ............................................................................................ 52 2.4.5.3 Cadastrar Fabricante ..................................................................................... 53 2.4.5.4 Cadastrar Especificação................................................................................ 53 2.4.5.5 Cadastrar Cliente........................................................................................... 54 2.4.5.6 Cadastrar Produto ......................................................................................... 54 2.4.5.7 Efetuar Login ................................................................................................. 55 2.4.5.8 Realizar Compra............................................................................................ 56 2.4.5.9 Realizar Contato ............................................................................................ 56 3 IMPLEMENTAÇÃO ................................................................................................ 57 3.1 ÁREA DO USUÁRIO ........................................................................................... 57 3.1.1 Página Home do Site........................................................................................ 57 3.1.2 Página para Contato......................................................................................... 58 3.1.3 Carrinho de Compras ....................................................................................... 58 3.1.4 Login................................................................................................................. 59 3.1.5 Buscar produtos pelo menu Lateral .................................................................. 60 3.1.6 Exibição de detalhes de produto ...................................................................... 60 3.1.7 Realização de compras pelo site ...................................................................... 61 3.2 ÁREA DO CLIENTE ............................................................................................ 65 3.2.1 Login do Cliente................................................................................................ 65 3.2.2 Área do Cliente ................................................................................................. 66 3.2.3 Atualização de dados do Cliente ...................................................................... 66 3.2.4 Visualização de Compras ................................................................................. 67 3.3 ÁREA DO GERENTE .......................................................................................... 68 3.3.1 Login Gerente ................................................................................................... 68 3.3.2 Área do Gerente ............................................................................................... 69 3.3.3 Menu de Marcas ............................................................................................... 69 3.3.4 Menu de Produtos ............................................................................................ 72 3.4 APRESENTAÇÃO DO CÓDIGO FONTE ............................................................ 74 3.4.1 Cadastro de Produtos....................................................................................... 75 3.4.2 Download do manual do produto ...................................................................... 80 3.4.3 Servlet para recuperar imagem de qualquer diretório ...................................... 81 3.4.4 Web Design Responsivo .................................................................................. 81 CONSIDERAÇÕES FINAIS ...................................................................................... 92 REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 94 17 INTRODUÇÃO Segundo Rodrigues e Escola (2010), passaram-se cinco mil anos entre a invenção do instrumento primitivo de calcular criado na antiguidade e o desenvolvimento do primeiro computador eletrônico em 1946. Desde então a evolução tecnológica tem se acelerado tanto que em poucas décadas resultou na maior mudança no estilo de vida do ser humano. Como consequência deste fato e mesmo por ter se consolidado no final do século passado, a Tecnologia da Informação (TI) parece apenas estar começando, mas já possui grande capacidade de inovação, cria empregos em todo o planeta e é a área que mais cresce no momento. (RODRIGUES; ESCOLA, 2010) Conforme Elmasri e Navathe (2005), em quase todas as áreas da TI os bancos de dados são muito importantes. Esse tipo de sistema se tornou indispensável para a sociedade moderna, pois muitas atividades como o depósito ou retirada de dinheiro, a reserva em um hotel, a compra de passagens aéreas, o acesso a um catálogo de produtos, a compra de produtos, entre outros, possuem um software ou uma pessoa que fará uso de um banco de dados. Assim como o banco de dados, a Internet também é algo muito importante nos dias atuais, e segundo Rodrigues e Escola (2010), a área de desenvolvimento de software terá crescimento acelerado devido à capacidade de suceder novidades das diferentes aplicações vinculadas a ela. Segundo Zemel (2012), os sites também estão se tornando mais complexos, pois atualmente, novos tipos de telas com diferentes modos de resoluções estão surgindo e os sites que oferecerem suporte a esses dispositivos, estarão melhores preparados para o futuro. Um exemplo disso são os milhões de dólares por dia que o Paypal movimenta em pagamentos mobile e no eBay chegaram perto de 2 bilhões de dólares em 2010 as vendas realizadas por este tipo de equipamento eletrônico. Existem duas formas de se desenvolver um site para dispositivos móveis. Uma delas é o desenvolvimento de um site específico para cada tipo de resolução para cada dispositivo. Ou então, o desenvolvedor poderá optar por utilizar uma técnica denominada Web Design Responsivo, que faz com que o site se adapte a todas as resoluções. 18 Com o foco na relevância que a Internet possui juntamente com banco de dados e todos os outros avanços relacionados à área de TI, o Comércio Eletrônico (CE) também ganha destaque. De acordo com Turban e King (2004), o CE é a forma como as transações acontecem por meio da Internet, ou seja, é o processo de comprar e vender bens, serviços e informações eletronicamente. Algumas aplicações de CE que são usadas para vender ações pela Internet estão em grande ascensão, como exemplo, pode-se citar a Coréia, na qual 70 por cento desse tipo de comércio é realizado pela Internet. A princípio, as aplicações para CE aparecem como uma das aplicações mais promissoras da Internet. Devido as variedades de opções de desenvolvimento e alta complexidade dos sistemas envolvidos no ambiente em contínua evolução que a Internet possui, faz com que o CE e projetos similares se tornem complexos aos olhos dos profissionais da área de informática. (JUNIOR et al, 2002) Em relação aos fatos apontados, o foco desse trabalho é o desenvolvimento de uma loja virtual, que possui o objetivo de aumentar o potencial de competitividade da empresa Car System. Ressalta-se o fato de que a loja desenvolvida permitirá o acesso a partir de dispositivos móveis, pois será utilizado o Web Design Responsivo, que consiste em uma técnica que faz com que as páginas web se adaptem a qualquer tipo de dispositivo móvel. Dessa forma a loja virtual ampliará o campo de atuação da empresa em questão, pois disponibilizará a venda dos produtos a distância e por qualquer tipo de dispositivo que possua acesso à Internet. Para uma melhor compreensão dos assuntos abordados, esse trabalho se divide em três capítulos, no qual o primeiro capítulo abordará, em caráter de nível básico de conhecimento, as principais tecnologias envolvidas no desenvolvimento da loja virtual e também algumas tecnologias concorrentes que se destacam no mercado. O segundo capítulo é utilizado para destacar o motivo pelo qual surgiu a necessidade de implantação da loja virtual, além de mostrar as principais características do sistema desenvolvido e exemplificar as funcionalidades do sistema através de diagramas específicos para cada uma delas. O processo de implementação do projeto será apresentado no terceiro capítulo, que por sua vez, possui ilustrações das paginas criadas juntamente com a descrição e exemplificação das funcionalidades pertencentes a elas, ou seja, o terceiro capitulo abordará exemplos ilustrados de como o sistema funciona. 19 No processo de implementação do projeto, serão seguidos os passos: Implementação das tabelas no Banco de Dados; Conexão com o banco e criação das classes modelo utilizando Hibernate; Implementação das funcionalidades que envolvem a área administrativa; Implementação das funcionalidades que envolvem a área do cliente; Criação do carrinho de compras; Implementação da funcionalidade finalizar compra; Implementação do site para envio de emails; Aplicação do Web Design Responsivo; Dessa forma, este trabalho apresenta uma das opções para a resolução de problemas enfrentados pelo administrador de uma loja de som, equipamentos e acessórios automotivos (de pequeno porte), na qual, o site será uma ferramenta utilizada pelo administrador, e que poderá ser acessado por sistemas desktop e/ou dispositivos móveis, com o intuito de ampliar a abrangência atual do negócio e consequentemente o número de clientes e vendas. 20 1 FUNDAMENTAÇÃO TEÓRICA 1.1 COMÉRCIO ELETRÔNICO (CE) Segundo Turban e King (2004), define-se CE como um processo de compra, venda e barganha de produtos, serviços e informações por uma rede de computadores ou pela Internet. Para os autores, na economia atual, o CE faz com que o processo de revolução digital se acelere ao permitir que as empresas tenham vantagens competitivas ao adquirir este tipo de negócio. Em um estudo realizado por Lederer et al. (1998), aumentar a competitividade ou criar vantagem estratégica é o grande benefício dos sistemas que funcionam na web. Atualmente a infraestrutura de comunicação proporciona uma plataforma global que possui características como; (i) a possibilidade, por meio de computadores e celulares, de realizar transações financeiras; (ii) disponibilidade de uso, em qualquer momento e local; (iii) grande quantidade de dados e informações em banco de dados, notícias, livros, revistas, programação de rádio e TV, filmes, jogos eletrônicos, CDs de áudio e software, entre outros. (TURBAN; KING, 2004) Para os autores citados acima, não foram muitas as inovações que trouxeram tantos benefícios quanto o CE e inúmeras pessoas afirmam que as mudanças trazidas pelo CE são tão intensas quanto às mudanças proporcionadas pela Revolução Industrial. A lista a seguir mostra como se divide os benefícios do CE para as empresas: (TURBAN; KING, 2004) O CE expande o mercado: com baixo investimento, uma empresa pode alcançar mais clientes, melhores parceiros e melhores fornecedores. O CE possibilita significativa redução de custos: utilizando o CE, não é necessário investir na criação, processamento, distribuição, armazenamento e recuperação de dados registrados em papel. O CE melhora a organização e os processos de negócio: o CE permite criar modelos inovadores, minimizar problemas como excesso de produtos em estoque e atrasos nas entregas. 21 O CE oferece interatividade: ao utilizar o CE, uma empresa consegue obter retorno rápido e preciso de seus colaboradores, além de aumentar a interatividade. Para Junior et al (2002), o CE é uma atividade muito importante para o desenvolvimento do setor produtivo uma vez que permite o aumento da diversificação dos mercados consumidores, introduz novas formas de comércio, possibilita a criação de novas atividades comerciais e contribui para a criação e propagação de novas tecnologias de informação. De acordo com Turban e King (2004), o CE é dividido de acordo com seu tipo de transação ou de acordo com seus participantes envolvidos. Os tipos mais encontrados são descritos da seguinte forma: business-to-business (B2B) indica que os participantes são somente empresas; business-to-consumer (B2C) empresaconsumidor, ou seja, quando as transações de varejo são feitas entre empresas e compradores individuais; consumer-to-business (C2B) quando o cliente fornece produtos ou serviços para empresas, entre outros. No tipo de transação B2C os principais tipos de mercado eletrônico são as lojas e shopping centers virtuais. Esses tipos de mercado eletrônico podem ser divididos em: genéricos, na qual vendem muitos tipos de produtos; especializados, que vendem poucos tipos de produto ou apenas um; regionais, que vendem apenas para os consumidores que residem na região; globais, que mesmo sendo locais, aceitam vender para consumidores que residem no exterior, desde que estes concordem em pagar frete, seguros e outros custos; organizações on-line puras, que não existem fisicamente ou organizações de cliques e cimento, que são lojas que existem fisicamente e optaram por vender na internet. (TURBAN; KING, 2004) Segundo Turban e King (2004), existe uma opinião geral sobre o CE: seu futuro será brilhante. E este sucesso do CE no futuro, baseia-se em vários fatores, tais como o crescimento dos internautas, aumento dos produtos e serviços disponíveis on-line, o aumento das vantagens dos compradores, a queda dos preços, o aperfeiçoamento do processo de compra na internet, maior segurança e confiabilidade, entre muitos outros. Os analistas fazem previsões sobre o crescimento esperado e sobre qual segmento terá crescimento mais acelerado. Dessa forma, os fatores citados anteriormente acerca do futuro do CE, geram um otimismo geral. 22 Os benefícios do CE, a sua importância e a perspectiva de crescimento, motivaram o desenvolvimento deste trabalho, cujo objetivo é a criação de uma loja virtual especializada do tipo de transação B2C. No processo de desenvolvimento de uma loja virtual, diversas tecnologias podem ser utilizadas, e algumas delas serão descritas a seguir: 1.2 Netbeans, 1.3 Eclipse, 1.4 Banco de Dados, 1.5 Sistema Gerenciador de Banco de Dados (SGBD), 1.6 Linguagens de Marcação, 1.7 Design Responsivo, 1.8 Doctype, 1.9 Quirks Mode, 1.10 CSS, 1.11 JavaScript, 1.12 Framework, 1.13 Hibernate, 1.14 Java, 1.15 Servlet, 1.16 JSP, 1.17 iReport, 1.18 JDBC, 1.19 UML. 1.2 NETBEANS O Netbeans é um ambiente integrado para desenvolvimento de software que fornece o necessário para o desenvolvedor escrever e compilar aplicações. Além de ter o código-fonte aberto e ser escrito totalmente em Java, o Netbeans possui várias funcionalidades, tais como, suporte completo ao Java Enterprise Edition (JEE), integração com banco de dados, plugins, entre outras. Estas funcionalidades foram adquiridas no decorrer de suas atualizações, o que tornou essa ferramenta bastante atrativa para os desenvolvedores Java. (GONÇALVES, 2006) 1.3 ECLIPSE Criado originalmente pela IBM, o Eclipse é um ambiente integrado de desenvolvimento mantido pela Eclipse Foundation. Assim como o Netbeans, o Eclipse também possui seu código-fonte aberto, oferece recursos e ferramentas que visam facilitar o desenvolvimento de aplicações Java e possui varias funcionalidades, tornando-o bastante difundido e utilizado atualmente. (FILHO; RIBEIRO, 2010) 1.4 BANCO DE DADOS Para Elmasri e Navathe (2005), um banco de dados é um conjunto de dados encadeados e esses dados representam acontecimentos que possuem um sentido. Por exemplo, entenda que a descrição, a marca, o tamanho ou o peso de um objeto 23 podem ser registrados em um caderno ou em um dispositivo por meio de programas específicos. Esses registros constituem um banco de dados. Porém, segundo os autores, a definição de banco de dados é um pouco mais rigorosa, e devem-se considerar as seguintes características para um melhor aproveitamento e utilização de recursos: um banco de dados representa a realidade, é um conjunto de dados coerentes com algum sentido, é planejado, desenvolvido e preenchido por dados para auxiliar algum processo e é utilizado por usuários ou aplicações, dependendo do objetivo proposto pelos usuários. De acordo com Nassu e Setzer (2009), existem dois tipos principais de banco de dados: os bancos de dados orientados a objetos e os bancos de dados relacionais. Segundo Nassu e Setzer (2009), em um banco de dados orientado a objetos, a unidade de armazenamento é o objeto e este tipo de banco possui o mesmo conceito das linguagens de programação orientadas a objetos. A principal diferença é a forma na qual este banco persiste os dados, pois os objetos continuam a existir quando o software é finalizado. Conforme Welling e Thomson (2005), os bancos de dados relacionais são os mais utilizados. Geralmente este tipo de banco de dados é composto por várias tabelas, nas quais são especificadas chaves que servem como referência de uma tabela para outra. Segundo Ramakrishnan e Gehrke (2008), por serem mais compreensíveis que os bancos de dados mais antigos, os bancos de dados relacionais possibilitam o fácil entendimento de seu conteúdo até mesmo pelos usuários iniciantes. Suas principais vantagens são a facilidade de realizar consultas complexas e a simplicidade na representação dos dados. De acordo com Welling e Thomson (2005), na criação de um banco de dados, devem-se modelar itens do mundo real, relacionamentos e armazenar dados sobre esses objetos e relacionamentos. Para Ramakrishnan e Gehrke (2008), seis etapas podem dividir o projeto de banco de dados, sendo que, nas três primeiras etapas, o modelo Entidade Relacionamento (ER) é o mais importante. As três primeiras etapas são: Análise de requisitos: etapa na qual se realiza uma análise para descobrir o que os usuários esperam do sistema. Após esta análise, programas são utilizados para fazer a documentação do software proposto. 24 Projeto Conceitual do Banco de Dados: nesta etapa, o modelo ER é criado com o objetivo de simplificar a representação dos dados. Desse modo, todas as pessoas envolvidas no projeto podem debater inclusive as que não têm conhecimento técnico. Projeto Lógico de Banco de Dados: Considerando a utilização de um banco de dados relacional, nesta etapa, deve-se converter o esquema ER em um esquema de banco de dados relacional no modelo de dados do SGBD escolhido. Em um projeto de banco de dados, são realizadas análises mais cuidadosas com o objetivo de refinar o esquema lógico final, pois o modelo ER é somente uma descrição aproximada dos dados criada no processo de análise de requisitos. Após a criação do esquema lógico, deve-se dar importância ao critério desempenho e criar o esquema físico. Por fim, podemos criar restrições de segurança e garantir que os usuários terão acesso apenas aos dados que necessitam. (RAMAKRISHNAN; GEHRKE, 2008) As etapas finais do projeto de banco de dados são descritas a seguir: Refinamento do Esquema: nesta etapa, a teoria de normalização de relações é utilizada em uma análise para identificar problemas nas relações. Projeto físico de Banco de Dados: na quinta etapa, o projeto é refinado para que o banco de dados suporte cargas esperadas e mantenha um desempenho considerável. Para que isso aconteça, podem ser criados índices em tabelas, realizar agrupamento de tabelas ou realizar um reprojeto de partes do esquema anterior do banco de dados. Projeto de Aplicativos e Segurança: na última etapa, devemos expor o objetivo das entidades nos procedimentos que resultem em uma tarefa de aplicativo como componente do procedimento. Também é necessário identificar e definir as partes do banco de dados que podem ser acessadas pelos diferentes usuários e garantir que as regras de acesso sejam satisfeitas. Segundo os autores, na realidade, em um projeto de banco de dados completo, será exigida uma etapa chamada tunning, que tem por objetivo realizar uma repetição dos seis tipos de etapas até que o projeto esteja aceitável. 25 1.5 SGBD Para Nassu e Setzer (2009), um SGBD é um software ou um conjunto de software desenvolvidos com o objetivo de controlar todas as ações em um banco de dados. Entre estas ações estão a definição da estrutura de dados, inserção e busca dos dados, recuperação de falhas na comunicação ou no meio de gravação, controles de concorrência, de acesso e de segurança dos dados. Atualmente existem vários tipos de SGBDs relacionais e orientados a objetos. Neste trabalho são descritos dois SGBDs, o MySQL que possui código fonte aberto e o Oracle que oferece recursos que muitos dos outros SGBDs não oferecem. 1.5.1 MySQL É um sistema de gerenciamento de banco de dados relacional que surgiu com a finalidade de suprir a necessidade de um SGBD rápido e flexível. Além de atender essas necessidades, o MySQL é confiável, de nível corporativo e possui códigofonte aberto. (GONÇALVES, 2006) De acordo com Leite (2007), as principais características do MySQL são: Multiplataforma: pode ser instalado em diversos Sistemas Operacionais (SO) como Windows, Linux, Novell, AIX, HP-UX, SCO, Solaris, FreeBD, OpenBSD, MacOS. Funcionalidades: Stored Procedures, triggers, cluster. Limites: De modo teórico, o número de usuários, conexões ou tamanho da base de dados são ilimitados. Existem situações com até 104 conexões e tabelas com até 8 Tera Bytes (TB) para Solaris 2.7 ultra-sparc. Recursos de Hardware: Exigência de um processador Pentium 3 com 64 Mega Bytes (MB) de Random Access Memory (RAM). Padrão de tabelas do MySQL: As tabelas do MySQL podem ser criadas nos padrões: ISAM, MyISAM, InnoDB, BerkeleyDB, MERGE e HEAP, possuem tamanho máximo de aproximadamente 4 Giga Bytes (GB). Entretanto, a capacidade de armazenamento de uma tabela pode ser estendida se o sistema necessitar de utilizar tabelas com capacidade de armazenamento maior que 4 GB. 26 Compatibilidade: O MySQL é compatível com o Open Data Base Connectivity (ODBC), Java Data Base Connectivity (JDBC), .NET e módulos de interface para diversas linguagens de programação. Segundo Leite (2007), o MySQL objetiva ser livre de bugs, ser de fácil uso e permitir implementações contínuas, desde que não deixe de ser seguro e rápido. 1.5.2 Oracle Segundo Abbey, Corey e Abramson (2002), a Oracle divide-se em cinco áreas, tais como: banco de dados Oracle, servidor de aplicações Oracle, pacote de desenvolvimento para Internet, Data Warehouse (DW) e desenvolvimento comercial e pacote E-Business da Oracle. O Oracle é um sistema gerenciador de banco de dados relacional muito confiável e bastante utilizado pelas empresas, pois muitos dos SGBDs não oferecem os recursos oferecidos por um SGBD Oracle, principalmente quando se trata de segurança dos dados armazenados. (LEITE, 2007) De acordo com Leite (2007), a versão Oracle 10g Express Edition é uma das mais conhecidas entre os desenvolvedores, pois suporta Windows e Linux e está disponível gratuitamente para download. Essa versão traz muitos recursos para implementação em diferentes plataformas, como por exemplo, aplicações com ferramentas Rapid Application Development (RAD), Procedural Language / Structured Query Language (PL/SQL) e permite o desenvolvimento de aplicações em diversas linguagens de programação. No Oracle, é preciso criar uma tablespace para depois criar as tabelas que vão armazenar os registros. As tablespaces são áreas para armazenamento de dados que devem estar associadas à no mínimo um ou vários arquivo de dados. A capacidade de armazenamento do banco de dados está ligada aos arquivos de dados associados à tablespace. (LEITE, 2007) 1.6 LINGUAGEM DE MARCAÇÃO Segundo Freeman e Freeman (2008), uma linguagem de marcação é utilizada para criar páginas web. Para isso, no documento são especificadas as marcações denominadas tags que mostram ao browser como o texto está estruturado, dessa forma o browser interpreta a página e a exibe de acordo com o que foi especificado. 27 1.6.1 Hypertext Markup Language (HTML) Segundo Gonçalves (2007), a HTML é uma linguagem que foi criada a partir da Standard Generalized Markup Language (SGML), que por sua vez é uma linguagem para descrever linguagem de marcação. O HTML é menos complexo do que o SGML, pois utiliza um pequeno conjunto de tags que suprem as necessidades para criação da estrutura das páginas e gerenciamento simples de documentos. O HTML apenas cria a estrutura das páginas, especificando o que é título, texto, lista, subtítulo, local das imagens, etc. Por ser baseado em SGML, o HTML não tem uma estrutura rígida e exata. (MARCONDES, 2005) Para a utilização de hipertexto, o HTML utiliza o Hypermedia Time-based Structuring Language (HYTIME) que consiste em um padrão para representação estruturada de hipermídia e informação baseada em tempo. (GONÇALVES, 2007) 1.6.2 Extensible Markup Language (XML) A sintaxe básica da XML é parecida com a da HTML, porém sua finalidade é outra. Assim como a HTML, a XML é baseada na linguagem SGML, mas ela não limita o desenvolvedor a utilizar elementos fixos, ou seja, ela permite a criação de novas marcações que visam auxiliar na leitura do documento por pessoas e na manipulação pelos computadores, por esse motivo essa linguagem de marcação é denominada extensível. (FREEMAN; FREEMAN, 2008) Segundo Medeiros (2004), a XML é uma linguagem estruturada, isso porque todas as tags que são abertas devem ser fechadas e também porque suas tags possuem um significado. Essa linguagem possui um verificador de sintaxe chamado Parse XML e um mecanismo denominado DTD, que informa qual é a estrutura de um arquivo XML. 1.6.3 Extensible Hypertext Markup Language (XHTML) De acordo com Freeman e Freeman (2008), o XHMTL é a junção de duas linguagens de marcação, HTML e XML. Essa junção uniu a popularidade e 28 compatibilidade com os browsers do HTML com a extensibilidade e exatidão do XML. Com essa união, o XHTML se tornou mais rigoroso em relação a sua sintaxe, porém garante o aproveitamento de todas as ultimas atualizações dos browsers e compatibilidade com dispositivos móveis. (FREEMAN; FREEMAN, 2008) 1.7 WEB DESIGN RESPONSIVO O Web Design Responsivo é uma técnica que faz com que um site se adapte a resolução de qualquer dispositivo e, com isso, o mesmo será bem apresentado em qualquer um deles. Essa técnica é composta por três outras técnicas, são elas: Layout Fluído, Imagens e recursos flexíveis e Media Queries. Essas três técnicas são aplicadas a partir de configurações no arquivo de estilização do projeto, com o intuito de garantir que o site seja totalmente flexível à todas as resoluções. O Layout fluído é aplicado em um site a partir da definição e medidas não fixas, para que haja uma adaptação automática do site na tela, com o objetivo de evitar as barras de rolagem horizontais e conteúdos incompletos. Imagens e recursos flexíveis é uma técnica que pode ser aplicada no site apenas com a especificação em porcentagem nas marcações que contém o elemento no qual se deseja que seja flexível a fim de fazer com que o elemento possa ter qualquer tamanho, variando de acordo com o tamanho do elemento que o contém. O uso de Media Queries pode fazer com que elementos fiquem ocultos, apareçam ou se reposicionem de acordo com a resolução, pois um site não precisa ter a mesma aparência de seus elementos em qualquer dispositivo. (ZEMEL, 2012) 1.8 DOCTYPE Segundo Freeman e Freeman (2008), o Doctype é uma linha que possui um conjunto de especificações que o browser precisa para interpretar a página web da melhor forma possível. Essa linha é chamada de definição do tipo de documento, pois informa ao browser qual é o tipo de documento. A declaração do Doctype usado, deve ser colocada no topo da página web para especificar com antecedência como a página deve ser interpretada. Para explicar melhor os elementos que compõem a linha doctype, segue o seguinte 29 exemplo: <!DOCTYPE html PUBLIC “-//W3C//DTD//HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>. Na linha Doctype, o HTML indica que o elemento html é o elemento raiz na página, PUBLIC indica que o HTML 4.01 está disponível ao público, o elemento “-//W3C//DTD//HTML 4.01 Transitional//EN” informa que a versão do HTML usada é a 4.01 e está escrita em Inglês, e por fim, o elemento “http://www.w3.org/TR/html4/loose.dtd” aponta para um arquivo que identifica este padrão em particular. A palavra Transitional descrita na linha Doctype informa ao browser qual é o tipo de Doctype usado na página. Os tipos de Doctype são descritos a seguir: 1.8.1 doctype Transitional, 1.8.2 doctype Strict. 1.8.1 Doctype Transitional Conforme Freeman e Freeman (2008), Transitional é o tipo de Doctype que deve ser utilizado quando a página estiver em transição de um HTML antigo para um HTML atualizado. Este Doctype permite a utilização do HTML antigo e o HTML padrão ao mesmo tempo em um documento, pois não exige o HTML totalmente padronizado. 1.8.2 Doctype Strict Para Freeman e Freeman (2008), Strict é o tipo de Doctype rigoroso que deverá ser usado quando estiver escrevendo HTML totalmente padronizado. Para desenvolver uma página com HTML Strict, é necessário seguir regras como a utilização de elementos e atributos que não estão obsoletos, ou seja, ainda fazem parte do padrão, estruturar as páginas de acordo com o padrão e não cometer erros de sintaxe. De acordo com os autores, desenvolver páginas de acordo com o padrão é garantir que as mesmas serão interpretadas da forma mais rápida e mais estável possível na maioria dos browsers. 1.9 QUIRKS MODE Segundo Freeman e Freeman (2008), Quirks Mode é a forma na qual o browser interpretará uma página web caso não seja especificado a versão do HTML 30 que está sendo usada. Cada browser entenderá a página web de uma forma diferente e possivelmente inconsistente. Para evitar que isso aconteça, deve-se informar ao browser uma linha do tipo Doctype no inicio do documento. Esta linha define o tipo de documento, ou seja, a versão do HTML. Essa definição é utilizada para informar aos browsers sobre como o documento foi estruturado, e isto facilitará a leitura e interpretação da página. 1.10 CASCADING STYLE SHEETS (CSS) Segundo Freeman e Freeman (2008), as CSS são utilizadas para personalizar a parte visual de paginas web. As regras CSS são aplicadas aos elementos de uma página, atribuindo um valor para cada propriedade que se deseja alterar. Com a utilização das CSS, é possível alterar vários elementos de varias paginas de uma só vez, facilitando a manutenção em casos de alterações. Então, além de estilizar as páginas, as CSS visam facilitar a definição e inserção dos estilos que serão aplicados. 1.11 JAVASCRIPT Para que as paginas web possuam um bom visual e dinamismo, ao construílas, pode-se utilizar o JavaScript, que por sua vez disponibiliza os recursos necessários para tornar uma página funcional. Trocar imagens dinamicamente, efetuar cálculos, e validar campos de um formulário em uma página online, estão entre as várias funções de interatividade que o JavaScript pode realizar. A linguagem JavaScript não necessita ser compilada, os seus códigos são escritos dentro da estrutura HTML. Os navegadores web possuem um interpretador que cuja função é interpretar o código JavaScript e realizar as funções nele descritas. Levando em consideração todas essas vantagens, o JavaScript tem tornado a internet muito mais funcional. (MORRISON, 2008) 1.12 FRAMEWORK Framework é uma estrutura com funcionalidades definidas que reúne o necessário para auxiliar no desenvolvimento de determinados projetos. Algumas 31 aplicações possuem problemas e soluções parecidas, analisando esses fatos, e com a finalidade de simplificar o desenvolvimento de aplicações em comum, surgiram os Frameworks. Com a utilização dessas estruturas, o desenvolvedor pode organizar e desenvolver vários projetos. Um Framework pode envolver bibliotecas de código, linguagens de scripts, programas de apoio ao desenvolvimento, entre outros. (GONÇALVES, 2006) 1.13 HIBERNATE Segundo Gonçalves (2007), o Hibernate surgiu com a finalidade de reduzir e/ou eliminar a dificuldade no processo de persistência de dados com o Java, uma vez que é problemático efetuar alterações no sistema quando as informações são armazenadas em tabelas e devem ser apresentadas através de objetos. Então esse framework de fácil configuração e grande popularidade possui um conjunto de ferramentas de mapeamento com acesso ao banco de dados que realizam a comunicação do sistema com o banco de dados facilitando o desenvolvimento do projeto. 1.14 JAVA Java é uma linguagem de programação criada pela Sun Microsystems que tem sido destaque no mercado. Esse destaque é dado devido as suas criações que auxiliam no processo de implementação e aos aprimoramentos que possibilitam que a linguagem Java suporte diferentes plataformas. (GONÇALVES, 2010) A portabilidade é um dos pontos fortes do Java, pois permite que a aplicação desenvolvida funcione em diversas plataformas sem ter a necessidade de modificação. Além disso, a linguagem de programação Java é muito segura, o que possibilita a conexão com grandes bancos de dados. Somando a segurança com a portabilidade e todas as outras ferramentas de suporte que essa linguagem abrange, grandes empresas como a NASA, IBM, ESPN, optaram por utilizar o Java. (GONÇALVES, 2007) Segundo Filho e Ribeiro (2010), a linguagem de programação Java possui diferentes ambientes de programação, cada um deles é voltado para uma finalidade 32 especifica. O Java Standard Edition (JSE), o JEE e o Java Micro Edition (JME) são ambientes pertencentes ao Java e são definidos da seguinte forma: JSE - é um ambiente para construção e execução de aplicações Java. Como o próprio nome diz, é a edição Java padrão que disponibiliza as ferramentas necessárias para o desenvolvimento de aplicações de pequeno porte voltadas para web e desktop, o JSE é ideal para a aprendizagem da linguagem Java. (FILHO; RIBEIRO, 2010) JEE - Versão baseada na plataforma JSE, a JEE foi criada especificamente para o desenvolvimento de aplicações corporativas de grande porte. Ela possui um padrão de desenvolvimento que deve ser seguida pelo desenvolvedor para que o sistema criado se comunique com outros automaticamente. O JEE também possui a característica da arquitetura cliente/ servidor, onde parte da aplicação é executada na máquina e outra parte no servidor. (FILHO; RIBEIRO, 2010) JME – é uma plataforma de desenvolvimento de aplicativos para sistemas embarcados, ou seja, sistemas que funcionam em um dispositivo específico como: celular, controles remotos, semáforos. Esta plataforma oferece recursos específicos para este tipo de desenvolvimento e entre estes recursos está a facilidade de se lidar com as limitações da capacidade de processamento dos equipamentos. (FILHO; RIBEIRO, 2010) 1.15 SERVLET Servlets são classes Java que necessitam de um servidor web para serem executadas. Eles possuem a função de receber uma solicitação, processá-la junto a um servidor web e devolver uma resposta. (SIERRA; BATES, 2005) De acordo com Gonçalves (2006), os Servlets são utilizados para a criação de paginas web com conteúdo dinâmico, ou seja, paginas que alteram o conteúdo de acordo com ações executadas pelo usuário. Para a construção de um Servlet não se faz uso da interface gráfica, e sim de códigos Java, após o recebimento da requisição e o processamento da tarefa solicitada, o Servlet pode retornar como resposta, uma pagina HTML ou conteúdo Multipurpose Internet Mail Extensions (MIME). 33 1.16 JSP JSP é uma tecnologia Java também voltada para o desenvolvimento de aplicações web que surgiu com o intuito de aprimorar a tecnologia de Servlets. Mesmo por ser muito conhecida e ser considerada uma das melhores tecnologias de desenvolvimento de conteúdo dinâmico para internet, a tecnologia Servlet misturava códigos Java com códigos HTML, o que dificultava a manutenção das páginas, visto que, um especialista em web designer que não conhece Servlets, teria dificuldades em realizar modificações no código HTML. Esse problema foi identificado pela Sun Microsystems que, por sua vez, desenvolveu a JSP. (KURNIAWAN, 2002) A tecnologia JSP é utilizada na criação de páginas web dinâmicas, ou seja, a JSP disponibiliza os recursos necessários para o desenvolvimento de páginas que se modificam durante o tempo de execução. Para que essas modificações ocorram, utilizam-se códigos Java dentro do HTML, esses códigos quando acionados, são responsáveis pelas atualizações dinâmicas da página. 1.18 JDBC Atualmente é imprescindível que uma aplicação que necessite do armazenamento de grande quantidade de informações se conecte a um banco de dados para que haja um melhor gerenciamento das informações. Para que essa comunicação ocorra entre o banco de dados e o aplicativo Java, foi criada uma solução denominada JDBC. O JDBC é uma API incluída na linguagem Java que torna possível o acesso de aplicativos ao banco de dados. Além disso, ele permite que uma única aplicação se comunique com diversos bancos de dados, ressaltando que, para que haja essa comunicação, o banco de dados deve possuir suporte a um driver JDBC. (GONÇALVES, 2006) 1.19 UNIFIED MODELING LANGUAGE (UML) Conforme Silva (2007), a UML é um padrão internacional de notação orientada a objetos promovida pela entidade normalizadora Object Management Group (OMG). A UML surgiu em meio a várias tentativas de unificar notações, essas tentativas se deram devido ao problema de existirem várias propostas de notações 34 que dificultavam o entendimento por parte do usuário, visto que cada projeto poderia utilizar uma notação diferente. O suporte de ferramentas também era um problema, pois a criação de ferramentas era centralizada em poucas notações, limitando o usuário a utilizar as que possuíam esse suporte. A ideia de unificações de notação não era exatamente nova e nem a UML foi a primeira tentativa de fazê-lo. De fato, o maior obstáculo de uma proposta de unificação de notações era tornar-se aceita. Ter conseguido esse feito é, talvez, um dos maiores méritos da UML. (SILVA, 2007, p.81). A UML é composta por diagramas que são divididos em dois grupos: diagramas estruturais e diagramas de comportamento. Como o próprio nome diz, os diagramas estruturais são utilizados para estruturação do sistema e das classes que o compõe. Os diagramas que englobam a estrutura do sistema são: diagrama de classe, diagrama de objetos, diagrama de pacotes, diagrama de estrutura composta, diagrama de componentes e diagrama de utilização. Os diagramas de comportamento são utilizados para mostrar e analisar o sistema em funcionamento, esses diagramas são importantes, principalmente em projetos de grande porte, visto que é necessário saber o comportamento do sistema perante suas funcionalidades. A categoria de diagramas de comportamento é composta pelos: diagrama de caso de uso, diagrama de divisão geral de interação, diagrama de atividades, diagrama de máquina de estados, diagrama de sequência, diagrama de comunicação e diagrama de temporização. 35 2 ANÁLISE E PROJETO DE SISTEMA O objetivo deste capítulo é apresentar o estado da prática atual da empresa, além de descrever toda a estrutura de documentos e diagramas que explicam e ilustram as funcionalidades e arquitetura do sistema. 2.1 ANÁLISE DE NEGÓCIO Identifica-se na análise de negócio, a situação atual da empresa em questão, na qual seu objetivo é mostrar os problemas enfrentados, necessidades e pessoas envolvidas no processo, visando uma solução eficaz para a eliminação do problema. 2.1.1 Instrução do problema Por estar localizada em uma cidade de pequeno porte, a empresa Car System ainda é uma marca desconhecida, possui um número limitado de clientes e não existe a possibilidade de se aumentar as vendas e a quantidade de clientes consideravelmente. Uma solução é a criação de um sistema de vendas online com o objetivo de tornar os produtos da empresa acessíveis às pessoas de todo o Brasil. Dessa forma, haverá a possibilidade de se aumentar os clientes e as vendas. 2.1.2 Análise de Mercado A loja virtual será desenvolvida para a empresa Car System que, atualmente está localizada em uma cidade de pequeno porte, não possui marcas conhecidas no mercado, as vendas estão limitadas para uma quantidade pequena de pessoas e a possibilidade de aumentar o número de clientes torna-se difícil devido a pequena quantidade de habitantes da cidade. Dessa forma o sistema de vendas online (loja virtual) almeja tornar os produtos da empresa Car System acessíveis para mais pessoas na tentativa de aumentar as vendas consideravelmente. 36 2.1.3 Atores envolvidos no processo O administrador da loja e os clientes serão os atores envolvidos no sistema. O primeiro será responsável por administrar todas as ações no site, no qual após efetuar login, poderá realizar processos de inserção, alteração e exclusão de produtos, categorias, marcas, fabricantes e especificações. O administrador poderá também consultar as compras realizadas. Os clientes serão responsáveis por se cadastrar no site, efetuar login, realizar as compras, realizar contato e efetuar consultas de compras realizadas por eles. 2.1.4 Descrição do ambiente atual Atualmente o dono do negócio realiza tarefas como vendas, instalações e o controle financeiro sem auxilio de funcionários e software. 2.2 VISÃO GERAL DO PRODUTO O objetivo desta seção é mostrar qual a intenção do sistema, ressaltando suas características e necessidades para um funcionamento que atenda as perspectivas do negócio da empresa em questão. 2.2.1 Perspectiva do Produto (Análise de Mercado) O sistema tem como objetivo tornar a marca da loja conhecida, tornar os produtos da loja disponíveis para mais pessoas e aumentar as vendas ao tornar o processo de compra possível por meio do acesso à internet a partir de qualquer dispositivo. Ressalta-se que os produtos vendidos pelo site não serão necessariamente instalados pelo dono da loja (administrador), nesse caso o cliente pode contratar o serviço de um instalador de sua preferência. 2.2.2 Premissas e Dependências Na loja, há necessidade de um computador com acesso a internet, visto que o site será carregado pelo browser através do endereço de hospedagem no servidor. 37 2.2.3 Características Funcionalidades do produto: Efetuar login; ação realizada pelo administrador ou cliente, que necessitam dessa funcionalidade para realizar determinadas operações no site. O administrador, por ser responsável pela administração do sistema, possuirá privilégios não pertencentes aos clientes e não necessitará de cadastro no sistema, pois o acesso será concedido pelos desenvolvedores do site. Os clientes, se não cadastrados, deverão obrigatoriamente se cadastrar no site ao final da compra, e efetuar login para finalizar a mesma. Se já cadastrados, poderão efetuar login desde o primeiro momento em que acessam o site e, assim, poderão acessar sua área e efetuar novas compras. Cadastrar clientes; é realizado na interação do cliente com site, através da funcionalidade cadastro de clientes que estará disponível no final da primeira compra e na página de login. Cadastrar produtos; atividade realizada pelo administrador do site, essa é uma funcionalidade que permite cadastrar, excluir e atualizar os produtos disponibilizados para a venda online. Cadastrar categoria; atividade realizada pelo administrador, que poderá cadastrar as categorias para cada tipo de produto contido na loja virtual. Cadastrar especificações; o administrador é responsável por esta atividade, na qual ele pode cadastrar uma ou mais especificações para os produtos da loja virtual. Cadastrar fabricantes; essa é outra atividade realizada pelo administrador, que após ter cadastrado um ou mais fabricantes, poderá relacionar um deles cada vez que for cadastrar um produto. Cadastrar marcas; atividade semelhante a cadastrar fabricantes, também será realizada pelo administrador que poderá cadastrar ou selecionar a marca do produto no momento em que o estiver cadastrando. Realizar compras; o cliente realiza as compras, porém é necessário o cadastro prévio no site. 38 Consultar compras; o administrador e o cliente possuem acesso a esse item, porém o cliente poderá consultar somente as compras realizadas pelo seu usuário, o administrador possui acesso para consultar todas as compras efetivadas através do site. Realizar contato; é uma funcionalidade que permite com que os clientes entrem em contato com o administrador do site para tirar dúvidas e/ou enviar sugestões. Com os dados devidamente preenchidos, ao utilizar esse recurso o sistema envia um e-mail com as informações descritas pelo cliente para o administrador. Para as funcionalidades supracitadas, são necessários os recursos: SGBD e acesso a Internet. 2.2.4 Outros Requisitos do Produto O produto deverá estar hospedado em um servidor para que esteja disponível na Internet, e assim ser acessado por pessoas que possam vir a serem clientes da empresa. 2.3 ANÁLISE DE REQUISITOS FUNCIONAIS Nessa seção, mostram-se todas as funcionalidades do sistema, e os detalhes destas funcionalidades são apresentados por meio de descrições e diagramas. Junto a estes detalhes, as funcionalidades são atribuídas aos atores envolvidos no negócio da empresa Car System, demonstrando assim, como é o funcionamento do sistema. 2.3.1 Análise de Requisitos Funcionais Para a obtenção dos resultados esperados com o site, considerando o administrador e o cliente como atores, identificam-se as seguintes funcionalidades: cadastrar clientes, cadastrar produtos, cadastrar categoria, cadastrar especificação, cadastrar fabricante, cadastrar marca, realizar compras, consultar compras, realizar contato e efetuar login. 39 2.3.1.1 Diagrama de Caso de Uso Figura 2.1 – Diagrama de Caso de Uso Fonte: Elaborado pelos autores, 2013 2.3.1.2 Especificação de Histórias Uma loja do seguimento de equipamentos e acessórios para automóveis necessita de um sistema de vendas online para ampliar o numero de clientes, vendas e se tornar competitiva no mercado em que atua. A única pessoa que trabalha na empresa é o próprio dono. Ele é o encarregado de todas as tarefas na loja, tais como: vender os equipamentos, instalar, comprar novos equipamentos, entre outros. Com a solução proposta, não há a necessidade de o cliente estar presente na loja, pois através de uma conexão com a internet ele pode realizar as compras através do site. Para realizar a compra, o cliente deve adicionar os produtos ao carrinho de compras e finalizar a mesma efetuando cadastro no site. Depois de ter 40 realizado o cadastro na primeira compra, o cliente deverá apenas efetuar o login ao final de cada compra no site, utilizando o login e senha registrados no cadastro. O cadastro de produtos também é uma função atribuída ao administrador, que nesse caso, analisa qual categoria o produto pertence e realiza a inserção do produto no site. No cadastro de produtos, o administrador também cadastra as especificações do produto, marca e fabricante, além de informar o preço e acrescentar fotos para uma melhor apresentação ao cliente. As compras são realizadas pelos clientes e, logo após, é notificado através de um e-mail automático que é disparado assim que o cliente efetua a compra. O administrador e o cliente possuem o recurso de visualizar compras. O administrador poderá visualizar todas as compras realizadas no site através de dois períodos informados e o cliente poderá visualizar as compras realizadas por ele. 2.4 ANÁLISE E DESIGN A etapa de análise e design objetiva criar o design ou a arquitetura do sistema a ser desenvolvido a partir dos requisitos do sistema e de uma análise mais específica. Esta arquitetura deve ser adaptada para que corresponda à implementação. 2.4.1 Diagrama de Implantação Estes diagramas ilustram a implantação dos elementos de software à arquitetura física e a comunicação de rede entre esses elementos. Figura 2.2 – Diagrama de Implantação Fonte: Elaborado pelos autores, 2013 41 2.4.2 Projeto de Banco de Dados O projeto de banco de dados é uma atividade essencial no desenvolvimento de software, pois a não realização dessa atividade pode causar problemas como ineficiência do banco de dados em atender a demanda das aplicações e problemas na manutenção. (MACHADO, 2008) Para o desenvolvimento de um projeto de banco de dados orientada a modelagem de banco de dados, deve-se envolver os seguintes modelos que o compõe: modelo conceitual, modelo lógico e modelo físico. 2.4.2.1 Diagrama de Dados Figura 2.3 – Modelo Lógico Fonte: Elaborado pelos autores, 2013 42 2.4.2.2 Mapeamento para o Modelo Relacional e Projeto Físico Figura 2.4 – Modelo Relacional Fonte: Elaborado pelos autores, 2013 2.4.3 Diagrama de Atividades Os diagramas de atividades oferecem uma notação rica para exibir atividades sequênciais e paralelas em um processo. Esses diagramas são importantes para modelar processos de negócios, fluxos de trabalho, fluxos de dados e algoritmos complexos. 2.4.3.1 Cadastrar Categoria Figura 2.5 – Diagrama de Atividade – Cadastrar Categoria Fonte: Elaborado pelos autores, 2013 43 2.4.3.2 Cadastrar Marca Figura 2.6 – Diagrama de Atividade – Cadastrar Marca Fonte: Elaborado pelos autores, 2013 2.4.3.3 Cadastrar Fabricante Figura 2.7 – Diagrama de Atividade – Cadastrar Fabricante Fonte: Elaborado pelos autores, 2013 2.4.3.4 Cadastrar Especificação Figura 2.8 – Diagrama de Atividade – Cadastrar Especificação Fonte: Elaborado pelos autores, 2013 44 2.4.3.5 Realizar Compra Figura 2.9 – Diagrama de Atividade – Realizar Compra Fonte: Elaborado pelos autores, 2013 2.4.3.6 Cadastrar Produto Figura 2.10 – Diagrama de Atividade – Cadastrar Produto Fonte: Elaborado pelos autores, 2013 45 2.4.3.7 Efetuar Login Figura 2.11 – Diagrama de Atividade – Efetuar Login (Administrador) Fonte: Elaborado pelos autores, 2013 Figura 2.12 – Diagrama de Atividade – Efetuar Login (Cliente) Fonte: Elaborado pelos autores, 2013 46 2.4.3.8 Cadastrar Cliente Figura 2.13 – Diagrama de Atividade – Cadastrar Cliente Fonte: Elaborado pelos autores, 2013 2.4.3.9 Realizar Contato Figura 2.14 – Diagrama de Atividade – Realizar Contato Fonte: Elaborado pelos autores, 2013 2.4.4 MVC O Diagrama MVC é o padrão de arquitetura de software que tem a finalidade de separar a aplicação em três camadas: Model que representa as classes que se está trabalhando, View define como e o que será apresentado na tela, e o Controller que gerencia os eventos entre a interface do usuário e o modelo. 47 2.4.4.1 Cadastrar Categoria Figura 2.15 – MVC – Cadastrar Categoria Fonte: Elaborado pelos autores, 2013 2.4.4.2 Cadastrar Marca Figura 2.16 – MVC – Cadastrar Marca Fonte: Elaborado pelos autores, 2013 48 2.4.4.3 Cadastrar Fabricante Figura 2.17 – MVC – Cadastrar Fabricante Fonte: Elaborado pelos autores, 2013 2.4.4.4 Cadastrar Especificação Figura 2.18 – MVC – Cadastrar Especificação Fonte: Elaborado pelos autores, 2013 49 2.4.4.5 Realizar Compra Figura 2.19 – MVC – Realizar Compra Fonte: Elaborado pelos autores, 2013 2.4.4.6 Cadastrar Produto Figura 2.20 – MVC – Cadastrar Produto Fonte: Elaborado pelos autores, 2013 50 2.4.4.7 Efetuar Login Figura 2.21 – MVC – Efetuar Login (Administrador) Fonte: Elaborado pelos autores, 2013 Figura 2.22 – MVC – Efetuar Login (Cliente) Fonte: Elaborado pelos autores, 2013 51 2.4.4.8 Cadastrar Cliente Figura 2.23 – MVC – Cadastrar Cliente Fonte: Elaborado pelos autores, 2013 2.4.4.9 Realizar Contato Figura 2.24 – MVC – Realizar Contato Fonte: Elaborado pelos autores, 2013 2.4.5 Diagrama de Sequência Os Diagramas de Sequência são usados para representar os eventos de entrada e saída do sistema e são muito importantes para o projeto de objetos. 52 2.4.5.1 Cadastrar Categoria Figura 2.25 – Diagrama de Sequência – Cadastrar Categoria Fonte: Elaborado pelos autores, 2013 2.4.5.2 Cadastrar Marca Figura 2.26 – Diagrama de Sequência – Cadastrar Marca Fonte: Elaborado pelos autores, 2013 53 2.4.5.3 Cadastrar Fabricante Figura 2.27 – Diagrama de Sequência – Cadastrar Fabricante Fonte: Elaborado pelos autores, 2013 2.4.5.4 Cadastrar Especificação Figura 2.28 – Diagrama de Sequência – Cadastrar Especificação Fonte: Elaborado pelos autores, 2013 54 2.4.5.5 Cadastrar Cliente Figura 2.29 – Diagrama de Sequência – Cadastrar Cliente Fonte: Elaborado pelos autores, 2013 2.4.5.6 Cadastrar Produto Figura 2.30 – Diagrama de Sequência – Cadastrar Produto Fonte: Elaborado pelos autores, 2013 55 2.4.5.7 Efetuar Login Figura 2.31 – Diagrama de Sequência – Efetuar Login (Administrador) Fonte: Elaborado pelos autores, 2013 Figura 2.32 – Diagrama de Sequência – Efetuar Login (Cliente) Fonte: Elaborado pelos autores, 2013 56 2.4.5.8 Realizar Compra Figura 2.33 – Diagrama de Sequência – Realizar Compra Fonte: Elaborado pelos autores, 2013 2.4.5.9 Realizar Contato Figura 2.34 – Diagrama de Sequência – Realizar Contato Fonte: Elaborado pelos autores, 2013 57 3 IMPLEMENTAÇÃO Neste capítulo, são mostradas as interfaces gráficas do sistema e suas respectivas funcionalidades que, por sua vez, se dividem em área do usuário, área do cliente e área do gerente. Também são apresentados os códigos responsáveis pelas principais funcionalidades do sistema e pelo funcionamento do Web Design Responsivo junto a simulação do funcionamento do site em diferentes resoluções. 3.1 ÁREA DO USUÁRIO Nesta subdivisão, são apresentadas as interfaces com suas respectivas funcionalidades que o usuário tem acesso sem a necessidade de acessar a área do cliente ou gerente. 3.1.1 Página Home do Site Na figura 3.1, é ilustrada a página inicial do site, denominada página Home. Ao acessar o site, o usuário visualiza a página Home que, assim como todas as outras páginas, possui um menu superior alinhado à direita, o logo da loja alinhado à esquerda, um campo de busca por nome de produto, um menu lateral alinhado a esquerda que divide os produtos por categoria, o conteúdo principal e rodapé. Figura 3.1 – Página Home do site Fonte: Elaborada pelos autores, 2013. 58 Sempre que acessada, a página Home possui como conteúdo os produtos em oferta. Todas as páginas do site permitem a busca por nome de produtos, a partir do campo na parte superior da página, e a busca por ofertas ou destaques, a partir do campo no rodapé da página. Quando qualquer uma dessas três buscas é solicitada, o site é direcionado para a página Home com o respectivo conteúdo buscado. 3.1.2 Página para Contato Na figura 3.2, é apresentada a página de Contato. Figura 3.2 – Página de Contato Fonte: Elaborada pelos autores, 2013. O usuário pode utilizar esta página para entrar em contato com o Gerente da loja. Para isso, o usuário deve informar dados como: nome, email, cidade, telefone, assunto e mensagem. 3.1.3 Carrinho de Compras Na figura 3.3, é apresentada a página do carrinho de compras. Esta página é usada para exibir os produtos adicionados ao carrinho pelo usuário, e quando ela é acessada através do menu superior, e não existe nenhum item adicionado no carrinho, a página não permite que o usuário dê andamento a uma compra. 59 Figura 3.3 – Carrinho de Compras Fonte: Elaborada pelos autores, 2013. 3.1.4 Login Na figura 3.4, é exibida a página que o usuário visualiza ao optar por efetuar login, opção disponível no menu superior. A partir desta página, o usuário pode seguir para a página de login do gerente ou para página de login do cliente. O funcionamento da página de login do cliente e login do gerente são mostrados nos itens 3.2 Área do Cliente e 3.3 Área do Gerente respectivamente. Figura 3.4 – Login Fonte: Elaborada pelos autores, 2013. 60 3.1.5 Buscar produtos pelo menu Lateral Na figura 3.5, é exibida a página Home com o resultado da busca por “CD Player”, no menu Lateral. Figura 3.5 – Busca por categorias do menu Lateral Fonte: Elaborada pelos autores, 2013. 3.1.6 Exibição de detalhes de produto Na figura 3.6, é ilustrada a página de detalhes de produto. Figura 3.6 – Detalhes do produto Fonte: Elaborada pelos autores, 2013. 61 Na página de detalhes de produto, o usuário poderá visualizar informações como a garantia do produto, as especificações atribuídas a ele, o preço, três fotos e também poderá efetuar download do manual do produto. 3.1.7 Realização de compras pelo site Para melhor explicar o funcionamento do processo de efetuar compra no site, é mostrada uma compra sendo realizada por um cliente ainda não cadastrado, ou seja, é mostrada a maior sequência possível de passos que uma compra pode ter neste site. Em outra situação, na qual o usuário já se cadastrou e confirmou o cadastro, para realizar uma compra, ele pode efetuar login antes de iniciar a compra. Dessa forma, logo o site exibirá a página de inserção de dados do cartão quando o usuário clicar em “Finalizar Compra”. O usuário poderá também optar por efetuar login depois de ter escolhido os produtos do carrinho, pois caso o mesmo finalize o carrinho sem estar logado, o site exibirá a página de login do cliente. Na figura 3.7, é apresentada a pagina do carrinho de compras após o usuário ter adicionado um produto ao carrinho a partir da opção “Adicionar ao Carrinho”, disponível abaixo de cada produto no site. Um produto não terá a opção de adição ao carrinho de compras, caso ele tenha a quantidade em estoque igual a zero. Nesse caso, aparecerá abaixo do produto a mensagem de “Produto indisponível”. Figura 3.7 – Adição de produto ao carrinho de compras Fonte: Elaborada pelos autores, 2013. 62 Com pelo menos um produto adicionado ao carrinho, o usuário tem opções como: atualizar valores, opção que calcula os valores do carrinho de acordo com a quantidade informada no campo Quantidade, excluir, que exclui o produto do carrinho e, por fim, a opção finalizar carrinho, que direciona o site para a página de inserção de dados do cartão. Caso o usuário informe um novo valor para o campo Quantidade e se esqueça de clicar em “Atualizar Valores”, o site irá calcular os valores da compra automaticamente quando o usuário optar por finalizar a compra. E caso o usuário informe um valor para o campo Quantidade, que seja maior que a quantidade em estoque do produto desejado, o site não irá permitir a atualização dos valores ou o andamento da compra e exibirá uma mensagem para informá-lo sobre a quantidade em estoque do produto. Na figura 3.8, é ilustrada a página do carrinho de compras após o cliente tentar dar andamento em uma compra com um valor no campo quantidade do carrinho maior do que a quantidade em estoque do produto. Figura 3.8 – Mensagem do site sobre quantidade em estoque Fonte: Elaborada pelos autores, 2013. Com os produtos e as respectivas quantidades já definidas, considerando as quantidades dos produtos em estoque, o usuário poderá dar andamento clicando na opção “Finalizar Carrinho”. Nesta situação, como definida no início deste item, o usuário ainda não está cadastrado e, consequentemente, não está logado. Assim, após finalizar o carrinho, a página de login do cliente é apresentada. 63 Na figura 3.9, é apresentada a página de login do cliente. Figura 3.9 – Login do Cliente ao efetuar compra Fonte: Elaborada pelos autores, 2013. A partir da página de login do Cliente, o usuário poderá acessar a página de cadastro de cliente. Na figura 3.10, é apresentada a página de cadastro de Clientes. Figura 3.10 – Cadastro de Cliente Fonte: Elaborada pelos autores, 2013. Após ter realizado o cadastro, o cliente recebe um email com um link no qual ele deve acessar para confirmar o cadastro no site. 64 Na figura 3.11, é ilustrada a página exibida pelo site quando um cadastro é realizado com sucesso. Figura 3.11 – Confirmação de cadastro Fonte: Elaborada pelos autores, 2013. Uma vez que a compra foi realizada, ao confirmar o cadastro por meio do link enviado por email, o usuário terá acesso à página para inserção dos dados do cartão para finalizar a compra. Na figura 3.12, é apresentada a página para inserção dos dados do cartão. Figura 3.12 – Inserção dos dados do cartão Fonte: Elaborada pelos autores, 2013. 65 Na página de inserção de dados do cartão, o cliente tem a opção de cancelar a compra. Se o cliente optar por cancelar a compra, todos os produtos serão excluídos do carrinho, e o site exibirá a página Home. Ao finalizar a compra, o site exibe uma página com alguns dados do Cliente e alguns dados da Compra. Na figura 3.13, é ilustrada a página que é exibida quando o cliente finaliza a compra. Figura 3.13 – Página com dados da compra e do cliente Fonte: Elaborada pelos autores, 2013. 3.2 ÁREA DO CLIENTE Nesta subdivisão, são mostradas as interfaces e funcionalidades que os clientes tem acesso ao efetuar login no site. 3.2.1 Login do Cliente Para acessar a área do cliente, o usuário deve efetuar login por meio da página de login do cliente, disponível na página de login que permite acesso para as páginas de login do gerente e login dos clientes, que pode ser acessada ao clicar na opção “Login” no menu superior. Se na tentativa de efetuar login, o cliente informar dados incorretos, o site irá exibir uma página informando um erro. Na figura 3.14, é apresentada a página que o usuário utiliza para efetuar login no site. 66 Figura 3.14 – Login de clientes Fonte: Elaborada pelos autores, 2013. 3.2.2 Área do Cliente Na figura 3.15, é apresentada a área do cliente. Figura 3.15 – Área do cliente Fonte: Elaborada pelos autores, 2013. 3.2.3 Atualização de dados do Cliente Na figura 3.16, é apresentada a página para alteração dos dados do cliente. 67 Figura 3.16 – Alteração de dados do cliente Fonte: Elaborada pelos autores, 2013. 3.2.4 Visualização de Compras Na figura 4.17, é ilustrada a página para visualização de compras. Nesta página, o cliente poderá visualizar as compras realizadas por ele. Figura 3.17 – Visualização de compras do cliente Fonte: Elaborada pelos autores, 2013. A partir da página de visualização das compras, o cliente pode acessar os detalhes de cada compra. 68 Na figura 3.18, é apresentada a página de detalhes de compras do cliente. Figura 3.18 – Visualização de detalhes de compras de clientes Fonte: Elaborada pelos autores, 2013. 3.3 ÁREA DO GERENTE Nesta subdivisão, são mostradas as interfaces e funcionalidades que os gerentes terão acesso ao efetuar login no site. 3.3.1 Login Gerente Para ter acesso à área dos gerentes, o usuário deve efetuar login por meio da página de login do gerente, disponível na página de login que permite acesso para as páginas de login de gerente e de clientes, localizada no menu superior. Caso os dados informados pelo gerente estejam incorretos, o site exibirá uma página que informa um erro. É a partir da área do gerente que as principais funcionalidades do site podem ser acessadas. Funcionalidades como o cadastro de produtos, essencial para que uma compra possa ser realizada, e inserção de outras informações muito importantes para que os clientes possam se informar melhor no momento em que forem adquirir o produto desejado. A partir da figura 3.19, o usuário pode visualizar a página de login do gerente. 69 Figura 3.19 – Login Gerente Fonte: Elaborada pelos autores, 2013. 3.3.2 Área do Gerente Na figura 3.20, é apresentada a área do gerente. Figura 3.20 – Área do Gerente Fonte: Elaborada pelos autores, 2013. 3.3.3 Menu de Marcas Na figura 3.21, é apresentada o menu de marcas. 70 Figura 3.21 – Menu de marcas Fonte: Elaborada pelos autores, 2013. Ao optar pela opção “Marcas”, disponível no menu da área do gerente, o site irá exibir um submenu para gerenciamento de marcas que permite cadastrar, consultar ou voltar para a área do gerente. As outras opções de gerenciamento de categorias, fabricantes e especificações, presentes no menu da área do gerente, não serão apresentadas, pois são similares a opção de gerenciamento de marcas. Na figura 3.22, é exibida a página de cadastro de marcas. Figura 3.22 – Cadastro de marcas Fonte: Elaborada pelos autores, 2013. 71 Na figura 3.23, é exibida a página de consulta de marcas. Ao encontrar marcas cadastradas, o site automaticamente exibe a opção de atualizá-las. Figura 3.23 – Consulta de marcas Fonte: Elaborada pelos autores, 2013. Na figura 3.24, é exibida a página de atualização de marcas. Figura 3.24 – Atualização marcas Fonte: Elaborada pelos autores, 2013. Ao optar por atualizar uma marca, os dados da mesma estarão disponíveis no formulário de atualização. 72 3.3.4 Menu de Produtos Na figura 3.25, é apresentado o menu de produtos. Figura 3.25 – Menu de produtos Fonte: Elaborada pelos autores, 2013. A funcionalidade cadastro de produto aparece como a mais complexa e está dividida nas etapas de inserção de dados genéricos e de adição de especificações. Na figura 3.26, é exibida a primeira etapa do cadastro de produtos. Figura 3.26 – Cadastro de produtos Fonte: Elaborada pelos autores, 2013. 73 A partir da página de adição de especificações ao produto, pode-se cadastrar novas especificações. Quando uma especificação é cadastrada nesta etapa, o site exibe a página de adição de especificação ao produto novamente, já com a nova especificação cadastrada, para que o gerente possa dar andamento ao cadastro de produto. Na figura 3.27, é apresentada a segunda etapa de cadastro de produtos. Figura 3.27 – Adição de Especificação ao cadastrar Fonte: Elaborada pelos autores, 2013. Na figura 3.28, é apresentada a página de consulta de produtos. Figura 3.28 – Consulta de produtos Fonte: Elaborada pelos autores, 2013. 74 Na figura 3.29, é apresentada a página de atualização de produtos. Figura 3.29 – Atualização de produtos Fonte: Elaborada pelos autores, 2013. Na figura 3.30, é exibida a página de adição de especificação ao produto. Figura 3.30 – Adição de especificação ao atualizar Fonte: Elaborada pelos autores, 2013. 3.4 APRESENTAÇÃO DO CÓDIGO FONTE Nesta seção, serão apresentados os códigos que são utilizados nas funcionalidades mais complexas do site. 75 3.4.1 Cadastro de Produtos O formulário utilizado para cadastro de produto permite inserção de dados como: o nome do produto, quantidade em estoque, garantia, preço, percentual de desconto, manual, quantidade vendida, fotos, marca, fabricante, categoria, e a opção de definição do produto como em oferta e destaque ou não. Para que um formulário possa permitir a inserção de arquivos, o mesmo deve ter a propriedade enctype definida como multipart/form-data, e depois que esses dados são passados da página de cadastro para o servlet, o processo de recuperação dos dados é dividido em duas etapas: a etapa de recuperação de caracteres e a etapa de recuperação de arquivos. Na figura 3.31, é exibido o código utilizado para recuperação dos dados do formulário. Figura 3.31 – Recuperação de dados do formulário Fonte: Elaborada pelos autores, 2013. No código da figura 3.30, o código está resumido, pois o objetivo é apenas mostrar como os valores do formulário são recuperados. O laço While percorre os valores recuperados e o comando if se encarrega de verificar, por meio do método isFormField, se o valor vem de um campo do tipo arquivo ou não. 76 Na figura 3.32, é exibido o código utilizado para fazer upload de arquivo. Este código é parte do código utilizado para gerenciar os arquivos. Figura 3.32 – Upload de arquivo Fonte: Elaborada pelos autores, 2013. Após os dados terem sidos recuperados e as imagens gravadas nos diretórios, antes de registrar os dados dos produtos no banco, o servlet faz uma verificação que identifica se um novo produto está sendo inserido ou se um produto existente está sendo atualizado. Na figura 3.33, é apresentado o código que verifica se um novo produto está sendo inserido, ou se um produto existente está sendo atualizado. Figura 3.33 - Verificação de inserção ou atualização do Servlet ControleProduto Fonte: Elaborada pelos autores, 2013. 77 Com o produto cadastrado ou atualizado, o próximo passo é exibir as especificações para que o gerente tenha a opção de adicioná-las ao produto. Na figura 3.34, é apresentado o trecho de código da página jsp que exibe as especificações na página de adição de especificação ao produto. Figura 3.34 – Página de adição de especificação Fonte: Elaborada pelos autores, 2013. Neste código, uma sincronização foi feita para a definição das propriedades name no formulário, e esta mesma sincronização é feita no servlet para a recuperação dos valores corretamente. 78 Após o uso do método para recuperar as especificações cadastradas no banco, é realizada uma verificação para se saber se a lista que recupera o retorno do método, possui alguma especificação. Caso possua pelo menos uma especificação, um laço irá percorrer a lista e uma verificação será feita para identificar uma inserção ou uma atualização do produto no qual se deseja que sejam adicionadas ou removidas as especificações. Caso seja uma inserção, a página será gerada com todas as especificações desmarcadas e com os respectivos valores vazios e caso seja uma atualização, serão recuperados os dados das especificações e a página conterá as especificações já adicionadas ao produto com o valor que foi especificado. Na figura 3.35, é apresentado o código utilizado pelo servlet para identificar uma inserção ou uma atualização. Figura 3.35 – Verificação de inserção ou atualização do servlet ControleListaEspecificacao Fonte: Elaborada pelos autores, 2013. Esta verificação é muito importante, pois recupera o código do último produto inserido em caso de inserção ou o código do produto que foi atualizado em caso de atualização, ou seja, recupera o código do produto correto a ser relacionado ou não com as especificações. Na figura 3.36, é apresentado o código usado para recuperar os valores dos códigos das especificações e os valores atribuídos às especificações. Figura 3.36 – Recuperação dos valores do formulário Fonte: Elaborada pelos autores, 2013. 79 Neste código, o valor zero da variável t é convertido para string e atribuído para a string nameCodEspec. Dessa forma, ao utilizar o comando request.getParameter(nameCodEspec), o valor contido na string nameCodEspec equivale a propriedade name do formulário e, assim, esta string é usada para recuperar o valor da propriedade name que foi definida como zero. O valor de t é incrementado em um, para cada vez que o laço for executado e, devido a isso, o valor dos códigos de todas as especificações são recuperados no servlet. Mas caso o campo checkbox de uma especificação não seja marcado, o valor enviado ao servlet será nulo. A mesma situação ocorre para a recuperação do valor atribuído à especificação. Deve-se considerar que o valor dado a uma especificação não será recuperado se o respectivo não estiver marcado. Na figura 3.37, é apresentado o código que gerencia a inserção das especificações na tabela listaEspecificação. Figura 3.37 – Gerencia Especificação Fonte: Elaborada pelos autores, 2013. 80 No início do código, é verificado se uma inserção ou uma atualização está ocorrendo. Caso seja uma inserção e o valor recuperado do atributo “manipulaProduto” for igual a 1, é verificado se o campo checkbox da especificação está marcado. Se estiver, os dados são inseridos na tabela listaEspecificação. Caso seja uma atualização, o valor recuperado do atributo “manipulaProduto” for igual a 2, é verificado se o campo checkbox foi marcado. Se o campo checkbox não foi marcado é verificado se existe um registro com o código do produto e com o código da especificação. Se existir, o registro é excluído. Caso o checkbox foi marcado, é verificado se o código do produto e o código da especificação existem em um registro da tabela listaEspecificação. Se existir, o valor atribuído ao registro do banco é comparado com o registro passado pelo formulário. Se for diferente, o valor é atualizado, caso contrário, nada é feito. Mas caso o checkbox foi marcado e nada foi encontrado no banco, um novo registro é inserido na tabela listaEspecificação. 3.4.2 Download do manual do produto Quando o usuário solicita o manual, o código do produto é enviado ao servlet e, a partir deste código, são recuperados todos os dados do produto, pois o nome do produto será utilizado no processo de download. Ao concatenar o diretório padrão dos arquivos do site, com o código do produto e o nome da pasta “manual”, é possível gerar o diretório completo e recuperar o arquivo correto. Figura 3.38 – Servlet DownloadManual Fonte: Elaborada pelos autores, 2013. 81 3.4.3 Servlet para recuperar imagem de qualquer diretório O servlet TrataImagem é utilizado para recuperar as imagens do site, pois as mesmas são gravadas em um diretório fora da aplicação. Na figura 3.39, é apresentado o código do servlet utilizado para recuperar as imagens do site. Figura 3.39 – Servlet TrataImagem Fonte: Elaborada pelos autores, 2013. 3.4.4 Web Design Responsivo No primeiro capítulo, o funcionamento e a forma de implementação das três técnicas que compõem o Web Design Responsivo foi apresentado na teoria e, nesta seção, o funcionamento e a forma de implementação das três técnicas é apresentado por meio de códigos fonte e imagens. Neste site, a necessidade do uso da técnica Imagens e recursos flexíveis, foi devido o uso de uma imagem na qual é apresentada a marca da empresa. Na figura 3.40, é apresentada a forma na qual esta técnica se aplica no arquivo de estilização. Figura 3.40 – Imagem flexível Fonte: Elaborada pelos autores, 2013. 82 Para demonstrar a forma de implementação da técnica Layout de Fluído, primeiramente é apresentado um código CSS com medidas fixas para que depois, ao apresentar um código CSS com medidas flexíveis, a diferença possa ser notada. Na Figura 3.41, é apresentado o código CSS com medidas fixas. Figura 3.41 – Código CSS fixo Fonte: Elaborada pelos autores, 2013. 83 Na figura 3.42, é apresentado o código CSS com medidas flexíveis para demonstrar o uso da técnica Layout de Fluído. Figura 3.42 – Código CSS flexível Fonte: Elaborada pelos autores, 2013. 84 Para apresentar o funcionamento e a forma de implementação da técnica Media Queries, os códigos e a evolução do elemento superior do site são mostrados ao mesmo tempo, exibindo os efeitos do código na evolução do elemento de acordo com a resolução utilizada. Isso acontece apenas nesta seção, pois os efeitos causados pelas duas técnicas apresentadas anteriormente, também são apresentados a partir da evolução deste elemento, pelo fato do banner da empresa ser apresentado nas imagens da evolução e medidas em porcentagem serem usadas nos códigos. A evolução do elemento superior do site, contendo o banner da empresa e o menu superior, é utilizado para apresentar o funcionamento das três técnicas e os códigos visam apresentar o uso de Media Queries. Na figura 3.43, é apresentado o código para dispositivos com resolução mínima de até 846 pixels. Figura 3.43 – Código para resolução mínima de 846 pixels Fonte: Elaborada pelos autores, 2013. Na figura 3.44, é apresentado o elemento superior para dispositivos com resolução mínima de até 846 pixels. Figura 3.44 – Elemento superior para resolução mínima de 846 pixels Fonte: Elaborada pelos autores, 2013. Na figura 3.45, é apresentado o código para dispositivos com resolução mínima de 669 pixels e máxima de 845 pixels. 85 Figura 3.45 – Código para resolução mínima de 699 pixels e máxima de 845 Fonte: Elaborada pelos autores, 2013. Na figura 3.46, é apresentado o elemento superior para dispositivos com resolução mínima de 699 pixels e máxima de 845 pixels. Figura 3.46 – Elemento superior para resolução mínima de 699 pixels e máxima de 845 pixels Fonte: Elaborada pelos autores, 2013. Na figura 3.47, é apresentado o código para dispositivos com resolução mínima de 392 pixels e máxima de 668 pixels. Figura 3.47 – Código para resolução mínima de 392 pixels e máxima de 668 pixels Fonte: Elaborada pelos autores, 2013. Na figura 3.48, é apresentado o elemento superior para dispositivos com resolução mínima de 392 pixels e máxima de 668 pixels. 86 Figura 3.48 – Elemento superior para resolução mínima de 392 pixels e máxima de 668 pixels Fonte: Elaborada pelos autores, 2013. Na figura 3.49, é apresentado o código para dispositivos com resolução máxima de 391 pixels. Figura 3.49 – Código para resolução máxima de 391 pixels Fonte: Elaborada pelos autores, 2013. Na figura 3.50, é apresentado o elemento superior para dispositivos com resolução máxima de 391 pixels. Figura 3.50 – Código para resolução máxima de 391 pixels Fonte: Elaborada pelos autores, 2013. 87 3.4.5 Simulação do site em diferentes resoluções Para a realização dos testes do Design Responsivo da loja virtual, o site http://responsinator.com/, foi utilizado. Nas imagens a seguir, são apresentadas as diferentes adaptações do site em diversas resoluções. Na figura 3.51, o site é apresentado em um dispositivo com resolução de 320 x 480. Figura 3.51 – Dispositivo com resolução de 320 x 480. Fonte: Elaborada pelos autores, 2013. 88 Na figura 3.52, o site é apresentado em um dispositivo com resolução de 320 x 240. Figura 3.52 – Dispositivo com resolução de 320 x 240. Fonte: Elaborada pelos autores, 2013. Na figura 3.53, o site é apresentado em um dispositivo com resolução de 240 x 320. Figura 3.53 – Dispositivo com resolução de 240 x 320. Fonte: Elaborada pelos autores, 2013. 89 Na figura 3.54, o site é apresentado em um dispositivo com resolução de 480 x 320. Figura 3.54 – Dispositivo com resolução de 480 x 320. Fonte: Elaborada pelos autores, 2013. Na figura 3.55, o site é apresentado em um dispositivo com resolução de 685 x 380. Figura 3.55 – Dispositivo com resolução de 685 x 380. Fonte: Elaborada pelos autores, 2013. 90 Na figura 3.56, o site é apresentado em um dispositivo com resolução de 600 x 1024. Figura 3.56 – Dispositivo com resolução de 600 x 1024. Fonte: Elaborada pelos autores, 2013. 91 Na figura 3.57, o site é apresentado em um dispositivo com resolução de 1024 x 600. Figura 3.57 – Dispositivo com resolução de 600 x 1024. Fonte: Elaborada pelos autores, 2013. 92 CONSIDERAÇÕES FINAIS O conceito de loja virtual já é bastante difundido atualmente. São diversas as maneiras como elas se apresentam e buscam promover o negócio para o qual foi desenvolvida, assim como também são várias as ferramentas e técnicas existentes para o seu desenvolvimento. Dessa forma, fica evidente que várias empresas já utilizaram e/ou utilizam uma loja virtual com o intuito de serem competitivas e aumentarem seus lucros. Embasado nesses fatos, surgiu a ideia de montar a loja virtual que compõe esse trabalho, com a intenção de sanar os problemas enfrentados pela empresa Car System. No decorrer do desenvolvimento deste trabalho foram encontradas diversas dificuldades, que vieram desde a escolha de uma bibliografia adequada e a definição das ferramentas que se encaixariam melhor para a resolução do problema, até a complicada tarefa de implementação de um projeto para web. A proposta do uso da ferramenta Designer Responsivo foi de grande valia, e apesar de ter demandado um esforço maior, foi implementada e funcionou conforme o esperado e, além de agregar valores à apresentação do site em diferentes resoluções, também proporcionou conhecimentos importantes devido a sua relevância em um meio no qual a mobilidade é essencial. Ao atingir os objetivos como a implementação de todas as funcionalidades do sistema e do Web Design Responsivo, pode-se concluir que o trabalho em questão possibilitou o desenvolvimento de uma ferramenta que, além de se adequar às novas e promissoras tendências de mercado, também pode ser muito útil para empresas que objetivam ampliar seu negócio e eliminar problemas como os enfrentados pela empresa para o qual ela foi desenvolvida, a Car System. Em consideração às constantes evoluções voltadas para a área de tecnologia da informação e as aplicações envolvidas por ela, pode-se considerar que esse projeto também possui grandes oportunidades de expansão. Essas oportunidades englobam: integração da loja com um sistema de pagamentos, a apresentação visual da aplicação, a adição de recursos, o desenvolvimento de funcionalidades diferentes ou melhoramentos das existentes, segurança voltada para aplicação web, entre outras. 93 Esses fatores podem tornar a loja virtual ainda mais interessante e funcional, ressaltando que o fato dela ser uma aplicação web, provavelmente sempre haverá aprimoramentos a ser implementados com a finalidade de mantê-la atual. 94 REFERÊNCIAS BIBLIOGRÁFICAS ABBEY, M.; COREY, M.; ABRAMSON, I. Oracle 9i: Guia Introdutório. Rio de Janeiro: Campus Ltda, 2002. ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 4. Ed. São Paulo: Pearson Education, 2005. FILHO, R. D. C.; RIBEIRO, C. E. Informática: Programação de Computadores. 4. ed. São Paulo: Fundação Padre Anchieta, 2010. FREEMAN, E.; FREEMAN, E. Use a Cabeça! HTML com CSS e XHTML. 2. ed. Rio de Janeiro: Alta Books Ltda, 2008. GONÇALVES, E. Desenvolvendo Aplicações Web com JSP, Servlets, Java Server Faces, Hibernate, EJB3 Persistence e Ajax. Rio de Janeiro: Ciência Moderna, 2007. GONÇALVES, E. Dominando Java Server Faces e Facelets Utilizando Spring 1.5, Hibernate e JPA. Rio de Janeiro: Ciência Moderna, 2008. GONÇALVES, E. Dominando Netbeans. Rio de Janeiro: Ciência Moderna, 2006. JUNIOR, W. M. et al. Sistemas de Comércio Desenvolvimento. Rio de Janeiro: Campus Ltda, 2002. Eletrônico: Projeto e KURNIAWAN, B. Java para Web com Servlets, JSP e EJB. Rio de Janeiro: Ciência Moderna, 2002. LARMAN, C. Utilizando UML e Padrões: Uma Introdução à Analise e ao Projeto Orientado a Objetos e ao Desenvolvimento Iterativo. Porto Alegre: Bookman, 2007. LEITE, M. Acessando Banco de Dados com Ferramentas RAD: Aplicações em Visual Basic. Rio de Janeiro: Brasport Livros e Multimídia Ltda, 2007. MACHADO, F. N. R. Banco de Dados: Projeto e Implementação. 2. ed. São Paulo: Érica Ltda, 2008. MARCONDES, C. A. HTML 4.0 Fundamental: A Base da Programação para Web. São Paulo: Érica Ltda, 2005. MORRISON, M. Use a Cabeça!: JavaScript. 1. ed. Rio de Janeiro: Alta Books, 2008. NASSU, E. A.; SETZER, V. W. Banco de Dados Orientados a Objetos. São Paulo: Edgard Blucher Ltda, 2009. 95 RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de Gerenciamento de Banco de Dados. 3. ed. São Paulo: McGraw-Hill, 2008. RODRIGUES, L. C.; ESCOLA, J. P. L. Informática: Sistemas Operacionais e Softwares Aplicativos. São Paulo: Fundação Padre Anchieta, 2010. SIERRA, K.; BATES, B. Use a Cabeça!: Java. 2. ed. Rio de Janeiro: Alta Books, 2005. SILVA, R. P. UML: Modelagem Orientada a Objetos. Florianópolis: Visual Books, 2007. TURBAN, E.; KING, D. Comércio Eletrônico: Estratégia e Gestão. São Paulo: Prentice Hall, 2004. WELLING, L.; THOMSON, L. PHP e MySQL: Desenvolvimento Web. 3. ed. Rio de Janeiro: Elsevier Editora Ltda, 2005. ZEMEL, T. Web Design Responsivo: Páginas Adaptáveis para Todos Dispositivos. São Paulo: Casa do Código, 2012.