Project Description
The AppTour project is an academic, end of degree thesis, which goal is to provide real time information to tourists, when visiting a location.
The idea is to provide information that is usually dispersed on the Internet as well as the one that can be provided through partners in a centralised way, pretty much as an indexer, but focusing on the categories considered to be relevant for tourism.
It also tries to provide information that is relevant when queried by filtering and simplifying the vast information that exists and bringing to the user only the one that is relevant at the time and place where he is. This approach we call the concept “Right Here, Right Now”.
The application acts as a virtual guide and tries to satisfy the doubts about a city, for locals or foreigners.
The project consists of a central repository that serves both a Web Portal as well as Web Services, that in turn will be consumed by an android native app. The data is inserted manually by the users of the application or automatically through the use of agents.
These agents will “feed” on known sources, each of them specific for certain categories that will aggregate the information that is public in the internet. The Agents are built in order to allow for easy scaling and the creation of new Agents as new sources are discovered or available.
Technology Stack
For the main Application we chose Windows Server 2008 and IIS. The data persistence is done using SQL Server 2008 and Entity Framework.
The Web Portal was done using ASP.NET MVC 3 and the language used was C#. The use of HTML, CSS, jQuery, AJAX and XML/XSL was also present.
For the Web Services we used Microsoft WCF. The Web Services allow the SOAP protocol, but also allow XML without any SOAP envelop. It can be extended to support JSON, in order to allow for greater flexibility.
The Agents used also C# and were created as a Service and also a console application for easier debugging.
The Android app was written in Java with Android SDK. It used a local SQLite instance for small data persistence in order to allow offline access. For full usage of the app it would also required GPS / AGPS access.
Demo
You can find a demo of the app in the following link.
Please bear in mind that the app is targeted for older versions of Android and have not been updated since, so a few bugs can occur. There is no support, therefore it may not work as intended.
Also because there is no deployed server, the app will not be able to display any valid information.
Github
Link for Github Repo
Special Thanks
This project was developed with the help of my colleague Ricardo Carneiro, to whom I am extremely thankful.