GuideMe: service for consulting, publication and recommendation of touristic locations - Umanets, Artem (2013)
Nos últimos anos, com a proliferação de dispositivos móveis, tais como smartphones, as pessoas estão em constante troca de informação. Por exemplo, no contexto de visitas turísticas, as pessoas têm sempre o smartphone presente, o que lhes possibilita a consulta da informação sobre o ponto turístico escolhido. Quando se visita um determinado local, a aplicação de guia turístico recomenda informações úteis para o utilizador. Estas recomendações são baseadas na localização atual do utilizador, nas suas preferências e visitas anteriores, possibilitando ainda que seja fornecida a opinião do mesmo sobre cada visita. Neste relatório, abordamos o desenvolvimento da aplicação móvel e a correspondente aplicação Web, denominada GuideMe, para consulta, divulgação e recomendação de locais turísticos. A aplicação móvel foi desenvolvida para a plataforma iOS, seguindo o conceito de Universal Application, suportando os dispositivos iPhone, iPad e iPod Touch. O serviço na sua totalidade, oferece um conjunto de funcionalidades que melhoram a experiência do utilizador durante as visitas dos locais turísticos. O foco principal da aplicação móvel, é o de apresentar os locais turísticos na vizinhança da posição atual do utilizador. A informação sobre a localização atual é representada sob a forma de coordenadas geográficas (latitude e longitude), obtidos pelo dispositivo móvel através do equipamento Global Positioning System (GPS) ou através da triangulação de antenas WiFi. Os utilizadores também têm acesso a opções de filtragem únicas aquando da pesquisa dos locais turísticos. A pesquisa podese basear na sua disponibilidade para a visita, condições meteorológicas do local e altura preferida do dia (dia ou noite). Cada utilizador pode consultar os pontos turísticos, marcalos como visitados ou por visitar. Posteriormente, o sistema irá usar esta informação para calcular as recomendações dos locais que não foram previamente visitados pelo utilizador. A infra-estrutura que suporta o serviço GuideMe implementa o próprio sistema de recomendação, que tem como objetivo analisar as visitas de cada utilizador e construir listas de recomendação baseando-se nos gostos mútuos entre os utilizadores. As recomendações produzidas são adequadas ao gosto do utilizador em causa. Com o sucesso do sistema de recomendação da Amazon, este tema tem sido o alvo do estudo e contribuição constante nos últimos anos. Através da literatura analisada, teve-se a oportunidade de estudar as diversas metodologias e algoritmos que compõem os sistemas de recomendação atuais. Analisamos as vantagens e desvantagens das seguintes abordagens e metodologias: Filtragem Baseada em Conteúdo (FBC); Filtragem Colaborativa baseada em Itens (FCBI); Filtragem Colaborativa baseada em Utilizadores (FCBU); Sistemas Híbridos. A literatura justifica que os sistemas mais robustos e de maior qualidade são baseados em abordagens híbridas. Na sua vertente simples, um sistema híbrido é composto pela junção do FBC com FCBI ou FCBU, que minimiza os pontos fracos de cada um dos sistemas. Apesar da eficiência e da qualidade dos sistemas híbridos, devido à sua elevada complexidade de implementação, a abordagem escolhida para este projeto é a FCBI. Realizamos o estudo e a avaliação estatística dos diversos fatores (desempenho, tempo de execução e a dimensão de dados) que nos possibilitaram concluir que o algoritmo Slope One é o mais adequado para o sistema de recomendação em questão. A computação das recomendações é realizada periodicamente, agendada pelo Cron job para as 3:00 da manhã, em cada dia. O serviço seleciona um conjunto de utilizadores com as novas visitas e atualiza a sua lista de recomendações. O serviço GuideMe foi implementado com uma arquitetura de 3 camadas, composta pela camada de dados, camada lógica de negócio e camada de apresentação. A primeira é responsável por armazenar a informação num modelo relacional MySQL. Qualquer operação sobre o modelo de dados é realizada através da camada de acesso a dados, implementada com recurso à framework Hibernate. Na camada de negócio posiciona-se a componente de sistema de recomendação e a RESTful API. A API expõe um conjunto de endpoints a serem consumidos pelas aplicações clientes, é responsável pela sua segurança, autenticação, formato de dados, entre outros. O serviço de recomendação encontra-se implementado sob a forma de uma biblioteca, enquanto que a API RESTful é implementada com recurso à Play Framework como uma aplicação Web. Ambas as componentes acedem aos dados usando a mesma camada de acesso a dados. A estabilidade do serviço foi avaliada através de testes de carga. Estes ajudaram a detectar os pontos fracos do sistema, implicando melhorias a nível de estabilidade e robustez do serviços desenvolvidos. A aplicação móvel e a aplicação Web, utilizam os mesmos endpoints da API RESTful para consulta, publicação e edição dos dados. Suportam a autenticação através dos serviços sociais comuns para a atualidade, nomeadamente Facebook e Twitter. Ambas as aplicações suportam o conceito de internacionalização. Atualmente encontram-se em Inglês e Português, mas a infra-estrutura implementada possibilita uma fácil adição de novos idiomas. A internacionalização constituiu um desafio no desenho da arquitetura do sistema, é uma funcionalidade que teve de ser integrada desde o modelo relacional, até à camada de acesso a dados, API RESTful e as respetivas aplicações Web e móvel. A aplicação Web implementa um subconjunto de funcionalidades da aplicação móvel, esta foi desenvolvida com o objetivo de provar o correto funcionamento da RESTful API demonstrando que várias aplicações clientes conseguem consumir a mesma fonte de informação. Atualmente a interface do backoffice é implementada pela aplicação móvel que pode ser apenas acedida por utilizadores com privilégios especiais. Em modo de administração é possível realizar operações tais como: editar a informação de um local; adicionar novos locais; consultar a informação reportada pelos utilizadores sobre os dados incorrectos de um local; e visualizar os erros das diferentes componentes do serviço. No futuro, pretende-se com que a aplicação Web tenha o mesmo conjunto de funcionalidades da aplicação móvel. Foi o que diz respeito ao backoffice, de modo a facilitar a gestão do sistema em algumas situações. As aplicações desenvolvidas providenciam uma interface agradável e de simples utilização. Foi conduzida uma avaliação de usabilidade da aplicação móvel, que nos possibilitou identificar o público alvo, as suas preferências e a opinião que obtiveram ao utilizar a aplicação GuideMe. Na análise realizada, a avaliação geral foi positiva e a maioria das pessoas mostrou interesse em utilizar a aplicação no futuro. É expectável que a solução atual seja posta em prática e que contribua de forma positiva para o aumento de turismo nos locais menos conhecidos.