17
1 DESENVOLVIMENTO DE UM GUIA DE BAIRRO ONLINE 1 Felipe Cardoso Gonçalves <[email protected]> Roland Teodorowitsch 2 <[email protected]> – Orientador Universidade Luterana do Brasil (Ulbra) – Curso de Sistemas de Informação – Campus Canoas Av. Farroupilha, 8.001 – Bairro São José – CEP 92425-900 – Canoas - RS 29 de novembro de 2010 RESUMO O presente artigo tem como objetivo documentar o desenvolvimento de uma aplicação Web responsável pelo cadastramento georreferenciado de estabelecimentos comerciais, onde os usuários poderão, através de pesquisas, descobrir os serviços mais próximos e as melhores rotas de acesso a eles. Palavras-chave: Guia de Bairro; Google Maps API; AJAX; Georreferenciamento; Web 2.0. ABSTRACT Title: “Developing an Online Neighborhood Guide” This paper aims to document the development of a Web application responsible for shops georeferenced registration, where users can, through research, find the services closest and best access routes to them. Key-words: Neighborhood Guide; Google Maps API; AJAX; Georeferencing; Web 2.0. 1 INTRODUÇÃO Este trabalho tem como maior motivação integrar a conveniência dos guias de comércio impressos com a precisão do georreferenciamento e a praticidade da Web 2.0, buscando aumentar a divulgação de pequenos estabelecimentos comerciais na Internet, e tornar fácil e ágil a busca destes por usuários antes acostumados a pesquisar em guias impressos. O principal objetivo do trabalho é a disponibilização de uma ferramenta online que possibilita aos comerciantes a exposição gratuita de seus estabelecimentos, e aos consumidores, um guia prático de pesquisa com todos os dados relevantes sobre o comércio e os serviços disponíveis em seu bairro. Ao consumidor também é oferecida a localização geográfica do que ele procura, referenciada em um mapa onde é também exibida a localização de sua casa. O trabalho foi desenvolvido com foco no bairro Partenon em Porto Alegre, estado do Rio Grande do Sul, devido à sua área razoável, comércio bastante desenvolvido e, principalmente, por questões de localização e facilidade de locomoção do desenvolvedor. Esta última se deve ao fato de que foi feita uma pesquisa sobre o comércio do bairro a fim de alimentar o sistema com uma carga inicial robusta o suficiente para que o sistema pudesse ser desenvolvido, testado e implantado já com uma boa base de dados. Este documento está dividido em oito seções além da Introdução. A Seção 2 explica brevemente o conceito de Web 2.0 e descreve as características de suas aplicações. As Seções 3 ( ASP.NET 3.5 e AJAX Control Toolkit) e 4 (Google Maps API) falam sobre as tecnologias utilizadas no desenvolvimento da aplicação e exibição de mapas através dela. Na Seção 5, são apresentadas aplicações semelhantes já existentes no mercado. A modelagem e o desenvolvimento do trabalho serão apresentadas na Seção 6. Os módulos que compõem o sistema serão descritos na Seção 7, tendo seu funcionamento explicado um a um. As considerações finais são apresentadas na Seção 8. Finalmente, são apresentadas as referências utilizadas no desenvolvimento deste trabalho. 1 Artigo Final da disciplina de Trabalho de Conclusão de Curso em Sistemas de Informação II, submetido ao Curso de Sistemas de Informação da Universidade Luterana do Brasil, Campus Canoas. 2 Professor das disciplinas da área de Sistemas Operacionais dos cursos de Ciência da Computação e Sistemas de Informação, na Ulbra Canoas e Ulbra Gravataí. Coordenador das disciplinas de Trabalho de Conclusão de Curso do Bacharelado em Ciência da Computação na Ulbra Gravataí.

DESENVOLVIMENTO DE UM GUIA DE BAIRRO - ulbra.inf.br · controles diferentes que facilitam a criação de interfaces que executam comandos JavaScript, ... , do Grupo RBS. Neste site,

  • Upload
    dobao

  • View
    216

  • Download
    3

Embed Size (px)

Citation preview

1

DESENVOLVIMENTO DE UM GUIA DE BAIRRO

ONLINE1

Felipe Cardoso Gonçalves <[email protected]> Roland Teodorowitsch

2 <[email protected]> – Orientador

Universidade Luterana do Brasil (Ulbra) – Curso de Sistemas de Informação – Campus Canoas Av. Farroupilha, 8.001 – Bairro São José – CEP 92425-900 – Canoas - RS

29 de novembro de 2010

RESUMO

O presente artigo tem como objetivo documentar o desenvolvimento de uma aplicação Web responsável pelo cadastramento georreferenciado de estabelecimentos comerciais, onde os usuários poderão, através de pesquisas, descobrir os serviços mais próximos e as melhores rotas de acesso a eles.

Palavras-chave: Guia de Bairro; Google Maps API; AJAX; Georreferenciamento; Web 2.0.

ABSTRACT

Title: “Developing an Online Neighborhood Guide”

This paper aims to document the development of a Web application responsible for shops georeferenced registration, where users can, through research, find the services closest and best access routes to them.

Key-words: Neighborhood Guide; Google Maps API; AJAX; Georeferencing; Web 2.0.

1 INTRODUÇÃO

Este trabalho tem como maior motivação integrar a conveniência dos guias de comércio impressos com a precisão do georreferenciamento e a praticidade da Web 2.0, buscando aumentar a divulgação de pequenos estabelecimentos comerciais na Internet, e tornar fácil e ágil a busca destes por usuários antes acostumados a pesquisar em guias impressos.

O principal objetivo do trabalho é a disponibilização de uma ferramenta online que possibilita aos comerciantes a exposição gratuita de seus estabelecimentos, e aos consumidores, um guia prático de pesquisa com todos os dados relevantes sobre o comércio e os serviços disponíveis em seu bairro. Ao consumidor também é oferecida a localização geográfica do que ele procura, referenciada em um mapa onde é também exibida a localização de sua casa.

O trabalho foi desenvolvido com foco no bairro Partenon em Porto Alegre, estado do Rio Grande do Sul, devido à sua área razoável, comércio bastante desenvolvido e, principalmente, por questões de localização e facilidade de locomoção do desenvolvedor. Esta última se deve ao fato de que foi feita uma pesquisa sobre o comércio do bairro a fim de alimentar o sistema com uma carga inicial robusta o suficiente para que o sistema pudesse ser desenvolvido, testado e implantado já com uma boa base de dados.

Este documento está dividido em oito seções além da Introdução. A Seção 2 explica brevemente o conceito de Web 2.0 e descreve as características de suas aplicações. As Seções 3 (ASP.NET 3.5 e AJAX Control Toolkit) e 4 (Google Maps API) falam sobre as tecnologias utilizadas no desenvolvimento da aplicação e exibição de mapas através dela. Na Seção 5, são apresentadas aplicações semelhantes já existentes no mercado. A modelagem e o desenvolvimento do trabalho serão apresentadas na Seção 6. Os módulos que compõem o sistema serão descritos na Seção 7, tendo seu funcionamento explicado um a um. As considerações finais são apresentadas na Seção 8. Finalmente, são apresentadas as referências utilizadas no desenvolvimento deste trabalho.

