FIND FOOD: APLICATIVO PARA LOCALIZAÇÃO E...

51
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO BACHARELADO FIND FOOD: APLICATIVO PARA LOCALIZAÇÃO E RECOMENDAÇÃO DE RESTAURANTES THIAGO LIPPEL DE ARAUJO BLUMENAU 2017

Transcript of FIND FOOD: APLICATIVO PARA LOCALIZAÇÃO E...

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO

FIND FOOD: APLICATIVO PARA LOCALIZAÇÃO E

RECOMENDAÇÃO DE RESTAURANTES

THIAGO LIPPEL DE ARAUJO

BLUMENAU

2017

THIAGO LIPPEL DE ARAUJO

FIND FOOD: APLICATIVO PARA LOCALIZAÇÃO E

RECOMENDAÇÃO DE RESTAURANTES

Trabalho de Conclusão de Curso apresentado

ao curso de graduação em Sistemas de

Informação do Centro de Ciências Exatas e

Naturais da Universidade Regional de

Blumenau como requisito parcial para a

obtenção do grau de Bacharel em Sistemas de

Informação.

Prof. Francisco Adell Péricas – Orientador

BLUMENAU

2017

FIND FOOD: APLICATIVO PARA LOCALIZAÇÃO E

RECOMENDAÇÃO DE RESTAURANTES

Por

THIAGO LIPPEL DE ARAUJO

Trabalho de Conclusão de Curso aprovado

para obtenção dos créditos na disciplina de

Trabalho de Conclusão de Curso II pela banca

examinadora formada por:

______________________________________________________

Presidente: Prof. Francisco Adell Péricas – Orientador, FURB

______________________________________________________

Membro: Prof. Gilvan Justino, Mestre – FURB

______________________________________________________

Membro: Profa. Luciana Pereira de Araújo, Mestre – FURB

Blumenau, 7 de Julho de 2017

Dedico este trabalho a minha família e amigos

que de alguma forma contribuíram na

realização deste.

AGRADECIMENTOS

A Deus, por ter me dado saúde e sabedoria para realizar este trabalho.

A minha família, por sempre me apoiar em todos os desafios de minha vida.

A minha namorada, por seu apoio e compreensão durante o tempo em que estive

desenvolvendo este trabalho.

Aos meus orientadores, Matheus Carvalho Viana e Francisco Adell Péricas, por seus

apoios prestados e acompanhamento durante o desenvolvimento do trabalho.

Algo só é impossível até que alguém duvide e

acabe provando o contrário.

Albert Einstein

RESUMO

Este trabalho apresenta o desenvolvimento de um aplicativo móvel para as plataformas

Android e iOS que tem a função de localizar restaurantes e auxiliar o usuário na escolha de

um bom local baseado nas avaliações de usuários que visitaram o estabelecimento

previamente. O usuário tem a opção de restringir a busca de estabelecimentos por sua

categoria caso esteja à procura de algo específico. O aplicativo foi desenvolvido com uso do

framework Ionic que utiliza a linguagem JavaScript e a comunicação de dados com o servidor

foi feita utilizando os métodos de uma REST API. Para apresentação e integração com o

mapa foi utilizada a API do Google Maps v3 que também possibilita o usuário traçar rota

entre o seu posicionamento atual e o restaurante desejado. A persistência e armazenamento de

dados foi feita utilizando o servidor Back&.

Palavras-chave: Restaurantes. Ionic. Google Maps.

ABSTRACT

This work presents the development of a mobile application for Android and iOS platforms

that has the function of locating restaurants and assist the user in choosing a good location

based on the evaluations of users who visited the establishment previously. The user has the

option to restrict the search of establishments by their category if they are looking for

something specific. The application was developed using the Ionic framework that uses the

JavaScript language and the data communication with the server was done using the methods

of a REST API. For presentation and integration with the map was used the Maps API v3 that

also allows the user to trace the route between your current position and the restaurant you

want. The persistence and storage of data was done using the server Back &.

Key-words: Restaurant. Ionic. Google Maps.

LISTA DE FIGURAS

Figura 1 – Localização das estações de controle ...................................................................... 17

Figura 2 – Triangulação dos satélites ....................................................................................... 18

Figura 3 – Demonstração de rota pelo Google Maps ............................................................... 18

Figura 4 – Tela principal do aplicativo ..................................................................................... 20

Figura 5 – Tela inicial do Kekanto ........................................................................................... 21

Figura 6 – Tela de busca padrão do Kekanto ........................................................................... 22

Figura 7 – Tela inicial do Restaurant Finder ............................................................................ 23

Figura 8 – Tela de busca por restaurantes ................................................................................ 24

Figura 9 – Diagrama de casos de uso ....................................................................................... 27

Figura 10 - Fluxograma de atividades do usuário .................................................................... 28

Figura 11 – Modelo entidade e relacionamento ....................................................................... 29

Figura 12 – Fluxo de comunicação entre camadas ................................................................... 31

Figura 13 – Tela de apresentação do mapa............................................................................... 34

Figura 14 – Tela de avaliações do restaurante .......................................................................... 34

Figura 15 - Rota traçada da localização atual do usuário até o estabelecimento ...................... 35

Figura 16 – Tela de login .......................................................................................................... 36

Figura 17 – Tela do cadastro de usuário ................................................................................... 36

Figura 18 – Botão nova avaliação exibido (esquerda), tela de nova avaliação (direita) .......... 37

Figura 19 – Tela do cadastro de estabelecimentos ................................................................... 38

LISTA DE QUADROS

Quadro 1 – Requisitos funcionais do aplicativo ....................................................................... 26

Quadro 2 – Requisitos funcionais do servidor ......................................................................... 26

Quadro 3 – Requisitos não funcionais do servidor ................................................................... 26

Quadro 4 – Inclusão da Google Maps API no arquivo index.html.................................... 30

Quadro 5 – Inclusão do servidor de dados Back& ao projeto .................................................. 30

Quadro 6 – Inicialização do mapa ............................................................................................ 31

Quadro 7 – Solicitação de login ao servidor de dados ............................................................. 32

Quadro 8 - Método traçar rota .................................................................................................. 33

Quadro 9 - Quadro comparativo com os trabalhos correlatos .................................................. 39

Quadro 10 – Detalhamento do caso de uso Buscar restaurantes .............................................. 44

Quadro 11 – Detalhamento do caso de uso Visualizar restaurantes próximos ......................... 45

Quadro 12 – Detalhamento do caso de uso Traçar rotas .......................................................... 45

Quadro 13 – Detalhamento do caso de uso Cadastrar cliente .................................................. 46

Quadro 14 – Detalhamento do caso de uso Efetuar login ........................................................ 46

Quadro 15 – Detalhamento do caso de uso Cadastrar avaliação .............................................. 47

Quadro 16 – Detalhamento do caso de uso Visualizar avaliações e comentários .................... 47

Quadro 17 – Detalhamento do caso de uso Cadastrar restaurante ........................................... 48

Quadro 18 - Tabela estabelecimentos ....................................................................................... 49

Quadro 19 - Tabela usuários ..................................................................................................... 49

Quadro 20 - Tabela avaliações ................................................................................................. 49

Quadro 21 - Tabela categorias .................................................................................................. 50

LISTA DE ABREVIATURAS E SIGLAS

API – Application Programming Interface

CEP – Código de endereço postal

CSS – Cascading Style Sheets

EUA – Estados Unidos da América

GLONASS – Global Navigation Satellite System

GPS – Global Positioning System

HTML – HyperText Markup Language

IDE – Integrated Development Environment

IP – Internet Protocol

JSON – JavaScript Object Notation

