Technological Solution

Technologies and platforms used:

Behind the scenes we have 3 major components: An Android App + Service for mobile users and data collection. These connected over the web with our Azure-Cloud based server, comprised of a web server (TomCat) and an MS-SQL database.
All of our inter-component communication is conducted with REST calls.
The third part is the physical display which is built from laser-etched wood that houses a laptop that controls Arduino boards alongside Android devices that play our music and show our statistics.



Smartphone App:

We developed our smartphone App on the Android platform, using the built-in geo location services (the LocationManager object) and tapping into the music player. We also programmed a simple music player of our own which is basically a UI that operates the phones’ built-in player.

Cloud

We use Windows Azure as our cloud services provider. Our cloud platform has two sections:

  • Web server: Apache Tomcat is used (on a VM), with a Java WebApp deployed on it.
  • Data Management: SQL Database


Physical Display

The technology behind our physical display is based on the Android OS. It gets data from the web server, plays the songs through an audio jack, and has a screen to show song data. Currently separate smartphones will be used for each point of interest. Those may be replaced in the future by Android based single board computers.


Communications
We use REST calls to communicate between the web server and the physical display and smartphone app. The data is encoded using JSON. 


Database

Below is a DB diagram for the server DB that holds all collected data for playback and statistical analysis purposes. Key icons indicate Primary Keys and orange lines indicate Foreign Keys.

The DB is accessed solely by the WebServer which in turn publishes the relevant functions for each client (the "Stations" at the physical displays and the Android App).





No comments:

Post a Comment