Skip to content
Sankeerth edited this page Jun 26, 2016 · 3 revisions

#[Project Description](Project Description)

[Problem and its significance](Problem and its significance)

There are many social platforms which support product/event publicity but none of them make use of the underlying context or information available about the event. There is currently a gap between the event organizers and the targeted audience. Many users tend to miss events happening around them as they are not active in any social platform or tend to forget about it when the event is actually happening. This is leading to a problem for the event organizers as they spend a lot of resources in its publicity but do not get the desired turn out. Likewise on the other hand the targeted users are missing out on many interesting stuff happening which they could have been a part of.

On a business scale an analogous scenario here would be multiple business entities publicizing about their product to their targeted users. A majority of the publicity done on several social platforms now does not receive immediate reaction and the turn-around ratio is very skewed. The common attribute surrounding the problem in both the scenarios is that the efforts put into event publicity are not reaching users who happen to be by near the event. On the user perspective there are no platforms to find out what is currently happening now around him. This problem if solved would benefit on a social as well as on a business scale.

[Solution Approach](Solution Approach)

The current social outreach platforms available do a good job in publicizing events offline, i.e, they act as a good means of publicity before the event has started. There is no platform to attract the users currently near the location of the event being happened. This project involves the design and development of an IOT enabled platform that would bridge the gap between event organizers and targeted audience by leveraging publish - subscribe model of the Google beacon platform. Our idea exploits the assumption that the user will be more prone to act towards the events happening around his current physical location.

A university is an ideal place as there are various events happening and users are actively interested in knowing about the events around them. Hence Smart - Campus. We aim to build Smart - Campus by placing multiple beacons in and around campus at strategic locations which would push events happening in the nearby locations when a user passes-by. Additionally, users will be appropriately targeted by using algorithms that iteratively learn over collected data and personal interests. This platform would be beneficial for the organisers as there would be context driven publicity based on the location. Likewise the users will also find out about events/activities happening in their vicinity or within reach. This would generate more interest in them as they are already available at the physical location.

[Functionality Architecture](Functionality Architecture)

The architecture for Smart-Campus we propose has three major components which interact with each other:

  • Beacons which are installed across various locations in the campus.
  • A smart-campus cloud which stores all the information of events associated with a particular beacon.
  • An Android App which interacts with the beacons and the smart-campus cloud to fetch relevant event details to the user.

A high level interaction of our architecture can be seen in the above diagram. The app on the mobile phone detects all the beacons nearby and fetches the broadcasting information by the beacons. This information is passed to the central smart-campus cloud server to fetch the events being broadcasted through the beacons.

[User Flows](User Flows)

There are three kinds of users in our design. The Beacon Manager, The User and The Organizer.

  • Beacon Manager : The beacon manager is responsible for managing the beacons deployed in the campus. This would include on boarding and deboarding of a beacon, grouping of beacons and managing predefined locations in the architecture.
  • User : The user is any user who has the app installed in a mobile and searching for events. The user can subscribe to a predefined list of categories in the app regarding which he wishes to be informed about. Additionally the user can mark a certain event as starred which he can access later whenever he desires. Organizer : If the user has organizer permissions then he can create events which can be broadcasted by the beacons installed in the campus. The organiser can chose within a list of predefined grouping of beacons to broadcast too. The app also provides analytics like how many users have starred his events.

[Machine Learning](Machine Learning)

Our architecture gives us the flexibility of collecting user behaviour data on which we can perform several analytics and recommend events to the users. We chose to do Item Based Collaborative Filtering based recommendations using PredictionIO to the users of our App. This essentially means that based on the user activity and likes in our app we recommend a set of events to the user resembling his activity so far. This is achieved by pushing data constantly to a PredictionIO server and use our Collaborative filtering algorithm to generate recommendations by querying the predictionIO server when required. In our current version of the App we have implemented recommendation based on user views and likes for an event.