MER – Modelo Entidade Relacionamento

REST - Representational State Transfer

RF - Requisitos Funcionais

RNF - Requisitos Não Funcionais

UC - Use Case

SUMÁRIO

1 INTRODUÇÃO .................................................................................................................. 12

1.1 OBJETIVOS ...................................................................................................................... 12

1.2 ESTRUTURA.................................................................................................................... 13

2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 14

2.1 TURISMO E GASTRONOMIA ....................................................................................... 14

2.2 GEOLOCALIZAÇÃO ...................................................................................................... 16

2.3 GOOGLE MAPS ............................................................................................................... 18

2.4 TRABALHOS CORRELATOS ........................................................................................ 19

2.4.1 Sistema Móvel Na Plataforma Android Para Localização De Food Trucks Utilizando

Mapas ....................................................................................................................................... 19

2.4.2 Kekanto ........................................................................................................................... 20

2.4.3 Restaurant Finder ............................................................................................................ 22

3 DESENVOLVIMENTO .................................................................................................... 25

3.1 LEVANTAMENTO DE INFORMAÇÕES ...................................................................... 25

3.2 ESPECIFICAÇÃO ............................................................................................................ 25

3.2.1 Requisitos Funcionais e Requisitos Não Funcionais ...................................................... 25

3.2.2 Diagrama de Caso de Uso ............................................................................................... 26

3.2.3 Fluxograma de atividades do usuário .............................................................................. 27

3.2.4 Modelo Entidade Relacionamento .................................................................................. 28

3.3 IMPLEMENTAÇÃO ........................................................................................................ 29

3.3.1 Técnicas e ferramentas utilizadas.................................................................................... 29

3.3.2 Fluxo de comunicação entre camadas ............................................................................. 30

3.3.3 Implementação da aplicação ........................................................................................... 31

3.3.4 Operacionalidade da implementação .............................................................................. 33

3.4 RESULTADOS E DISCUSSÕES ..................................................................................... 38

4 CONCLUSÕES .................................................................................................................. 40

4.1 EXTENSÕES .................................................................................................................... 40

REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 42

APÊNDICE A – DETALHAMENTO DOS CASOS DE USO ........................................... 44

APÊNDICE B – DICIONÁRIO DE DADOS ....................................................................... 49

12

1 INTRODUÇÃO

O turismo cultural é uma atividade motivada pela busca de informações, de integração

com outras pessoas e comunidades, lugares, costumes, tradições e da identidade cultural do

local (SEGALA, 2003). O Brasil é um país com grande potencial turístico por conta de sua

grande diversidade cultural e suas inúmeras belezas naturais (FREITAS, 2016).

A partir de uma associação entre turismo e gastronomia, percebe-se que a gastronomia

é uma das principais características na cultura de cada povo, trazendo à mesa iguarias e

sabores típicos da localidade (SEGALA, 2003). Esta arte de preparar alimentos de forma

singular é passada de geração para geração. A gastronomia está vinculada diretamente com a

religiosidade, classe social, localização geográfica e o que cada lugar tem como alimento

típico (CUNHA; OLIVEIRA, 2009).

Neste contexto, é comum que, ao visitar um lugar, turistas busquem conhecer a

culinária local por meio de restaurantes, bares, e outros estabelecimentos semelhantes. Para

encontrar bares ou restaurantes em determinada localidade, o turista terá como opções

solicitar auxílio de um guia turístico, realizar buscas na internet ou recorrer ao velho “boca-a-

boca”. De qualquer forma, o turista fica impedido de fazer sua procura de forma objetiva ou

limitando-se ao conhecimento das pessoas questionadas.

Atualmente existem alguns aplicativos que indicam a localização de restaurantes

próximos, bem como avaliações e dicas de pessoas que já visitaram o local. Porém, esses

aplicativos de localização são de propósito geral e não trazem detalhes específicos que são

importantes para a escolha do restaurante. A fim de auxiliar a busca por bares e restaurantes,

este trabalho apresenta o desenvolvimento de um aplicativo mobile que forneça ao usuário

informações relevantes sobre restaurantes próximos a sua localização atual.

1.1 OBJETIVOS

O objetivo do trabalho é desenvolver um aplicativo para que apresente aos usuários

opções de restaurantes próximos que atendam a quesitos de busca.

Os objetivos específicos são:

a) auxiliar na escolha do restaurante que mais se enquadra nas necessidades da

pessoa interessada;

b) auxiliar as pessoas na decisão por bons restaurantes baseadas na avaliação de

usuários que já visitaram o estabelecimento;

c) auxiliar as pessoas na localização do restaurante por meio de rotas traçadas no

13

mapa.

1.2 ESTRUTURA

Este trabalho é divido em quadro capítulos, onde o primeiro capítulo apresenta a

introdução e os objetivos do trabalho.

O segundo capítulo trata sobre a fundamentação teórica onde são apresentados os

temas gastronomia e turismo, geolocalização e Google Maps e ainda nesse capítulo são

apresentados os trabalhos correlatos.

No terceiro capítulo é apresentado o desenvolvimento do trabalho, onde é feito o

levantamento de informações e as especificações do aplicativo, seguindo com as técnicas e

ferramentas utilizadas, implementação da aplicação e demonstração da operacionalidade da

implementação. Ao final do capítulo são apresentados os resultados e discussões.

O quarto e último capítulo apresenta a conclusão do trabalho e as sugestões de

extensão para este.

14

2 FUNDAMENTAÇÃO TEÓRICA

Este capítulo aborda assuntos a serem apresentados nas seções a seguir, tais como

gastronomia e turismo, geolocalização, framework de geolocalização (Google Maps) além de

trabalhos correlatos.

2.1 TURISMO E GASTRONOMIA

O turismo cultural como uma relação entre pessoas, tradições e histórias, apresenta a

oportunidade de conhecer mais sobre o passado de maneira autêntica. Pessoas com este

objetivo vão em busca de atrativos culturais humanos relacionados a história, cotidiano,

artesanato, gostos e costumes. O turismo neste meio representa uma estratégia de

desenvolvimento sustentável, onde se busca preservar recursos naturais e culturais para

gerações futuras a fim de desenvolver a economia da região (MENEZES, 2003).

O turismo detém grande importância para a vida social e econômica da região,

refletindo os anseios da população no sentido de visitar novos lugares, conhecer novas

culturas e entreter-se com atividades de lazer, sendo ainda de importante valor econômico e

contribuindo com o desenvolvimento da região (BENI, 2000).

O turismo cultural tem contribuído para promover o envolvimento das comunidades

com sua história, seus atrativos culturais e sua memória social, beneficiando o

desenvolvimento sustentável e garantindo um futuro econômico e social melhor para as

comunidades receptoras de turismo (MENEZES, 2003).

Corner (2012, p. 1) explica que “A cultura de uma cidade, transmitida de geração a

geração, é expressa de várias formas por seus habitantes.” E cita a cultura gastronômica como

sendo uma “importante representação étnica da cidade, permeando o imaginário pelos

sentidos: do olfato, paladar, gosto e visão”.

Várias são as matérias primas utilizadas no desenvolvimento da atividade turística,

entre elas o patrimônio cultural de uma localidade constitui-se um importante elo

entre o turismo e a cultura (BARROCO, 2006 p. 2).

A associação entre turismo e patrimônio cultural é necessária, tendo em vista que este

patrimônio detém o potencial para atrair turistas a um determinado destino. A utilização do

patrimônio como fonte para o turismo vem indicando que a gastronomia adquira cada vez

maior importância para promover um destino (BARROCO, 2006, p. 1).

