find food: aplicativo para localizaÇÃo e...
TRANSCRIPT
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
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.
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.
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).