As described earlier, our architecture has multiple key components interacting with each other in the platform.

  • SmartCampus App : Android application.
  • Smart-Campus Cloud : This is a cloud based web-service containing the core services of our application. The user interface of our application is also embedded in our web-service. It also contains the collaborative filtering algorithm to implement event recommendations.
  • ML Server : Data store for storing Machine Learning relevant data and computing recommendations.
  • Beacons : BLE devices installed in the campus to gather location specific data.

[Implementation Effort Map](Implementation Effort Map)

  • SmartCampus App : We built a native Android application which would interact with a nearby beacon if present using the Beacon Proximity API and make API calls to the Smart-Campus cloud. The result obtained is rendered as a webview in the Android application. The time taken to build the Android Application and integrate it with the beacon service took 1 week.

  • Smart-Campus Cloud : As stated earlier this is the central component of our architecture. It will integrate with the Mobile App to get beacon info and in return provide events info. Parallely, this will also push data to the Solr server asynchronously and interact with it whenever recommendations are requested and it also hosts the Collaborative Item Filtering algorithm. Additionally, the smart-campus cloud hosts the user interface for the application. We chose the Play Framework to implement the web-service and it took approximately 3 weeks to finish building, integrating and debugging with other services. This includes the time required to build our user interface too.

  • PredictionIO : We have used predictionIO packages to perform the task of Machine Learning in our project. This would consist of a cloud service hosting predictionIO as a service. This service will ingest data from the smart-campus cloud and use this data to train itself to perform Item Based Collaborative Filtering to recommend events. The data ingestion will happen asynchronously from the smart-campus cloud and therefore will not disturb the functional logic of our application. We spent a total time of 1 week to set up a server and configured the data model to suit its needs.

  • Data Generation : In order to test our application we needed to generate some test data which was a trivial task but for the recommendation algorithm we needed 10x more data than needed for functional testing. We had to spend 1 day to write a script to generate dummy data for our application.

  • Integration Testing: Since our application has many components speaking to each other through the network we had to spend a considerable amount of time of 3 days for integration testing.

[Project Status and Challenges](Project Status and Challenges)

In the current version of our project we have completed the following features :

[User Features](User Features)

  • Get notifications about events happening from the nearby beacons discovered.
  • Look at each event in detail and “star/unstar” an event for reviewing later.
  • Subscribe to predefined categories and view events filtered on them.
  • Recommendation tab to view the events recommended by the App. We have successfully implemented recommendation based on user views and likes activity.

[Organizer Features](Organizer Features)

  • Create an event and choose from a list of predefined locations to broadcast it.
  • Assign predefined category tags to the events created.
  • View the list of created events. We have rendered our web-service using Android webview and hence our main challenge was to ensure a native app like experience was rendered to the user. Another key challenge was to integrate PredictionIO into our smart-campus cloud as the predictionIO engines available were not very stable.

[Business Model](Business Model)

This app would bridge the gap between event organizers and targeted audience by leveraging publish - subscribe model of the Google beacon platform. A few business models we can think of at this point are on the lines of a Freemium App. We would deliver our app to customers free of charge and generate revenue with the Freemium features in the following way :

  • In-App Purchases – Once event organizers are using our app, we provide them with chances to publish more than 5 events by purchasing an extra content packages within the app.
  • Platform As a Service - Another business model would be on the lines of providing this as a Platform as a Service module ,our app would be installed in specific locations and we would charge on a monthly basis for the services hosted. This would give us more control over the revenue module and generate high profits.

We aim to target the event-publicity market using our application. Our application would be one of the first to exploit location based context information about an event and this combined with the Machine Learning analytics would be the defining characteristic of our application. In our first iteration we are building the platform for a University campus. Later we would also dive into building it for a more commercial location and in doing so come up with a generic model for the platform. Since this application targets an untapped sector of the market we cannot give a clear estimate about the market share but considering that this would be one of the first of its kind, a majority of the market share will be seized by our product.

Video