O Turismo e a Gastronomia são inseparáveis, pois não se pensa em turismo, sem

prever entre outros itens, a alimentação para curta ou longa permanência, onde o

viajante não pode abster-se dela e, sempre experimenta a cozinha local. É também

fator de diferenciação cultural, pois sua identidade é comunicada às pessoas pelo

alimento os quais reflete as preferencias e identificações (BARROCO, 2006, p. 4).

15

Para Solmucci (apud NERY, 2006, p. 1), "a arte de combinar os ingredientes com os

temperos, os rituais de preparar e servir, e o prazer do convívio à mesa, tudo se inscreve no

universo mais amplo da herança cultural, esse inesgotável conjunto de valores que

determinam nossa identidade".

A Associação Brasileira de Bares e Restaurantes vê no Brasil uma grande diversidade

cultural onde se mostra bastante característica a gastronomia local de cada região (NERY,

2006).

A gastronomia como um produto, ou mesmo um atrativo de uma determinada

localidade, é muito importante do ponto de vista turístico, pois apresenta novas

possibilidades, na verdade, não tão novas, mas nem sempre bem exploradas, que são

as diversas formas de turismo voltadas para as características gastronômicas de cada

região (BARROCO, 2006, p.2).

Neste contexto, vê-se clara a relação entre gastronomia e turismo, ambas enriquecendo

uma a outra, e satisfazendo o turista com uma forte fonte de cultura local. Como explicam

Cunha e Oliveira (2009, p. 15):

A atividade turística é uma prática socioeconômica que tem na gastronomia uma

ferramenta de grande valia para o desenvolvimento não apenas sob o olhar

financeiro, como também na oportunidade de valorizar e preservar a cultura

alimentar de várias regiões.

Segundo Cunha e Oliveira (2009, p. 3), “a gastronomia surgiu a partir da evolução do

homem, quando de apenas caçador e coletor de alimentos, ele passou a ser também o produtor

dos seus alimentos e adquiriu técnicas de manipulação e conservação dos alimentos ainda no

período medieval”. Desde então, estas técnicas vêm sendo conservadas e aprimoradas,

tornando-se grande fonte de história e cultura em todo o mundo. Para Braune e Franco (2007,

p. 14):

Gastronomia é uma disciplina que exige arte não somente de quem executa, mas

também de quem a consome ou usufrui. É artesanato, porque exige de quem a faz

conhecimento, habilidade e técnica. É uma arte ou ciência que exige conhecimento e

técnica de quem a executa e formação do paladar de quem a aprecia.

Experimentar a gastronomia de outros lugares ou povoados é valorizar a cultura e

tradição local, preservando seus hábitos e costumes além de obter conhecimento de novos

sabores e aromas característicos da região (CUNHA; OLIVEIRA, 2009).

Para Gimenes (2006, p. 12), “a gastronomia, em especial a gastronomia típica, merece

destaque não apenas por constituir um bem cultural que deve ser valorizado como os demais,

mas principalmente – aqui sob a ótica do turismo – por proporcionar um importante ponto de

contato do turista com a realidade visitada, proporcionando, no sentido figurado e literal, uma

degustação dos ritos, valores e tradições locais”.

16

2.2 GEOLOCALIZAÇÃO

A geolocalização é empregada nos mais variados tipos de sistemas e aplicativos em

função de auxiliar o usuário a ter uma localização mais precisa, encontrar locais

desconhecidos, traçar rotas e percursos, dentre outras funcionalidades que estão disponíveis

para apoiar o usuário em relação à localização geográfica (NEKA, 2015). De acordo com

Pilgrim (2010, p. 1):

Geolocalização é a arte de descobrir aonde você está no mundo e (opcionalmente)

compartilhar essa informação com as pessoas que você confia. Há mais de uma

maneira de descobrir aonde você está — seu endereço IP, sua conexão de rede sem

fio, com que torre de celular seu telefone está falando, ou hardware GPS dedicado

que calcula latitude e longitude da informação enviada por satélites no céu.

O Global Positioning System (GPS) foi desenvolvido pelo departamento de defesa dos

Estados Unidos da América (EUA) em um projeto que teve início em 1972, mas que somente

em 1993 tornou-se totalmente operacional e, atualmente, conta com 30 satélites que

proporcionam uma cobertura global (BRUNET; FREIRE, 2010 p. 3).

Além do GPS, existem outros sistemas alternativos que funcionam da mesma forma,

porém, não possuem cobertura sobre todo o globo terrestre. Esses sistemas são encabeçados

por governos de grandes nações, sendo a Rússia com o Global Navigation Satellite System

(GLONASS), a União Européia com o Galileo e a China com o Beidou (BRUNET; FREIRE,

2010 p. 3).

O GPS surgiu com objetivos bélicos, ou seja, com o objetivo de facilitar os

deslocamentos de tropas, a localização de tropas inimigas e a navegação de alta

precisão para transporte militar e de mísseis. Seu uso foi testado na Guerra do Golfo,

facilitando a locomoção das tropas no deserto. Os mísseis passaram a atingir seus

alvos com erros mínimos. Em 1980, o então presidente Ronald Reagan (1911-2004)

autorizou o uso civil do sistema (CARVALHO; ARAÚJO, 2009).

Para o correto funcionamento do GPS são necessários três componentes, são eles:

espacial, de controle e utilizador. O componente espacial é composto por vinte e sete satélites

que estão em órbita da Terra, sendo que vinte e quatro destes são ativos e três são satélites

reservas, que são ativados caso ocorra algum problema com um dos satélites principais

(MARTINS, 2009).

O componente de controle trata das estações de controle dos satélites. Ao todo são

cinco estações espalhadas pela Terra que têm a função de atualizar o posicionamento atual

dos satélites e sincronizar o relógio atômico que existe dentro de cada um dos satélites

(MARTINS, 2009). A Figura 1 apresenta a localização da base mestre e das outras cinco

estações de controle.

17

Figura 1 – Localização das estações de controle

Fonte: Nunes, Nakai e Barros (2013).

O terceiro componente, o utilizador, trata do receptor do sinal de GPS que irá fornecer

sua posição atual para o sistema através de ondas de rádio que trafegam na velocidade de luz

(300 mil quilômetros por segundo, no vácuo). Este é o único componente que os usuários

precisam adquirir caso queiram utilizar o sistema de GPS (MARTINS, 2009).

Para poder identificar a localização de um receptor GPS é calculada a distância entre o

receptor e os três satélites mais próximos ao receptor. A partir destas distâncias é possível

determinar a posição relativa do receptor através da intersecção de três circunferências, onde

os raios delas são as distâncias medidas entre receptor e satélite, como ilustra a Figura 2

(CARVALHO; ARAÚJO, 2009).

18

Figura 2 – Triangulação dos satélites

Fonte: Philipe (2016).

2.3 GOOGLE MAPS

O Google Maps é uma Application Programming Interface (API) que constrói mapas

cartográficos ou apresenta imagens de satélite em alta resolução, apresentando nomes de ruas,

empreendimentos e até opções de lazer (SCUSSEL, 2013). Ele permite o cálculo da distância

de um ponto a outro em diferentes meios de transporte, traçando rotas com várias opções de

percurso, como mostra a Figura 3.

Figura 3 – Demonstração de rota pelo Google Maps

Fonte: Google (2016).

19

O projeto do Google Maps nasceu em uma start-up de mapeamento digital, a Where 2

Technologies localizada em Sidney, na Austrália. O aplicativo de mapeamento se chamava

Expedition e foi projetado para ser baixado e instalado nos computadores (HUTCHEON,

2015).