1 Artigo Final da disciplina de Trabalho de Conclusão de Curso em Sistemas de Informação II, submetido ao Curso de Sistemas de Informação da Universidade Luterana do Brasil, Campus Canoas.

2 Professor das disciplinas da área de Sistemas Operacionais dos cursos de Ciência da Computação e Sistemas de Informação, na Ulbra Canoas e Ulbra Gravataí. Coordenador das disciplinas de Trabalho de Conclusão de Curso do Bacharelado em Ciência da Computação na Ulbra Gravataí.

2

2 A WEB 2.0

O conceito de Web 2.0 surgiu em uma sessão de Brain Storming entre integrantes da O’Reilly e da Media Live International a partir da constatação de que empresas pontocom, que sobreviveram após a crise que abalou a Internet no início da década, possuíam características bastante semelhantes entre si. Através da análise destas características, foram criados conceitos que, depois de agrupados, passaram a formar o que é chamado atualmente de Web 2.0 (O’REILLY, 2005).

Existem diversas definições sobre Web 2.0. O autor Bradley L. Jones (2008) questiona o porquê de tantas pessoas tendo ideias sobre o que a Web 2.0 é ou deixa de ser, qual é a melhor definição para o termo e até mesmo se ela é somente uma moda. A definição mais comumente utilizada é a de um de seus idealizadores:

