Skip to content

Latest commit

 

History

History
30 lines (26 loc) · 3.16 KB

File metadata and controls

30 lines (26 loc) · 3.16 KB

Contributors: Prashant Mishra, Yash Sinha, Satya Karthik. Please read this before going through the project. The application can be found online to test at event-miner.herokuapp.com. But to use it you would need to tell us your facebook Id, as the app is still unpublished and can be used only through facebook ids authorized by us. The problem we are trying to solve is serving information about local users to the end user.

There are some potential problems:

  1. We don’t want the user to install a separate web app for this. We want to engage them through existing portals.

  2. We don’t to flood the user’s calendar with event listings.

  3. The event publishers must have a common platform where they can notify relevant users through a single application.

Enter Event-miner, a facebook based web tool for both event-goers and event publishers. Following a brief description of the code in this repository:

  • Module One: Event Aggregator

  • Module Two: Facebook application and authentication

  • Module Three: Event filtering based on user’s location and interests as obtained from Facebook profile.

  • Module Four: Facebook notification generator to inform and remind users of upcoming interesting events.

Technical details:

  • This is ruby on rails application, hosted on heroku.

  • The Facebook application has been developed using Javascript SDK.

  • The application has only one html view (file app/views/welcome/index.html.erb)

  • The html view loads a facebook authentication button and a map to show local event locations. Initially the map is empty.

  • Once user authenticates using the code in (app/assets/javascripts/fb.js), the appliction gets the user’s location and a list of the pages liked by the user.

  • Based on the location, the map updates with only nearby events from the database. The maximum distance to show event upto can be controlled via a single variable (it is 100 Km at the moment). The mapping api can be found in (app/assets/javascripts/map.js). The common application code can be found in (app/assets/javascripts/app.js)

  • We have written an example data aggregator for the website Eventbrite in Python, to mine all event related data. This data is then matched with the pages the user has liked on facebook, thus serving only events relevant to the user’s interests. Unfortunately due to less time we could not implement this part. We could not implement a proper database as well, and used json format data in (app/assets/javascripts/app.js).

  • Once the event data is filtered both by user’s interests and the location, a facebook notification will be sent to the user with the words “You have {some_number} of interesting events coming up near you. Go check’em out!” We feel this is a huge improvement to actually feeding events directly to the user’s calendar which might spam the user.

Improvements:

  • One member in our team could scrape an api like Eventbrite’s in such a short duration. A team of 5 developers scraping one api per day could add support for about 150 event publishing websites within 6 weeks.

  • The app is not supported by an ssl key, and thus if you try to navigate by clicking on the notifications sent to the user’s facebook profile, it will end up on an empty page.

-