Larry Page, cofundador do Google, se interessou pela ideia do projeto mas o Google

não estava disposto em adquirir programas desktop. Então propôs um prazo para a conversão

do sistema para um conceito web. O prazo proposto foi cumprido e, em Agosto de 2004, a

Where 2 Technologies se tornou a segunda empresa adquirida pelo Google (HUTCHEON,

2015).

A API do Google Maps foi lançada em 2005 com o objetivo de fornecer tecnologia

geoespacial para todos através de computadores ou smartphones. Antes disso, esse tipo de

informação só podia ser acessado pelo setor que cuidava dos sistemas de informações

geográficas das grandes empresas (SCUSSEL, 2013).

O sucesso desta API é devido ao fácil método de utilização e aplicação dela em

sistemas, por sua alta velocidade, simplicidade e familiaridade com os mapas do Google. Hoje

está API é utilizada em mais de um milhão de websites e aplicações (SCUSSEL, 2013).

2.4 TRABALHOS CORRELATOS

Existem aplicativos com funcionalidades semelhantes ao trabalho que será

desenvolvido. Dentre eles estão o trabalho sobre a localização de food trucks baseado em

geolocalização (RIBEIRO, 2015) e os aplicativos comerciais Kekanto (KEKANTO, 2010) e o

Restaurant Finder (AKASOFT, 2013).

2.4.1 Sistema Móvel Na Plataforma Android Para Localização De Food Trucks Utilizando

Mapas

Ribeiro (2015) apresenta o desenvolvimento de um aplicativo na plataforma Android

para localização de food trucks que são cadastrados pelos usuários. O aplicativo permite a

visualização de food trucks próximos, assim como permite realizar comentários sobre o

veículo e adicioná-los a uma lista de favoritos. A Figura 4 mostra a tela principal do trabalho.

20

Figura 4 – Tela principal do aplicativo

Fonte: Ribeiro (2015, p. 35).

Para a construção do aplicativo foi utilizada a linguagem de programação Java no

ambiente de desenvolvimento Android Studio versão 2.0.2, com integração com a API do

Google Maps v2. Para o servidor que hospeda a base de dados cadastrados no aplicativo foi

utilizado o banco de dados MySQL na versão 5.1. A comunicação entre o aplicativo e a base

de dados dá-se a partir de um web service que foi implementado utilizando a linguagem PHP

(RIBEIRO, 2015).

2.4.2 Kekanto

O Kekanto é uma ferramenta comercial para localização de diversos tipos de

entretenimento como baladas, bares, lojas, hotéis, atrações, pontos turísticos, restaurantes e

diversos outros segmentos de empreendimentos que tenham interesse e cadastrem-se para que

sejam visualizados pelos usuários da ferramenta (KEKANTO, 2010). A ferramenta conta com

um website e um aplicativo para os dispositivos iOS, Android e Windows Phone. A Figura 5

mostra a tela inicial do aplicativo.

21

Figura 5 – Tela inicial do Kekanto

Fonte: Kekanto (2016).

O aplicativo possui uma área de avaliação para os usuários comentarem sobre o local e

seu atendimento, atribuírem fotos do local e darem dicas para pessoas que ainda não

conhecem o lugar. Para realizar as buscas são disponibilizados vários métodos diferentes,

dando ao usuário a possibilidade de refinar a busca por categoria da comida, preço,

localização ou ainda montar um filtro avançado. No método padrão de busca são apresentados

ao usuário os estabelecimentos mais próximos ordenados por relevância de acordo com as

avaliações positivas dos usuários (KEKANTO, 2010). A Figura 6 mostra a busca padrão do

aplicativo.

Como o Kekanto é um aplicativo comercial, não um trabalho acadêmico, não foi

possível encontrar informações das tecnologias utilizadas em seu desenvolvimento. Porém,

ele funciona nas plataformas Android, iOS e Windows Phone além de possuir um website

com as mesmas funcionalidades.

22

Figura 6 – Tela de busca padrão do Kekanto

Fonte: Kekanto (2016).

2.4.3 Restaurant Finder

O Restaurant Finder é um aplicativo comercial com foco em encontrar locais para se

realizar uma refeição, dentre eles estão: restaurantes, padarias, lanchonetes, cafés e alguns

outros estabelecimentos diversos como: hotéis, aeroportos, hospitais, escolas, dentre outros. O

aplicativo oferece ao usuário a opção de filtrar pela localização atual ou buscar

estabelecimentos próximos do CEP informado (AKASOFT, 2013). A Figura 7 apresenta a

tela inicial do aplicativo.

23

Figura 7 – Tela inicial do Restaurant Finder

Fonte: Akasoft (2013).

O aplicativo apresenta ao usuário informações importantes sobre o estabelecimento

como: endereço, horário de funcionamento, fotos do local, número de telefone e em alguns

casos, o site e o cardápio. Para auxiliar a decisão do usuário é disponibilizada uma área de

avaliação do estabelecimento, contendo a opinião de pessoas que já visitaram o local e uma

nota que é atribuída por cada avaliador (AKASOFT, 2013).

Assim como o Kekanto, esse aplicativo é comercial e também não foi possível

encontrar informações sobre suas tecnologias de desenvolvimento. Contudo o aplicativo está

disponível apenas para a plataforma Android. A Figura 8 mostra a tela de localização dos

estabelecimentos próximos à localização atual do usuário.

24

Figura 8 – Tela de busca por restaurantes

Fonte: Akasoft (2013).

25

3 DESENVOLVIMENTO

Este capítulo aborda o desenvolvimento do aplicativo, especificando as tecnologias

utilizadas para o desenvolvimento, o levantamento de informações, a especificação do

problema e os resultados obtidos com o desenvolvimento.

3.1 LEVANTAMENTO DE INFORMAÇÕES

O trabalho consiste em um aplicativo móvel para localização de restaurantes próximos

ao local atual do usuário com apoio da API do Google Maps para visualização da localização

dos restaurantes.

O foco principal do aplicativo é voltado para usuários que estejam realizando uma

viagem em um destino desconhecido, porém, também se mostra útil a usuários que desejam

experimentar algo diferenciado sem que precisem percorrer grandes distâncias. Em função de

auxiliar os usuários no trajeto de sua localização atual até o restaurante desejado é possível

traçar uma rota no mapa indicando o caminho mais próximo ao destino.

Para cada restaurante existe uma área de avaliação dos clientes que já visitaram o

estabelecimento previamente, dando assim uma perspectiva em relação aos serviços prestados

pelos estabelecimentos.

O aplicativo foi desenvolvido com o framework Ionic que possibilita a compilação

para as plataformas Android e iOS, abrangendo assim um número maior de usuários que

podem utilizar o aplicativo.

3.2 ESPECIFICAÇÃO

Nesta seção será apresentado o diagrama de caso de uso que foi elaborado utilizando a

ferramenta Cacoo, o Modelo Entidade Relacionamento (MER) que foi elaborado pela própria

ferramenta que está sendo utilizada como servidor de dados do aplicativo, o Back&, e os

requisitos funcionais e não funcionais do aplicativo.

3.2.1 Requisitos Funcionais e Requisitos Não Funcionais

O Quadro 1 apresenta a listagem dos Requisitos Funcionais (RF) do aplicativo e sua

rastreabilidade, ou seja, seu vínculo com o use case referente.

26

Quadro 1 – Requisitos funcionais do aplicativo

Requisitos Funcionais - Aplicativo Caso de Uso

RF01: O aplicativo deve permitir o usuário realizar buscas por restaurantes

próximos a sua localização atual.

UC01

RF02: O aplicativo deve permitir o usuário realizar buscas por categorias de