Web 2.0 é a mudança para uma Internet como plataforma, e uma tentativa de entendimento das regras para obter sucesso nesta nova plataforma. Entre outras, a regra mais importante é desenvolver aplicativos que aproveitem os efeitos de rede para se tornarem melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coletiva. (O'REILLY, 2006).

Os principais conceitos da Web 2.0 a serem utilizados neste trabalho, para tornar a aplicação mais rica, confiável e agradável ao usuário são:

An attitude, not a technology: o sistema não é considerado um pacote, e sim um compromisso com seus usuários;

Data as the Intel Inside: os dados são a peça mais importante de todo o processo de aprimoramento da experiência do usuário;

The perpetual beta e Rich User Experience: o sistema deverá ser mantido em constante aprimoramento para manter sempre os usuários motivados a usar a ferramenta;

User behavior not predetermined: o usuário não tem obrigação de seguir nenhum roteiro de utilização do sistema;

Small Pieces Loosely Joined: a ferramenta proposta deverá utilizar diversos serviços e componentes disponíveis para facilitar o desenvolvimento e garantir maior qualidade;

Trust your users: o sistema possibilitará que os usuários contribuam comentando e avaliando os estabelecimentos comerciais, aumentando a relevância destes de acordo com suas avaliações.

3 ASP.NET E AJAX CONTROL TOOLKIT

Para o desenvolvimento da ferramenta proposta foi escolhida a linguagem ASP.NET 3.5, plataforma de desenvolvimento para Web sucessora do ASP (Active Server Pages), criada pela Microsoft. Por ser baseada no .NET Framework, ela permite o desenvolvimento de aplicações em diversas linguagens suportadas pelo framework, como, por exemplo, C# e Visual Basic .NET. Neste caso, a linguagem definida para o trabalho foi C#.

Como citado na seção anterior, interfaces intuitivas, amigáveis e, principalmente, ágeis são uma das principais características de aplicações Web 2.0 de sucesso. As aplicações citadas utilizam o conjunto de tecnologias chamado AJAX, que, segundo Wenz (2007), possibilita o envio e o recebimento de dados de forma assíncrona, fazendo com que as páginas operem sem necessidade de atualização completa, ou seja, as requisições são enviadas ao servidor e são processadas, ou até mesmo retornam informações de forma praticamente transparente para o usuário, tornando sua experiência mais agradável. Para o desenvolvimento de aplicações com AJAX são utilizados scripts em JavaScript que podem simplesmente enviar comandos para serem executados no servidor, assim como podem também solicitar informações que serão retornadas em formato texto, ou no caso de conjuntos maiores de dados, em formato XML (eXtensible Markup Language).

Para atender a esta necessidade, na implementação da ferramenta proposta, foi utilizado o AJAX Control Toolkit, um projeto open-source baseado no .NET Framework através de um esforço conjunto entre a Microsoft e desenvolvedores da comunidade ASP.NET AJAX. O AJAX Control Toolkit possui mais de 30 controles diferentes que facilitam a criação de interfaces que executam comandos JavaScript, que por sua vez disparam métodos implementados no servidor de forma assíncrona.

3

4 GOOGLE MAPS API

Google Maps é um serviço da Web 2.0 que exibe mapas e imagens aéreas e que pode ser acessado gratuitamente através de um navegador Web em um computador ou em um dispositivo móvel através do endereço http://maps.google.com.br. Esta aplicação provê uma interface intuitiva e de alta capacidade de resposta para visualização de mapas e imagens capturadas por satélites. Além da visualização e navegação por estas imagens, é possível a busca por endereços e também a consulta de possíveis rotas entre dois pontos indicados no mapa. Estas rotas podem ser traçadas considerando o deslocamento a pé ou de carro. A versão mais recente da API já contém também o cálculo de rotas através de ciclovias e outras vias que possibilitem o deslocamento utilizando bicicleta, porém este serviço ainda está disponível somente para as cidades dos Estados Unidos (PIMPLER, 2006a).

Além da aplicação Web, a Google disponibiliza de forma gratuita, para sites que possuam acesso aberto ao público, uma API chamada Google Maps API, através da qual os desenvolvedores podem adicionar a seus sites funcionalidades do serviço Google Maps. A Google se reserva o direito de exibir anúncios publicitários no mapa exibido. Para aplicações com acesso restrito, onde o público em geral não possui acesso, a empresa provê a API Google Maps Premier, na qual alguns serviços adicionais são disponibilizados ao desenvolvedor, tais como:

maior capacidade para solicitações de serviços;

habilidade de prover mapas através do protocolo HTTPS (Hypertext Transfer Protocol Secure);

mais opções de serviço e suporte;

controle sobre os anúncios exibidos nos mapas.

Para a utilização da API é necessária a obtenção de uma chave de acesso para cada diretório da aplicação que utilizar o serviço. O sistema gerará uma chave única para cada diretório especificado e todos os scripts que acessarem o serviço deverão receber como parâmetro esta chave (PIMPLER, 2006b).

4.1 Utilização da Google Maps API

Segundo Gibson e Erle (2006), a Google Maps API é constituída basicamente por 20 classes principais separadas em cinco categorias:

Classes Core, que se referem aos blocos básicos de construção de um mapa;

Map Controls, que possibilitam ao usuário manipular o mapa exibido na tela;

User Data, que possibilitam ao desenvolvedor inserir informações personalizadas no mapa;

Events, que possibilitam que a aplicação reaja de acordo com interações do usuário, tais como cliques ou movimentos do mouse; e

AJAX, que possibilitam que o sistema faça requisições assíncronas a Web Services, ou seja, podendo atualizar o mapa sem a necessidade de atualização da página inteira.

As principais classes para o desenvolvimento do presente trabalho são as seguintes:

Core Objects:

GMap2: responsável pela exibição do mapa na tela;

GLatLng: utilizada para representar um ponto de interesse em qualquer local na face da Terra, contendo as coordenadas para Latitude e Longitude;

Map Controls:

GLargeMapControl, GSmallMapControl e GSmallZoomControl: exibem controles para movimentação e zoom no mapa;

GMapType: representa um objeto contendo o tipo de exibição do mapa, que pode ser: Imagem de Satélite, Mapa e Híbrida (contendo a imagem de satélite sobreposta pelo mapa);

GMapTypeControl: exibe um controle que possibilita que o usuário alterne a exibição do mapa;

GSize: representa unidades bidimensionais de tamanho em pixels;

Geocoder: classe responsável pela conversão entre endereços e coordenadas de latitude e longitude;

User Data:

GMarker: utilizada para exibir ícones para pontos de interesse no mapa;

GInfoWindow: exibe uma janela de notificação no mapa;

4

GInfoWindowTab: exibe uma janela de notificação no mapa dividida em n painéis que podem ser alternados;

GPolyline: utilizada para exibir rotas traçadas no mapa;

Events:

GEvent: representa um evento disparado por uma interação do usuário;

AJAX:

GXml: representa um objeto responsável pelo armazenamento de conteúdo em formato XML;

GXmlHttp: representa um objeto responsável pela transferência de conteúdo em formato XML via protocolo HTTP (Hypertext Transfer Protocol).

5 ESTADO DA ARTE

Foram pesquisados e analisados diversos sites de guias de comércio online para a documentação do Estado da Arte. A conclusão foi que existem diversos sites com ideias semelhantes em alguns pontos, porém diferentes da proposta na forma de utilização do mecanismo de pesquisa e na forma de exibição dos resultados ao usuário.

5.1 Hagah

O primeiro site analisado foi o Hagah, http://www.hagah.com.br, do Grupo RBS. Neste site, por exemplo, após a pesquisa pelo termo “Pizza”, no bairro Moinhos de Vento em Porto Alegre, o usuário é direcionado para uma página onde os estabelecimentos encontrados são exibidos com seu endereço, telefone e um link através do qual o usuário pode entrar em contato com o estabelecimento através do próprio site via e-mail.

São destacados em primeiro lugar na lista os estabelecimentos que pagam pelo serviço de publicidade. Ao lado direito dos resultados da busca, um mapa é exibido com a localização dos itens listados, o que possibilita uma boa noção da localização do estabelecimento. O site também permite que o usuário filtre os resultados da busca por características de seu interesse.

5.2 Apontador

O site Apontador, http://www.apontador.com.br, é um guia que possui cobertura nacional, abrangendo mais de 15.000 cidades, onde o usuário pode localizar endereços, estabelecimentos em regiões específicas, mapas, cidades, estações de metrô, rodoviárias, aeroportos, além de permitir que os usuários criem roteiros de viagem obtendo dados de estradas, distâncias e valores de combustíveis em diferentes localidades.

O Apontador segue diversos conceitos que podem defini-lo como uma aplicação Web 2.0 e que podem ser seguidos como exemplo no desenvolvimento, tais como The Perpetual Beta e Trust Your Users, citados anteriormente.

5.3 Tele Listas

O Grupo Tele Listas, atuante desde 1996 no ramo de listas telefônicas impressas, disponibiliza também as informações no site Tele Listas, http://www.telelistas.net. O site possui uma ferramenta de busca de estabelecimentos integrada com sistema de mapas onde o usuário pode procurar por palavras-chave ou pelo nome e obter a localização dos estabelecimentos no mapa. As pesquisas são filtradas obrigatoriamente por estado e cidade, e como filtro opcional, pode ser informado também o bairro. Depois de efetuada a busca, são listados os ramos de atividade encontrados na pesquisa e é disponibilizado um filtro a partir deles.

Este site possui interface bastante amigável e de fácil utilização, com páginas de carregamento rápido e com controles desenvolvidos com AJAX que fazem com que não necessite de atualização da página inteira para a execução da maioria das operações realizadas.

5.4 Guia Comercial Online

O Guia Comercial Online, http://www.guiacomercialonline.com.br, é um sistema que permite busca por palavras-chave, permitindo a seleção de uma cidade entre as diversas que possuem estabelecimentos

5

cadastrados no site. O foco do site é Brasília e arredores.

Após efetuar a pesquisa, o usuário é direcionado para uma página na qual são exibidos os estabelecimentos que contém as palavras-chave em sua descrição no cadastro.

5.5 Guia de Bairro Zona Sul

Foi analisado também o site Guia de Bairro Zona Sul, http://www.guiadebairro.net, que contém estabelecimentos da cidade do Rio de Janeiro. Este, em vez de permitir buscas por estabelecimentos e/ou palavras-chave, somente exibe uma listagem com categorias através da qual o usuário pode selecionar a categoria desejada e ver a lista de estabelecimentos cadastrados.

O site possui interface de difícil utilização e a listagem dos estabelecimentos é composta somente por banners dos estabelecimentos cadastrados, cuja imagem serve de link para o website da empresa cadastrada, quando ela possuir um. O guia possui informações incompletas sobre os estabelecimentos e possibilita pouca interação.

5.6 Sampa Online

O último site pesquisado foi o Sampa Online, http://www.sampaonline.com.br, onde a listagem dos estabelecimentos é montada através de links que direcionam para páginas onde os estabelecimentos cadastrados são filtrados por categoria. Além disso, é possível realizar buscas por palavras contidas na descrição dos estabelecimentos e em notícias cadastradas pela administração do site.

6 MODELAGEM E DESENVOLVIMENTO DO SISTEMA

A solução proposta através do presente trabalho foi o desenvolvimento de uma aplicação Web, cuja base de dados foi alimentada com uma carga inicial contendo boa parte dos dados básicos de comércio e serviços do bairro Partenon, em Porto Alegre, RS, e que possibilita aos usuários fazer pesquisas a partir de palavras-chave e categorias. Nesta seção, serão apresentadas informações sobre a modelagem do sistema e os passos para o desenvolvimento da ferramenta.

6.1 Banco de Dados

A Figura 1 mostra o diagrama entidade-relacionamento que representa graficamente as tabelas da base de dados e os relacionamentos entre elas.

Estabelecimentos

PK IdEstabelecimento

NomeFantasia

NomeUsuario

Senha

RazaoSocial

CNPJ

Email

WebSite

Latitude

Longitude

CEP

Endereco

Numero

Complemento

Descicrao

Valido

Liberado

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

Excluido

GDBLogEstabelecimentos

PK IdLog

PK IdUsuario

PK IdEstabelecimento

DataHora

Tipo

GDBLogAudit

PK IdLog

Operacao

DataHora

Tabela

Chave

Campo

ValorAntigo

ValorNovo

Usuario

GDBLogErros

PK IdLog

DataHora

NomeProcedure

Usuario

IdErro

MsgErro

PalavrasChaveEstabelecimentos

PK,FK1 IdEstabelecimento

PK PalavraChave

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

Usuarios

PK IdUsuario

Nome

Email

NomeUsuario

Senha

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

Excluido

Valido

Favoritos

PK,FK2 IdUsuario

PK,FK1 IdEstabelecimento

Avaliacoes

PK IdAvaliacao

FK2 IdUsuario

FK1 IdEstabelecimento

Nota

Comentario

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

Categorias

PK IdCategoria

Nome

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

CategoriasEstabelecimentos

PK,FK1 IdEstabelecimento

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

FK2 IdCategoria

Atributos

PK IdAtributo

OrdemExibicao

Nome

Obrigatorio

TipoDeValor

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

AtributosEstabelecimentos

PK,FK2 IdAtributo

PK,FK1 IdEstabelecimento

ValorTexto

ValorNumerico

ValorBoolean

ValorColecao

CriadoEm

CriadoPor

AlteradoEm

AlteradoPor

ValidacaoUsuarios

PK IdUsuario

PK CriadoEm

Chave

GDBLogMail

PK IdMensagem

DataHora

Para

CC

CCO

Assunto

Mensagem

UsuarioLogado

HTML

ValidacaoEstabelecimentos

PK IdEstabelecimento

PK CriadoEm

Chave

GDBLogPesquisas

PK IdLog

IdUsuario

DataHora

Pesquisa

EstabRetornados

GDBLogLogin

PK IdLog

IdUsuario

IdSession

IP

DataHora

Browser

Figura 1: Diagrama Entidade-Relacionamento do sistema

6

6.1.1 Tabelas

A base de dados do sistema é composta pelas dezessete tabelas citadas a seguir em ordem alfabética:

Atributos: contém os atributos que um estabelecimento pode possuir, citados na seção 7.3;

AtributosEstabelecimentos: possibilita o relacionamento dos registros da tabela

Estabelecimentos com os da tabela Atributos;

Avaliacoes: armazena as avaliações feitas por usuários para os estabelecimentos. As

avaliações dos usuários são detalhadas na seção 7.6;

Categorias: armazena as categorias através das quais os estabelecimentos podem ser

classificados;

CategoriasEstabelecimentos: faz o relacionamento N x N entre as tabelas

Categorias e Estabelecimentos, assim permitindo que cada estabelecimento possa ser

atribuído a várias categorias, facilitando as pesquisas;

Estabelecimentos: contém as principais informações sobre os estabelecimentos comerciais

cadastrados no sistema;

Favoritos: esta tabela faz relacionamento N x N entre as tabelas Estabelecimentos e

Usuarios, possibilitando que os usuários salvem N estabelecimentos como seus favoritos, para

que possam acessar suas páginas através de atalhos disponíveis na página inicial do sistema;

GDBLogLogin: armazena informações de login dos usuários, a fim de manter estatísticas

detalhadas dos dias e horários em que a aplicação é mais acessada para, entre outras razões, haver melhor gerenciamento dos horários para manutenção e/ou atualizações da aplicação;

GDBLogErros: contém informações sobre erros que ocorreram na execução de operações na

base de dados;

GDBLogAudit: contém informações, para fins de auditoria ou até mesmo de restauração, sobre

as operações de criação, alteração e exclusão dos registros das tabelas mais importantes da aplicação, tais como Usuarios, Estabelecimentos, entre outras;

GDBLogPesquisas: armazena as informações obtidas nas pesquisas feitas através da

aplicação, sendo armazenadas, além de data e hora da pesquisa, as palavras-chave utilizadas pelos usuários nas buscas, e os registros retornados pela busca. Estas informações são mantidas para que os números possam ser apresentados aos proprietários dos estabelecimentos, permitindo que eles saibam o quanto a aplicação está beneficiando-os;

GDBLogEstabelecimentos: armazena as visitas que as páginas de cada estabelecimento

recebe e também as visitas feitas ao website do comerciante. O propósito é semelhante ao da tabela GDBLogPesquisas, apresentar as informações ao proprietário do estabelecimento, para

que este saiba o número de vezes que seu estabelecimento foi consultado através da aplicação, e quantos destes acessos foram direcionados ao seu website;

GDBLogMail: armazena todas as mensagens enviadas pela aplicação para usuários ou

proprietários de estabelecimentos via e-mail para que possam ser revisadas posteriormente pela administração do site;

PalavrasChaveEstabelecimentos: armazena as palavras-chave atribuídas a um

estabelecimento em seu cadastro. Um estabelecimento pode possuir N palavras-chave atribuídas. Estas palavras serão consultadas na pesquisa de estabelecimentos.

Usuarios: armazena os dados dos usuários da aplicação;

ValidacaoUsuarios: armazena as informações necessárias para a validação dos usuários

recém cadastrados no sistema;

ValidacaoEstabelecimentos: armazena as informações necessárias para a validação dos

usuários recém cadastrados no sistema.

6.1.2 Stored Procedures

Todas as operações no banco de dados são efetuadas através de Stored Procedures, ou seja, procedimentos armazenados diretamente na base, que são invocados através de comandos executados na camada de dados da aplicação (detalhada na seção 6.2.1). Segundo MSDN (2005a), os benefícios da utilização destes procedimentos incluem:

Proteção da aplicação contra ataques do tipo SQL Injection (quando, de forma mal intencionada, são enviados comandos SQL através de formulários da aplicação, visando quebrar a segurança ou

7

então danificar informações);

Stored Procedures facilitam a programação modularizada, uma vez que são independentes da aplicação;

Redução do tráfego de rede, já que a aplicação precisa enviar somente o nome do procedimento a ser executado e seus parâmetros, em vez de ter que mandar comandos ou consultas SQL inteiras que muitas vezes possuem centenas de linhas de comando.

6.1.3 Functions

São utilizadas também, para melhor organização dos códigos-fonte e aprimoramento do funcionamento das Stored Procedures, diversas funções nativas do SQL Server e algumas funções criadas especialmente para o desenvolvimento do sistema. São utilizadas Rowset Functions, que retornam objetos que podem ser tratados como tabelas, e Scalar Functions, que retornam somente um valor de um determinado tipo de dados (MSDN, 2005b).

6.2 Aplicação Web

De acordo com MSDN (2004), a melhor forma para minimizar o impacto da adição de serviços a uma aplicação existente, facilitar a integração de diferentes serviços desenvolvidos em plataformas diferentes e tornar independentes o desenvolvimento de cada componente do sistema é o desenvolvimento através de uma arquitetura dividida em três camadas (Three-Layered Services Application). Seguindo esta metodologia, o presente trabalho foi desenvolvido com as camadas de acesso a dados (Data Layer), lógicas de negócios (Business Layer) e apresentação (Presentation), seguem detalhes de cada uma.

6.2.1 Data Layer

É a camada responsável somente pela comunicação com a base de dados. Toda e qualquer operação da aplicação que manipule dados na base pode somente ser realizada através dela. A Figura 2 apresenta o diagrama que representa a única classe desta camada, DB. Esta classe contém os métodos que possibilitam a comunicação da aplicação com a o banco de dados.

Figura 2: Diagrama de Classes da Camada de Dados - Classe DB

Entre os principais métodos desta classe, destacam-se ExecutarComando(),

ExecutarSelect() e ObterResultado(), responsáveis pela execução de comandos no banco de

dados, consultas para obtenção de conjuntos de registros e obtenção de resultados em um único registro, respectivamente. Ao instanciar um objeto da classe DB, deve ser passado como parâmetro para o construtor o nome da Stored Procedure que será utilizada. Após isto, o método AdicionarParametro() deve ser

utilizado caso haja necessidade de enviar parâmetros para a execução do comando ou consulta.

6.2.2 Business Layer

É responsável pelas regras de negócio, onde toda a lógica envolvida no processamento dos dados da aplicação é realizada. É também responsável pela comunicação entre a camada de apresentação e a camada de dados. Esta camada é composta por quinze classes, descritas a seguir e representadas através do Diagrama de Classes exibido na Figura 3.

8

Figura 3: Diagrama de Classes da Camada de Negócios

As classes Atributo, Categoria e Avaliacao representam objetos contendo os dados

armazenados nas tabelas da base de dados Atributos, Categorias e Avaliacoes, respectivamente.

Elas contém também todos os métodos necessários para operações de criação, alteração e exclusão nas tabelas citadas. Para armazenamento de localizações geográficas, a aplicação possui a classe LatLng, que

possui dois atributos do tipo Decimal (MSDN, 2006) para armazenamento de Latitude e Longitude.

A aplicação possui seis classes derivadas da classe genérica List<T> do .NET Framework, que são

utilizadas para armazenamento em memória de coleções (List) de objetos de determinados tipos (T),

segundo a documentação do Framework (MSDN, 2007). As classes ListaAtributos,

ListaAvaliacoes, ListaCategorias, ListaPontos, ListaFavoritos e

PalavrasChaveEstabelecimentos, representam coleções de objetos dos tipos String (MSDN,

2006), Atributo, Avaliacao, Categoria, LatLng e Estabelecimento, respectivamente.

A classe Usuario: é a classe responsável pela implementação das regras de negócio que se referem

aos usuários do sistema. Possui todos os atributos referentes aos campos da tabela Usuarios, mais um

atributo que representa uma coleção de objetos da classe “Estabelecimento” e que armazena a lista dos favoritos do usuário (armazenados na tabela “Favoritos”), e os métodos necessários para as operações de criação, alteração e exclusão de usuários na base de dados, validação de endereço de e-mail, além dos métodos para busca de usuários e carregamento de seus atributos.

Para representar os estabelecimentos cadastrados na base de dados, na tabela Estabelecimentos, é utilizada a classe Estabelecimento, que contém os atributos referentes aos campos da tabela, atributos das classes PalavrasChaveEstabelecimentos, ListaAtributos, ListaAvaliacoes e um

atributo da classe ListaCategorias. Possui também, além dos métodos para busca de estabelecimentos

e para carregamento dos atributos, os métodos para criação, alteração e exclusão de estabelecimentos na base de dados, e para validação de endereço de e-mail e moderação dos estabelecimentos cadastrados por parte da administração do site.

Além das classes para manutenção da base de dados, há também a classe GDBMail, que torna

possível que a aplicação envie mensagens via e-mail para usuários e/ou proprietários de estabelecimentos comerciais utilizando as classes MailMessage (MSDN, 2008b) e SmtpClient (MSDN, 2008a), do

.NET Framework para fazer o envio das mensagens através de um servidor de SMTP (Simple Mail Transfer Protocol) e a classe GDBException, derivada da classe Exception (MSDN, 2008c) do Framework, que

9

faz controle de erros na aplicação, com o auxílio da classe GDBLog, que registra na base de dados os erros

gerados na aplicação, e em um arquivo texto, quando não for possível a conexão com o BD.

6.2.3 Presentation

É a camada onde ficam as páginas que compõem a interface do sistema, ou seja, a única visível para os usuários finais da aplicação. Esta camada não tem acesso à camada de dados. Qualquer operação que trabalhe com o banco de dados será feita através da Business Layer. As Figuras 4 e 5 demonstram os diagramas de classes que compõem a interface com os usuários finais, e a interface da administração do sistema. As páginas Web do sistema serão mais bem detalhadas na Seção 7.

Figura 4: Diagrama de Classes da Camada de Apresentação – Interface para usuário final

Figura 5: Diagrama de Classes da Camada de Apresentação – Administração do Site

Como descrito na documentação oficial do .NET Framework (MSDN, 2008d), a classe System.Web.UI.Page, no .NET Framework, representa um arquivo com extensão aspx, ou WebForm,

como também é conhecido. Para melhor gerenciamento das páginas do sistema, foram criadas duas páginas derivadas da classe Page, GDBPage e GDBAdminPage, que possuem métodos para a implementação de

funções básicas e redundantes das páginas do sistema, tanto na interface com o usuário final, quanto para a interface de administração do site. A primeira implementa funções para ordenação de tabelas e tratamento de variáveis de sessão. Já a segunda, além das mesmas funções da anterior, implementa controle de acesso ao módulo administrativo do sistema. Todas as páginas Web da aplicação são derivadas de GDBPage ou de

GDBAdminPage.

10

Como meio para padronizar as páginas do sistema, e facilitar este processo, são utilizadas duas classes do tipo MasterPage, cujo layout foi montado em HTML e CSS e que são importadas em tempo de

execução por cada uma das páginas executadas. Conforme definição do fabricante (MSDN, 2008e), uma Master Page (página mestra) age como um template, mesclando seu conteúdo com o das páginas que a

executam.

7 MÓDULOS DO SISTEMA

O presente trabalho foi implantado e pode ser acessado através da URL (Unique Resource Locator) http://www.guiadebairro.org. A aplicação Web, denominada GuiaDeBairro.Org, conta com doze páginas para acesso de usuários finais, mais dez páginas de acesso restrito a administradores do site. Esta seção explicará resumidamente o funcionamento das principais páginas do sistema e a administração e manutenção do site.

7.1 GuiaDeBairro.Org

A Figura 6 mostra uma parte da página inicial do sistema, onde o usuário tem acesso rápido aos links para cada uma das principais páginas (Home, Busca, Usuários, Comerciantes, Sobre e Contato), além da caixa de pesquisa onde pode pesquisar através de palavras-chave pelo ramo de comércio que desejar. Há, à esquerda na tela, a possibilidade do usuário fazer login em qualquer página do sistema e atalhos para que o usuário possa listar os estabelecimentos cadastrados a partir da categoria a que eles pertencem, e, à direita, duas listas de links para acesso rápido aos estabelecimentos “Favoritos” do usuário e para os estabelecimentos mais visitados do site.

Figura 6: Página Inicial

11

7.2 Gerenciamento de Usuários

O sistema possibilita que usuários possam fazer pesquisas sem estarem registrados, porém disponibiliza facilidades aos usuários registrados e autenticados no sistema. Qualquer visitante do site pode cadastrar-se gratuitamente, e nenhum serviço ou ferramenta disponível aos usuários será cobrado. Usuários cadastrados no site têm como incentivo e vantagens para isso, além da possibilidade do armazenamento de seu endereço, a de avaliar, comentar e salvar como favoritos os estabelecimentos acessados. Estas duas funcionalidades serão descritas no item Exibição dos Detalhes do Estabelecimento.

Um usuário somente pode possuir um cadastro, que será vinculado a seu endereço de e-mail, que deverá ser confirmado a partir de um mecanismo de verificação desenvolvido para enviar uma mensagem com um link para o usuário clicar e confirmar seu endereço. Para cadastrar-se, o usuário deve: acessar a página de cadastro de usuários (http://www.guiadebairro.org/Usuarios.aspx); e preencher dados pessoais, tais como: nome completo e e-mail, além da localização geográfica de sua casa, para que o sistema possa calcular distância e rotas entre ela e os estabelecimentos pesquisados pelo usuário.

Quando um usuário preenche o formulário de cadastro, é gerada uma chave única que é armazenada na tabela ValidacaoUsuarios juntamente com o identificador do usuário. É também enviada uma

mensagem para o endereço de e-mail informado contendo um link para a página “AtivarConta.aspx” no qual a chave é passada como parâmetro. O usuário deve clicar no link para ser direcionado novamente para a aplicação onde a chave será comparada com a da base de dados. Sendo validada, a chave é apagada do BD para evitar possível futura utilização, e o usuário é confirmado como válido e torna-se apto a utilizar os recursos do site. Após o processo de validação da chave ser concluído com sucesso, o usuário é automaticamente autenticado e logado na aplicação.

Na área restrita do site, os administradores possuem controle sobre os registros dos usuários, podendo verificar informações inconsistentes, ou até mesmo fraudulentas. Apesar do controle total dos administradores sobre os registros, todas as operações são registradas em log, possibilitando restauração de registros alterados erroneamente, ou até mesmo excluídos acidentalmente.

7.3 Gerenciamento de Estabelecimentos Comerciais

Os estabelecimentos comerciais são cadastrados na base de dados na tabela Estabelecimentos,

onde são armazenadas as informações básicas sobre eles. Foi realizada uma pesquisa no bairro para cadastramento de grande parte do comércio. Os estabelecimentos cadastrados foram inseridos na base de dados com as informações básicas como: nome fantasia, endereço, posição geográfica (latitude e longitude), descrição e, quando disponíveis, fones de contato, e-mail e website.

Foi desenvolvida uma interface para cadastro, onde os proprietários ou responsáveis podem efetuar o cadastro de sua empresa e informar seus dados. Qualquer empresa, que trabalhe em qualquer ramo de comércio pode cadastrar-se gratuitamente e por tempo indeterminado, bastando para isso, acessar o sistema e a página de cadastro de estabelecimentos (http://www.guiadebairro.org/Comerciantes.aspx) e informar os dados básicos (nome fantasia, endereço, e posição geográfica – latitude, longitude – e descrição), os estabelecimentos são classificados em categorias, sendo que um estabelecimento pode estar vinculado a mais de uma categoria.

As empresas também têm a opção de adicionar atributos a seus estabelecimentos. Os atributos são características predefinidas pela administração do site, armazenadas na tabela Atributos, que poderão ser

associadas aos estabelecimentos com valores particulares para cada um. Os atributos podem possuir valores de quatro tipos diferentes: Texto, Número, Booleano (Sim ou Não) ou Coleção (onde podem ser informados vários valores diferentes separados por vírgulas. Exemplo: bandeiras de cartões de crédito aceitas).

Abaixo são citados alguns exemplos de atributos – os atributos foram cadastrados durante a pesquisa de comércio no bairro conforme a necessidade – e seus valores possíveis:

“Possui tele-entrega?”: sim e não;

“Possui telebusca?”: sim e não;

“Possui estacionamento próprio?”: sim e não;

“Possui área para fumantes?”: sim e não;

“Possui ar-condicionado?”: sim e não;

“Aceita reservas?”: sim e não;

12

“Número de ambientes”: números inteiros maiores que zero;

“Aceita cartões de débito?”: bandeiras dos cartões de débito aceitos;

“Aceita cartões de crédito?”: bandeiras dos cartões de crédito aceitos;

“Aceita vale refeição?”: bandeiras de vale-refeição aceitas;

“Aceita vale alimentação?”: bandeiras de vale-alimentação aceitas;

“Lotação máxima”: números inteiros maiores que zero.

Para declarar-se proprietário de um estabelecimento já cadastrado na carga de dados inicial, o proprietário deve entrar em contato através da página de contato do site (http://www.guiadebairro.org/Contato.aspx) fornecendo informações mais completas sobre a empresa, tais como: CNPJ, Razão Social, ramo de atuação, telefone, e-mail, website. Quando isto ocorrer, a administração do site entrará em contato com o comerciante para confirmar os dados e possibilitar que ele cadastre nome de usuário e senha para acesso ao sistema.

Para o cadastro da posição geográfica do estabelecimento pelo proprietário, o sistema fornece uma interface desenvolvida com a GMaps API, que possibilita que seja informada a localização do endereço cadastrado no mapa do bairro, ou em uma imagem de satélite, conforme o usuário preferir. Ele deve navegar pelo mapa até encontrar o seu estabelecimento, e clicar no local correto. Desta forma, a aplicação obtém a latitude e a longitude que compõem a localização da empresa, informações que serão armazenadas na base de dados e utilizadas nas pesquisas feitas pelos visitantes do site.

Quando efetuado o cadastro de uma empresa através do site, esta deverá passar por processo de validação do endereço de e-mail informado e depois, por moderação da administração. A validação do endereço de e-mail é semelhante à do cadastro de usuários, sendo que a chave gerada é armazenada na tabela ValidacaoEstabelecimentos. Depois de validado o endereço de e-mail, o estabelecimento

necessitará ainda de liberação da administração do site para que possa aparecer nos resultados de pesquisas e ser visualizado por usuários do site. Esta medida garante que não serão criados estabelecimentos falsos, ou até mesmo com conteúdo impróprio para exibição.

7.4 Busca por Estabelecimentos

Esta seção apresenta a principal funcionalidade do sistema, a busca por estabelecimentos comerciais. Esta funcionalidade inicia sua execução quando o usuário acessa o sistema e o sistema exibe a tela inicial (Figura 6). O usuário pode preencher a caixa de busca com palavras-chave de acordo com o tipo de produto ou serviço que procura e clicar em Encontrar. O sistema efetua a pesquisa na base de dados pelos estabelecimentos que estiverem de acordo com as palavras-chave informadas e os exibe referenciados em um mapa em uma lista contendo informações básicas e (ou imagem de satélite, de acordo com o que o usuário preferir). Caso o usuário esteja cadastrado e estiver logado no sistema, sua casa será exibida no mapa também, dando melhor noção da distância entre sua residência e os estabelecimentos retornados pela pesquisa.

A pesquisa por estabelecimentos é feita comparando as palavras informadas pelo usuário com o nome fantasia, descrição, categorias e palavras-chave dos estabelecimentos. Os termos informados pelo usuário para a pesquisa são separadas pelos espaços em branco entre eles, armazenadas em uma tabela temporária. A consulta é feita na tabela Estabelecimentos, comparando os campos foco da pesquisa

com as palavras armazenadas na tabela temporária. A separação dos termos da pesquisa garante maior flexibilidade na busca, e fazendo com que os resultados não sejam resumidos somente aos que contiverem a expressão informada inteira.

A Busca Avançada (http://www.guiadebairro.org/BuscaAvancada.aspx) é um recurso criado para que os usuários possam refinar suas pesquisas, caso suas buscas estejam retornando muitos registros, ou caso não estejam conseguindo encontrar o que procuram. A Figura 7 mostra a tela de busca avançada, onde existem os seguintes campos:

“O que você procura?”: campo para o usuário informar os termos de sua pesquisa;

“Pesquisar nos campos”: caixas de seleção para que possam ser definidos os campos da tabela “Estabelecimentos” em que a consulta será feita. Podem ser selecionados todos, nome fantasia, razão social, descrição ou palavras-chave;

“Registros que contenham”: neste campo, o usuário pode decidir que a pesquisa seja feita retornando somente os registros que contiverem todos os termos informados na pesquisa (“Todos

13

os termos informados”), ou então os que contiverem pelo menos um dos termos informados (“Qualquer termo informado”);

“Categorias”: o usuário pode selecionar as categorias que a busca deve abranger, limitando o resultado a somente os registros atribuídos às categorias selecionadas;

“Atributos”: o usuário pode ainda definir que a busca retorne somente os estabelecimentos que possuam os atributos de tipo Booleano selecionados. Estes atributos são inseridos no formulário de pesquisa dinamicamente, de acordo com a tabela “Atributos” do BD.

A ordenação da busca é feita através de um algoritmo que busca informações nos registros de log do sistema para classificar os estabelecimentos de acordo com sua relevância. A relevância é obtida através do números de vezes que o cadastro do estabelecimento já foi exibido e pelas avaliações que os usuários fizeram sobre ele. Um estabelecimento é mais bem colocado nos resultados (aparece primeiro na lista) se tiver recebido mais acessos do que outro. Avaliações neutras (nota 3) e boas (notas 4 e 5) colocam os estabelecimentos à frente dos que tiverem maior número de visitas nos resultados. Finalmente, avaliações negativas tiram relevância dos estabelecimentos, fazendo com que estes sejam colocados após os outros na lista.

Figura 7: Busca Avançada

7.5 Exibição dos Resultados da Pesquisa

Depois de efetuada a pesquisa, caso sejam encontrados registros, o usuário é direcionado à página de resultados da busca, onde são listados os estabelecimentos que combinam com o que o usuário procura. Conforme demonstrado na Figura 8, a tela é composta por um mapa onde os estabelecimentos são exibidos através de ícones numerados de acordo com a lista de resultados. Caso o usuário esteja logado, será exibida sua casa no mapa também, tornando fácil para o usuário comparar visualmente a distância entre sua localização e os locais enumerados no mapa. Caso o usuário não estiver logado, serão exibidos somente os ícones que representam os estabelecimentos.

O sistema utiliza a GMaps API para exibir o mapa e posicionar os ícones eu suas respectivas posições. No mapa exibido, há a possibilidade de alternar entre os modos: “Mapa”, onde é exibido somente um mapa da cidade; “Satélite”, que exibe imagens de satélite do local; e “Híbrido”, que exibe as imagens de satélite sobrepostas pela representação gráfica do mapa. O link “Ampliar mapa” permite que o usuário maximize a exibição do mapa sobrepondo-a ao restante da página, tornando mais fácil e confortável a visualização.

14

O sistema limita a lista de exibição dos estabelecimentos a 10 linhas, paginando a lista e possibilitando ao usuário navegar entre as páginas através de links para “primeira página” e “última página”, além de links para cada página representados pelo número de cada uma. O usuário pode navegar pela lista e suas páginas, visualizando os estabelecimentos no mapa, e clicar no que melhor atender às suas necessidades, ou preencher novamente a caixa de busca a fim de melhorar sua pesquisa. Caso o usuário clique em um estabelecimento, para visualizar seus dados, o sistema o redirecionará para a tela de exibição de detalhes do estabelecimento, que será detalhada no item seguinte.

Na lista, são exibidos o nome fantasia do estabelecimento, sua descrição, caso este possua uma, um link para a página de detalhes do estabelecimento e ícones através dos quais o usuário pode, ao passar o mouse sobre eles, ter informações prévias sobre o estabelecimento, como o número de visitas que a página do estabelecimento já teve, se o estabelecimento é um dos favoritos do usuário, números de avaliações positivas, neutras e negativas, além da distância entre a casa do usuário até o estabelecimento, caso este esteja logado no sistema.

Figura 8: Exibição dos resultados da pesquisa

7.6 Exibição dos Detalhes do Estabelecimento

O sistema exibe as informações do estabelecimento, tais como nome fantasia, endereço, descrição e os atributos preenchidos pelos comerciantes. Quando disponível, há um link para o website da empresa e outro para que o usuário possa enviar, através do sistema, uma mensagem via e-mail para o comerciante. Ao lado do nome fantasia, há também uma estrela, onde é possível que usuários logados marquem o estabelecimento como um dos favoritos, ou remova-o da lista de favoritos, caso já seja um. A Figura 9 mostra a exibição dos dados do estabelecimento na página.

15

Figura 9: Exibição dos dados do estabelecimento

Conforme demonstrado na Figura 10, é exibido o mapa com a rota mais curta entre a casa do usuário e o estabelecimento. Logo abaixo do mapa, é exibido um link que possibilita ao usuário alternar entre uma rota definida para um trajeto a pé ou de carro e um que exibe a descrição passo-a-passo da rota demonstrada. Há também o link para ampliação do mapa na tela, semelhante ao da exibição dos resultados da busca. Caso o usuário não estiver cadastrado ou não estiver logado, será exibido somente o estabelecimento no mapa e os controles para alteração da rota e rota detalhada não serão exibidos.

É oferecida também ao usuário a opção de obter o caminho de volta do estabelecimento até sua casa, da mesma forma, para as três opções disponíveis de rotas. O objetivo é tornar confortável para o usuário não somente o deslocamento de ida ao destino procurado, mas também seu retorno para casa sem maiores problemas.

Figura 10: Exibição da rota entre a casa do usuário e o estabelecimento comercial

16

O usuário pode avaliar o estabelecimento, dando uma nota de 0 a 5, sendo que 0 corresponde a péssimo e 5, a ótimo, e fazer um comentário que será exibido na página de detalhes do estabelecimento. A nota dada pelo usuário pode ajudar o estabelecimento a ganhar relevância nas pesquisas da página inicial do sistema. Caso o usuário não esteja logado, não será possível avaliar o estabelecimento, mas haverá possibilidade de o usuário fazer logon e assim, fazer a avaliação desejada. A Figura 11 mostra o formulário de avaliação seguido da lista das avaliações feitas por usuários.

Figura 11: Exibição das avaliações dos usuários e formulário para nova avaliação

8 CONSIDERAÇÕES FINAIS

A pesquisa realizada para fundamentação teórica confirmou que a ferramenta poderia ser desenvolvida utilizando as tecnologias citadas e, a partir disso, a solução foi comprovada sendo testada e colocada em funcionamento ao final do desenvolvimento do trabalho.

A modelagem e proposta de metodologia teve o objetivo de demonstrar o que seria desenvolvido no trabalho, e qual a finalidade de cada uma das funcionalidades do sistema. Estas informações foram aprimoradas até o final do desenvolvimento do trabalho, sendo usadas como guia para construção de todas as partes da ferramenta.

Ao final deste trabalho, foi conseguida a integração entre os conceitos e ferramentas de Georreferenciamento disponíveis através da GMaps API com o trabalho de pesquisa de comércio do bairro, e que poderá tornar-se uma boa ferramenta tanto para o público local, que a terá à sua disposição, quanto para o comércio do bairro, que poderá ter seu negócio divulgado na Internet, ambos sem nenhum custo.

Durante o desenvolvimento, foram descobertas oportunidades de melhorias no sistema através da criação de novas funcionalidades ou até mesmo da simples modificação de outras já existentes. Entre as principais, destacam-se a possibilidade de integrar a aplicação ao sistema dos Correios, possibilitando que os usuários e comerciantes encontrem suas localizações através da digitação de seu CEP; cadastramento de áreas de estacionamento para facilitar o acesso dos usuários aos estabelecimentos, quando forem de carro; cadastramento das rotas de transporte coletivo que passam pelo bairro, para que possam ser informadas aos usuários quando estes necessitarem.

Espera-se também que o trabalho não seja utilizado somente no meio acadêmico, e sim, que possa seguir sendo desenvolvido e aperfeiçoado, contando sempre com mais recursos e facilidades tanto para usuários quanto para comerciantes.

REFERÊNCIAS

GIBSON, Rich; ERLE, Schuyler. Google Maps Hacks: Tips & Tools for Geographic Searching and Remixing. Sebastopol: O’Reilly, 2006. 366 p.

JONES, Bradley L. Web 2.0 Heroes: Interviews With 20 Web 2.0 Influencers. Indianapolis: Wiley Publishing Inc, 2008. 291 p.

MICROSOFT DEVELOPER NETWORK. Stored Procedure Basics. [S.l]: MSDN, 2005. Disponível em:

17

<http://msdn.microsoft.com/en-us/library/ms191436%28v=SQL.90%29.aspx>. Acesso em: 13 nov. 2010.

MICROSOFT DEVELOPER NETWORK. Functions (Transact-SQL). [S.l]: MSDN, 2005. Disponível em: <http://msdn.microsoft.com/en-US/library/ms174318%28v=SQL.90%29.aspx>. Acesso em: 13 nov. 2010.

MICROSOFT DEVELOPER NETWORK. DataType Summary. [S.l]: MSDN, 2006. Disponível em: <http://msdn.microsoft.com/en-us/library/47zceaw7%28VS.71%29.aspx>. Acesso em: 15 nov. 2010.

MICROSOFT DEVELOPER NETWORK. List<T> Class. [S.l]: MSDN, 2007. Disponível em: <http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx>. Acesso em: 15 nov. 2010.

MICROSOFT DEVELOPER NETWORK. SmtpClient Class. [S.l]: MSDN, 2008. Disponível em: <http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx>. Acesso em: 15 nov. 2010.

MICROSOFT DEVELOPER NETWORK. MailMessage Class. [S.l]: MSDN, 2008. Disponível em: <http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx>. Acesso em: 15 nov. 2010.

MICROSOFT DEVELOPER NETWORK. Exception Class. [S.l]: MSDN, 2008. Disponível em: <http://msdn.microsoft.com/en-us/library/system.exception%28VS.71%29.aspx>. Acesso em: 16 nov.2010.

MICROSOFT DEVELOPER NETWORK. Page Class. [S.l]: MSDN, 2008. Disponível em: <http://msdn.microsoft.com/en-us/library/system.web.ui.page.aspx>. Acesso em: 16 nov. 2010.

MICROSOFT DEVELOPER NETWORK. MasterPage Class. [S.l]: MSDN, 2008. Disponível em: <http://msdn.microsoft.com/en-us/library/system.web.ui.masterpage.aspx>. Acesso em: 21 nov. 2010.

MICROSOFT DEVELOPER NETWORK. Three-Layered Services Application. [S.l]: MSDN, 2010. Disponível em: <http://msdn.microsoft.com/en-us/library/ff648105.aspx>. Acesso em: 13 nov. 2010.

O’REILLY, Tim. What Is Web 2.0: Design Patterns and Business Models for the Next Generation of Software. [S.l.]: O’Reilly, 2005. Disponível em: <http://oreilly.com/web2/archive/what-is-web-20.html>. Acesso em: 11 abr. 2010.

O’REILLY, Tim. Web 2.0 Compact Definition: Trying Again. [S.l.]: O’Reilly, 2006. Disponível em: <http://radar.oreilly.com/archives/2006/12/web-20-compact.html>. Acesso em: 11 abr. 2010.

PIMPLER, Eric. Google Maps API: The New World of Mapping 3.ed. [S.l]: Geospatial Training & Consulting, LLC, 2006. 44 p.

PIMPLER, Eric. Introduction to Developing with Google Maps. [S.l.]: Directions Magazine, 2006. Disponível em: <http://www.directionsmag.com/article.php?article_id=2120>. Acesso em: 17 abr. 2010.

WENZ, Christian. Programming ASP.NET AJAX. Sebastopol: O’Reilly, 2007. 475 p.