restaurantes.

UC01

RF03: O aplicativo deve permitir o usuário visualizar os restaurantes

próximos a sua localização atual.

UC02

RF04: O aplicativo deve permitir o usuário traçar rotas entre a posição atual

do usuário e o restaurante desejado.

UC03

RF05: O aplicativo deve permitir manter usuário. UC04

RF06: O aplicativo deve permitir o usuário efetuar login. UC05

RF07: O aplicativo deve permitir o cliente manter avaliações aos

restaurantes.

UC06

RF08: O aplicativo deve permitir o usuário visualizar avaliações dos

restaurantes.

UC07

RF09: O aplicativo deve permitir ao empreendedor manter restaurante. UC08 Fonte: do autor (2017).

O Quadro 2 apresenta a listagem dos Requisitos Funcionais (RF) do servidor.

Quadro 2 – Requisitos funcionais do servidor

Requisitos Funcionais - Servidor Caso de Uso

RF10: O servidor deve manter o registro de clientes UC04

RF13: O servidor deve manter o registro de avaliações UC06

RF14: O servidor deve manter os registros de restaurantes UC08

RF15: O servidor deve fazer a validação de login dos clientes UC05 Fonte: do autor (2017).

O Quadro 3 lista os Requisitos Não Funcionais (RNF) previstos para o servidor

Quadro 3 – Requisitos não funcionais do servidor

Requisitos Não Funcionais – Servidor

RNF05: Back& como servidor de dados da aplicação.

RNF06 API REST para fazer a comunicação entre a aplicação e o servidor de dados. Fonte: do autor (2017).

3.2.2 Diagrama de Caso de Uso

A Figura 9 apresenta o diagrama de Casos de Uso do aplicativo. O detalhamento dos

casos de uso é apresentado no Apêndice A.

27

Figura 9 – Diagrama de casos de uso

Fonte: do autor (2017).

Qualquer pessoa poderá utilizar os recursos de busca de restaurantes do aplicativo sem

precisar efetuar cadastro ou login previamente. Para que seja possível avaliar um restaurante,

será necessário que o usuário se cadastre no aplicativo para fins de histórico da avaliação. A

partir do momento que o usuário efetuar login este passará a ser tratado como cliente perante

o sistema.

A condição de empreendedor é concedida pelos administradores do aplicativo à

usuários que entrem em contato para solicita-la. Uma vez que o usuário possua está permissão

é possível que ele cadastre seus estabelecimentos no aplicativo.

3.2.3 Fluxograma de atividades do usuário

A Figura 10 apresenta o fluxograma de atividades do usuário, onde é demonstrado o

processo de atividades que usuário pode realizar no aplicativo.

28

Figura 10 - Fluxograma de atividades do usuário

Fonte: do autor (2017).

Na tela inicial do aplicativo é apresentado o mapa posicionado na localização atual do

usuário e neste estão marcados todos os estabelecimentos cadastrados no aplicativo que

estejam próximo a localização atual do usuário. O usuário tem as opções de traçar uma rota

até o local desejado ou acessar a página que contém informações e avaliações do

estabelecimento. Caso o usuário deseje avaliar o restaurante, é necessário que este tenha

efetuado login no aplicativo pois a avaliação de restaurante não pode ser feita de forma

anônima.

3.2.4 Modelo Entidade Relacionamento

A Figura 11 apresenta o Modelo entidade relacionamento (MER) do aplicativo, onde

as tabelas e seus campos podem ser visualizados bem como as relações entre elas. O

dicionário de dados das tabelas presentes no MER é apresentado no Apêndice B.

29

Figura 11 – Modelo entidade e relacionamento

Fonte: do autor (2017).

O MER apresentado na Figura 11 contém as seguintes tabelas:

a) estabelecimentos, utilizada para armazenar os estabelecimentos do aplicativo

cadastrados pelos respectivos proprietários;

b) usuarios, utilizada para armazenar os usuários cadastrados no aplicativo;

c) avaliacoes, utilizada para armazenar as avaliações feitas a cada estabelecimento

por clientes que já visitaram o estabelecimento;

d) categorias, armazena as categorias dos estabelecimentos.

3.3 IMPLEMENTAÇÃO

Nesta seção são apresentadas as técnicas e ferramentas utilizadas no desenvolvimento

do aplicativo bem como a operacionalidade da implementação.

3.3.1 Técnicas e ferramentas utilizadas

O aplicativo foi construído utilizando o framework Ionic que possibilita a compilação

de programas escritos em linguagens voltadas para web em aplicativos para as plataformas

Android e iOS. Além disso o Ionic conta com um arquivo CSS pré-definido para auxiliar no

desenvolvimento das telas com estilos para diversos elementos do HTML.

O Ionic utiliza dos frameworks AngularJS, para fazer a comunicação da camada de

apresentação com a camada de controle da entidade, e o framework Cordova, que tem a

30

função de utilizar os componentes dos dispositivos na aplicação como, câmera, serviço de

localização, arquivos, dentre outros componentes.

A exibição e integração com o mapa foi feita utilizando a Google Maps API v3. Para

fazer uso desta API é necessário ter uma conta de desenvolvedor no Google e solicitar uma

chave de aceso que funciona como uma licença. Esta licença é gratuita até 25 mil

carregamentos diários do mapa. A partir desta quantidade o serviço começa a ser cobrado. O

Quadro 4 mostra a inclusão da API ao projeto.

Quadro 4 – Inclusão da Google Maps API no arquivo index.html

Fonte: do autor (2017).

Para a persistência de dados foi utilizada a plataforma Back& que atua como lado

servidor da aplicação. Trata-se de uma plataforma online que possibilita a criação de

entidades, armazenamento e manipulação de dados, e manutenção da estrutura. O processo

para utilização do serviço é semelhante ao do Google Maps API: um token é gerado

identificando a base de dados criada na plataforma. Uma chamada utilizando o token é feita

no projeto, como mostra o Quadro 5.

Quadro 5 – Inclusão do servidor de dados Back& ao projeto

Fonte: do autor (2017).

3.3.2 Fluxo de comunicação entre camadas

A Figura 12 apresenta o fluxo de comunicação entre as camadas do aplicativo. A

camada de apresentação é composta pelas telas do aplicativo, ou seja, arquivos HTML. A

camada de controle é responsável por fazer as validações dos campos de entrada, chamar os

métodos de persistência da camada de serviço e retornar informações vindas deste. A camada

de serviço tem a função de fazer as requisições ao Back& através dos métodos da API REST

e retornar os dados obtidos para a camada de controle. Por fim, a camada do servidor de dados

tem a função de armazenar os dados das entidades e retornar os dados solicitados pela camada

de serviço.

31

Figura 12 – Fluxo de comunicação entre camadas

Fonte: do autor (2017).

3.3.3 Implementação da aplicação

A apresentação do mapa do aplicativo é demonstrada no Quadro 6. Através do método

$cododovaGeolocation.getCurrentPosition é possível resgatar as coordenadas da

posição atual do usuário e utiliza-las na definição inicial do mapa posicionando no local atual

do usuário.

Quadro 6 – Inicialização do mapa

Fonte: do autor (2017).

O Quadro 7 apresenta o método de solicitação de login presente na camada de serviço

que é enviada ao servidor de dados. As informações de email e senha são passadas como

parâmetro à função que irá retornar um objeto de usuário no formato JSON caso a requisição

seja bem sucedida.

32

Quadro 7 – Solicitação de login ao servidor de dados

Fonte: do autor (2017).

O Quadro 8 apresenta o método responsável por traçar as rotas entre a posição atual do

usuário e o restaurante selecionado. Para utilizar este serviço da API é necessária a utilização

de dois objetos, o google.maps.DirectionsRenderer e o

google.maps.DirectionsService. O google.maps.DirectionsRenderer recebe o ponto

de origem, o ponto de destino e o meio de transporte que será utilizado a partir de um objeto

de request, essa requisição pode retornar sucesso, no caso de todas as informações

fornecidas estarem corretas, ou falha, caso algum parâmetro informado esteja incorreto. O

evento de traçar rota é acionado através da ação de duplo clique no restaurante escolhido pelo

usuário. O google.maps.DirectionsService é responsável por desenhar a rota no mapa

caso a requisição anterior tenha retornado sucesso.

33

Quadro 8 - Método traçar rota

Fonte: do autor (2017).

3.3.4 Operacionalidade da implementação

Na tela inicial do aplicativo é apresentado o mapa posicionado na localização atual do

usuário. Neste mapa é possível visualizar todos os restaurantes cadastrados no aplicativo. Ao

selecionar um restaurante é exibida uma caixa contendo informações relevantes sobre o

restaurante, como mostra a Figura 13.

34

Figura 13 – Tela de apresentação do mapa

Fonte: do autor (2017).

Ao clicar em um restaurante no mapa, o aplicativo é redirecionado à página onde estão

as avaliações do restaurante selecionado. A Figura 14 mostra a tela do estabelecimento

com suas respectivas avaliações.

Figura 14 – Tela de avaliações do restaurante

Fonte: do autor (2017).

35

Para traçar rota entre a localização atual do usuário e o restaurante desejado, o usuário

deve clicar duas vezes sobre a marcação do restaurante de sua escolha e o aplicativo

desenhará no mapa o caminho mais rápido até o estabelecimento. O ponto “A” indica a

origem, representando a localização atual do usuário. O ponto “B” indica o destino, que

representa o estabelecimento selecionado pelo usuário. A Figura 15 mostra a rota traçada do

local do usuário até o restaurante desejado.

Figura 15 - Rota traçada da localização atual do usuário até o estabelecimento

Fonte: do autor (2017).

Caso o usuário deseje avaliar um restaurante ele precisa estar cadastrado no aplicativo

e ter efetuado login. A tela de login tem a função de permitir que usuários cadastrados

realizem avaliações a restaurantes conforme desejarem. A Figura 16 apresenta a tela de login

do aplicativo.

36

Figura 16 – Tela de login

Fonte: do autor (2017)

Para usuários que ainda não são cadastrados no aplicativo, o botão Cadastrar-se na

tela de login, de acordo com a Figura 16, condizirá o usuário para a tela de Cadastro de

usuário, que é apresentada na Figura 17.

Figura 17 – Tela do cadastro de usuário

Fonte: do autor (2017).

37

Após o usuário ter efetuado login no aplicativo, é possível avaliar restaurantes através

do botão +Nova avaliação que é habilitado na tela dos Estabelecimentos. A Figura 18

mostra a tela do cadastro de avaliações.

Figura 18 – Botão nova avaliação exibido (esquerda), tela de nova avaliação (direita)

Fonte: do autor (2017).

O Cadastro de estabelecimentos só pode ser feito por usuários que sejam

administrador do sistema ou pelo proprietário do estabelecimento. A Figura 19 apresenta a

tela de Cadastro de estabelecimentos.

38

Figura 19 – Tela do cadastro de estabelecimentos

Fonte: do autor (2017).

3.4 RESULTADOS E DISCUSSÕES

O aplicativo tem como finalidade a apresentação de estabelecimentos no mapa que

estejam o mais próximo possível da localização atual do usuário. Para guiar o usuário até a

localização do restaurante é possível traçar rota da posição atual do usuário até o

estabelecimento desejado.

Todas as ações do aplicativo são sinalizadas com mensagens de sucesso caso as

entradas estejam corretas ou com mensagens de alerta, sinalizando um preenchimento

inválido e indicando a correção da entrada ao usuário.

O aplicativo pode ser utilizado tanto nas plataformas Android e iOS quanto em um

navegador web que suporte à linguagem HTML5. Isso é proporcionado pelo Ionic, uma vez

que o aplicativo é desenvolvido como um sistema web e o framework é responsável pela

compilação para os dispositivos móveis.

O Quadro 9 apresenta a comparação entre trabalhos correlatos e o aplicativo

desenvolvido nesse trabalho.

39

Quadro 9 - Quadro comparativo com os trabalhos correlatos Localizador de

food trucks

(Ribeiro, 2015)

Kekanto

(Kekanto, 2010)

Restaurant Finder

(Akasoft, 2013)

Find Food

(Araujo, 2017)

Executável nas

plataformas

Android e iOS

Não Sim Não Sim

Traça rota dentro

do aplicativo

Não Não Não Sim

Informação sobre

o horário de

funcionamento do

estabelecimento

Não Não Sim Não

Permite upload de

imagens

Não Sim Sim Não

Fonte: do autor (2017).

Analisando o Quadro 9 é possível perceber que a principal diferença entre o trabalho

desenvolvido e os trabalhos correlatos é a possibilidade de traçar rotas dentro do próprio mapa

do aplicativo. Os demais aplicativos ao executar a função de traçar rota são redirecionado para

o Google Maps para apresentar a rota solicitada.

40

4 CONCLUSÕES

O trabalho desenvolvido atingiu seus objetivos, que eram apresentar opções de

restaurantes próximos à localização atual do usuário e permitir que os usuários avaliem os

restaurantes a fim de auxiliar outros usuários na escolha de bons restaurante.

O banco de dados MySQL descrito na proposta foi substituído pelo servidor de dados

Back& por se integrar de forma mais simples e eficiente com o Ionic. A linguagem C# para

desenvolvimento do web service também foi alterada pois o web service de comunicação com

o servidor foi implementado utilizando uma API REST, e a manipulação desta API se

mostrou mais apropriada com o JavaScript.

Com o resultado obtido com o trabalho obteve-se um aplicativo híbrido, ou seja, que

pode ser utilizado tanto em smartphones que utilizem a plataforma Android quanto na

plataforma iOS.

O framework Ionic se mostrou eficiente no processo de criação de telas. Ele é

responsável por tornar o layout do aplicativo responsivo, podendo ser utilizado em

navegadores com HTML5 e em diversos modelos de smartphone. É um framework gratuito e

open source que se integrou facilmente com as demais tecnologias utilizadas no

desenvolvimento do aplicativo.

Como limitação, o cadastro de estabelecimentos deve ser feito manualmente pelo

aplicativo, o que limita a quantidade de estabelecimentos cadastrados, porém mantém uma

base com estabelecimentos que podem ser melhor administrados pelos administradores do

sistema e proprietários dos estabelecimentos.

4.1 EXTENSÕES

Como sugestão de extensões deste trabalho tem-se:

a) desenvolver funcionalidade para realizar pedidos ao restaurante diretamente do

aplicativo;

b) desenvolver função para os proprietários realizarem upload de imagens dos

estabelecimentos;

c) categorizar média de preço para os estabelecimentos afim de auxiliar o usuário

neste quesito;

d) desenvolver função para que os usuários possam realizar upload de imagem nos

comentários;

41

e) desenvolver integração de estabelecimentos com o Google para reduzir o número

de cadastros manuais no aplicativo.

f) desenvolver função de cardápio e promoções para os estabelecimentos.

42

REFERÊNCIAS BIBLIOGRÁFICAS

AKASOFT, Restaurant Finder. [S.I], 2013. Disponível em:

<https://play.google.com/store/apps/details?id=com.akasoft.topplaces>. Acesso em: 31 de

mar. 2016.

BARROCO, Lize Maria Soares. A importância da gastronomia como patrimônio cultural,

no turismo Bahiano. 2006. p. 12. Artigo Cientifico - UFPR, Curitiba, PR.

BENI, Carlos Mário. Política e estratégia do desenvolvimento regional - Planejamento

integrado e sustentável do turismo. São Paulo: Atlas, 2000, p. 165-171.

BRAUNE, Renata; FRANCO, Silvia C. O que é gastronomia. São Paulo: Brasiliense, 2007.

BRUNET, Karla S.; FREIRE, Juan. Cultura digital e geolocalização: A arte ante o contexto

técnico-político. In: ENCONTRO DE ESTUDOS MULTIDISCIPLINARES EM CULTURA,

6., 2010, Salvador. Anais eletrônicos... Recife: UFBa, 2010. Disponível em:

<http://karlabru.net/site/wp-content/uploads/2013/01/artigo_karla_juan_enecult.pdf>. Acesso

em: 29 mar. 2016.

CARVALHO, Edilson Alves de; ARAÚJO, Paulo César de. Noções básicas de sistema de

posicionamento global GPS. Natal, Rn: EDUFRN, 2009. 244 p. Disponível em:

<http://www.ead.uepb.edu.br/arquivos/cursos/Geografia_PAR_UAB/Fasciculos -

Material/Leituras_Cartograficas_II/Le_Ca_II_A08_MZ_GR_260809.pdf>. Acesso em: 02

abr. 2017.

CORNER, Dolores M. Rodriguez. Gastronomia: patrimônio e identidade cultural. 2012. p. 3.

Artigo Cientifico - IGTF, Porto Alegra, RS.

CUNHA, Kênia B.; OLIVEIRA, Leidmar V. A gastronomia enquanto atrativo turístico-

cultural, 2009. 17 f. Trabalho de Conclusão de Curso (Pós-Graduação em Geografia, Meio

Ambiente e Turismo), Universidade Estadual de Goiás, Mineiros.

FREITAS, Eduardo De. Turismo no Brasil, Brasil Escola, 2007. Disponível em

<http://brasilescola.uol.com.br/brasil/o-turismo-no-brasil.htm>. Acesso em 04 de abril de

2016.

GIMENES, Maria Henriqueta S. G. Patrimônio Gastronômico, Patrimônio Turístico: uma

reflexão introdutória sobre a valorização das comidas tradicionais pelo IPHAN e a atividade

turística no Brasil. 2006. 15f. Artigo (Bacharelado em Turismo) – Universidade Federal do

Paraná.

GOOGLE. Google Maps, 2016. Disponível em: <https://www.google.com.br/maps/>. Acesso

em: 30 de maio de 2016.

HUTCHEON, Stephen. A história não contada sobre o início do Google Maps. Sydney,

2015. Disponível em: <https://medium.com/@lewgus/the-untold-story-about-the-founding-of-

google-maps-e4a5430aec92>. Acesso em: 27 mar. 2017.

43

KEKANTO, Kekanto,[S.I.], 2010. Disponível em:

<https://play.google.com/store/apps/details?id=com.kekanto.android> Acesso em: 31 de

março 2017.

MARTINS, Elaine. Como funciona o GPS?. São Paulo, 2009. Disponível em: <

https://www.tecmundo.com.br/gps/2562-como-funciona-o-gps-.htm>. Acesso em: 24 mar.

2017.

MENEZES, Juliana Santos. O turismo cultural como fator de desenvolvimento na cidade

de Ilhéus. 2003. 12p. Artigo Cientifico - UESC/UFBA, Santa Cruz, BA.

NEKA, Evelyn. Geolocalização no desenvolvimento de aplicativos mobile é importante?.

[S.I.], 2015. Disponível em:< https://pt.yeeply.com/blog/geolocalizacao-no-desenvolvimento-

de-aplicativos-mobile-e-importante/>. Acesso em: 27 de março de 2016.

NERY, Mariana. Gastronomia – Patrimônio à mesa. Brasília, 2006. Disponível em: <

http://www.ipea.gov.br/desafios/index.php?option=com_content&view=article&id=1110:repo

rtagens-materias&Itemid=39>. Acesso em: 15 de abril 2017

NUNES, Emanoel; NAKAI, Érica; BARROS, Pedro. Apontamentos de aula: Sistema

Global de Posicionamento (GPS). Piracicaba, SP, 2013. Disponível em:

<http://www.leb.esalq.usp.br/disciplinas/Topo/leb450/Fiorio/APOSTILA_GPS_pdf>. Acesso

em: 31 de mar. 2017.

PHILIPE, Gabriel. Como funciona o GPS?, 2016. Disponível em: <

https://www.oficinadanet.com.br/post/12406-como-funciona-o-gps>. Acesso em: 29 de mar.

2016.

PILGRIM, Mark. Você está aqui: (Assim como todo mundo está). [S.I], 2010. Disponível

em: <https://diveintohtml5.com.br/geolocation.html>. Acesso em: 29 de março 2016.

RIBEIRO, Leonardo. Sistema móvel na plataforma Android para localização de food

trucks utilizando mapas. 2015. 45 f. Trabalho de Conclusão de Curso (Curso de Sistemas de

Informação - Bacharelado), Universidade Regional de Blumenau, Blumenau.

SCUSSEL, Alexandre. Por dentro do Google Maps. [S.I.], 2013. Disponível em:

<http://mundogeo.com/blog/2013/07/01/artigo-por-dentro-do-google-maps/>. Acesso em: 30

de dez. 2015.

SEGALA, Luiziane V. Gastronomia e Turismo Cultural. Santa Maria, 2003. Revista

Turismo. Disponível em:

<http://www.revistaturismo.com.br/materiasespeciais/gastronomia.html> Acesso em: 29 de

maio de 2016.

44

APÊNDICE A – Detalhamento dos casos de uso

Esta seção apresenta a descrição dos casos de uso conforme previstos no diagrama

apresentado na seção 3.2.1.

O Quadro 10 apresenta o detalhamento referente ao caso de uso Buscar

restaurantes.

Quadro 10 – Detalhamento do caso de uso Buscar restaurantes

UC01 Buscar restaurantes

Descrição Permite o usuário realizar buscas pelos restaurantes aplicando

filtros a sua pesquisa.

Ator Usuário

Pré-condição

Restaurante(s) cadastrado(s) na base de dados.

Fluxo principal 1. Usuário acessa a funcionalidade de busca por restaurantes;

2. Usuário escolhe uma categoria de filtro a ser aplicado a

sua busca (restaurantes próximos, por categoria);

3. Usuário digita a informação referente ao filtro aplicado

para encontrar o restaurante;

4. Usuário seleciona a opção buscar;

5. Restaurante(s) apresentado(s) ao usuário.

Cenário - Exceção Caso, no passo 4, o usuário realize uma busca por um restaurante

que não está cadastrado na base de dados, ou aplique um filtro

incorretamente, será apresentada a mensagem: “Restaurante não

localizado”.

Pós-condição O aplicativo apresenta uma lista de restaurantes encontrados com

o critério de busca utilizado.

Fonte: do autor (2017).

O Quadro 11 apresenta o detalhamento referente ao caso de uso Visualizar

restaurantes próximos.

45

Quadro 11 – Detalhamento do caso de uso Visualizar restaurantes próximos

UC02 Visualizar restaurantes próximos

Descrição Permite o usuário visualizar no mapa os restaurantes próximos a

sua localização atual.

Ator Usuário

Fluxo principal 1. Usuário acessa o mapa onde são apresentados os

restaurantes;

2. O mapa é apresentado na localização atual do usuário.

Pós-condição Caso existam restaurantes cadastrados próximo à localização do

usuário, o aplicativo irá apresenta-los.

Fonte: do autor (2017).

O Quadro 12 apresenta o detalhamento referente ao caso de uso Traçar rotas.

Quadro 12 – Detalhamento do caso de uso Traçar rotas

UC03 Traçar rotas

Descrição Permite o usuário traçar rotas entre a sua posição atual e o

restaurante desejado.

Ator Usuário

Pré-condição

Restaurante(s) cadastrado(s) na base de dados.

Usuário ter habilitado o serviço de localização do Android e

permitir que o aplicativo utilize este serviço.

Fluxo principal 1. Usuário seleciona um restaurante disponível no mapa;

2. Usuário seleciona a opção “Traçar rota”.

Pós-condição É exibido o trajeto entre o ponto atual do usuário e o restaurante

selecionado pelo usuário.

Fonte: do autor (2017).

O Quadro 13 apresenta o detalhamento referente ao caso de uso Cadastrar usuário.

46

Quadro 13 – Detalhamento do caso de uso Cadastrar cliente

UC04 Manter cliente

Descrição Permite o usuário cadastrar-se no aplicativo. Desta forma o

usuário passa a ser chamado de “cliente” perante o sistema.

Ator Usuário

Fluxo principal 1. Usuário seleciona a opção cadastrar-se;

2. Usuário preenche os campos solicitados na tela de

cadastro;

3. Usuário aciona o botão cadastrar.

Cenário – Exceção Caso, no passo 3, o usuário deixe de preencher algum campo

marcado como obrigatório, será apresentada a mensagem: “Faltam

preencher campo obrigatórios.”.

Pós-condição É apresentada a mensagem “Cadastro efetuado com sucesso!”.

Fonte: do autor (2017).

O Quadro 14 apresenta o detalhamento referente ao caso de uso Efetuar login.

Quadro 14 – Detalhamento do caso de uso Efetuar login

UC05 Efetuar login

Descrição Permite o usuário efetuar login no sistema, para que seja possível

realizar avaliações e comentários aos restaurantes.

Ator Usuário

Pré-condição

Usuário estar cadastrado na base de dados.

Fluxo principal 1. Usuário acessa a tela de login;

2. Usuário preenche os campos login e senha;

3. Usuário aciona o botão acessar.

Cenária – Exceção Se, no passo 3, o usuário preencher o campo login ou o campo

senha com dados inválidos, será emitida a mensagem “Login e/ou

senha inválidos”.

Pós-condição O usuário é redirecionado para a tela inicial do sistema e é exibida

a mensagem “Login efetuado com sucesso! Bem vindo [Nome do

usuário]”.

Fonte: do autor (2017).

O Quadro 15 apresenta o detalhamento referente ao caso de uso Cadastrar

avaliação.

47

Quadro 15 – Detalhamento do caso de uso Cadastrar avaliação

UC06 Manter avaliação

Descrição Permite o cliente cadastrar uma avaliação e comentário ao

restaurante visitado. A avaliação consiste em uma nota de 1 a 10

pontos.

Ator Cliente

Pré-condição

Cliente ter efetuado login.

Fluxo principal 1. Cliente acessa a tela de avaliação;

2. Cliente avalia o restaurante em uma escala de 1 a 10;

3. Cliente descreve um comentário sobre o restaurante

visitado;

4. O Cliente clica no botão postar.

Cenária – Exceção Todos os campos desta tela são de preenchimento obrigatório,

caso o cliente deixe algum campo em branco o sistema exibirá a

mensagem “Favor preencher todos os campos para postar seu

comentário”.

Pós-condição Avaliação e comentário atribuídos com sucesso.

Fonte: do autor (2017).

O Quadro 16 apresenta o detalhamento referente ao caso de uso Visualizar

avaliações e comentários.

Quadro 16 – Detalhamento do caso de uso Visualizar avaliações e comentários

UC07 Visualizar avaliações e comentários.

Descrição Permite o usuário visualizar as avaliações e comentários

atribuídos a determinado restaurante.

Ator Usuário

Fonte: do autor (2017).

O Quadro 17 apresenta o detalhamento referente ao caso de uso Cadastrar

restaurante.

48

Quadro 17 – Detalhamento do caso de uso Cadastrar restaurante

UC08 Manter restaurante

Descrição Permite o empreendedor cadastrar restaurante a base de dados do

aplicativo, adicionando informações relevantes ao usuário como:

localização, horário de atendimento, serviço de delivery, tipo da

culinária, cardápio, dentre outras.

Ator Empreendedor

Pré-condição

Ter efetuado login;

Ter permissão de empreendedor.

Fluxo principal 1. Empreendedor acessa a tela de cadastro de restaurante;

2. Empreendedor preenche os campos obrigatórios e, se

desejar, campos opcionais;

3. Empreendedor aciona o botão Cadastrar.

Cenária – Exceção Caso, no passo 3, algum campo obrigatório não for preenchido

será apresentada a mensagem “Favor preencher todos os campos

obrigatórios”.

Pós-condição Restaurante cadastrado com sucesso.

49

APÊNDICE B – Dicionário de Dados

Este Apêndice apresenta a descrição das tabelas do MER apresentado na seção 3.2.2

deste trabalho.

Quadro 18 - Tabela estabelecimentos

Tabela: estabelecimentos

Coluna Tipo Descrição

id Int Chave primária da tabela estabelecimentos

nome String Nome do estabelecimento

descrição Text Descrição do estabelecimento

telefone String Número de telefone do estabelecimento

categoria Int Chave de ligação com a tabela categorias. Categoria do

restaurante

proprietario Int Chave de ligação com a tabela usuarios. Usuário proprietário

do restaurante

latitude Float Valor da latitude utilizado para obter as coordenadas do

restaurante no mapa

longitude Float Valor da longitude utilizado para obter as coordenadas do

restaurante no mapa

avaliacoes Collection Campo gerado pela ferramenta, guarda a lista de avaliações de

cada estabelecimento. Fonte: do autor (2017).

Quadro 19 - Tabela usuários

Tabela: usuarios

Coluna Tipo Descrição

id Int Chave primária da tabela usuarios

nome String Nome do usuário

sobrenome String Sobrenome do usuário

email String E-mail do usuário

senha String Senha do usuário

admin Boolean Campo lógico que marca usuário como administrador do

sistema

avaliacoes Collection Campo gerado pela ferramenta, guarda a lista de avaliações de

cada usuário.

estabelecimento Collection Campo gerado pela ferramenta, guarda a lista de

estabelecimentos de cada proprietário. Fonte: do autor (2017).

Quadro 20 - Tabela avaliações

Tabela: avaliacoes

Coluna Tipo Descrição

id Int Chave primária da tabela avaliacoes

titulo String Título da avaliação

descricao Text Descrição da avaliação

nota Float Nota atribuída ao estabelecimento de acordo com a avaliação do

usuário

data Datetime Data do cadastro da avaliação

usuario Int Chave de ligação com a tabela usuarios. Usuário que avaliou

o estabelecimento

estabelecimento Int Chave de ligação com a tabela estabelecimentos.

Estabelecimento avaliado Fonte: do autor (2017).

50

Quadro 21 - Tabela categorias

Tabela: categorias

Coluna Tipo Descrição

id Int Chave primária da tabela categorias

nome String Nome da categoria

estabelecimentos Collection Campo gerado pela ferramenta, guarda a lista de

estabelecimentos de cada categoria. Fonte: do autor (2017).