When thinking about how to use big data for good, we came up with the concept for Surf in order to help users understand their browsing habits and patterns as well as make some common tasks quicker and easier.

What it does

Surf is a Chrome extension that intelligently suggests sites a user may want to visit based on browsing activity, such as browsing history, mouse movements, and user habits. At the top right of each site, users will see an unobtrusive list of suggestions for that site that displays actions that they would normally take. By mousing over this bar at the top right, users will see an expanded list from which they can select their next destination. Finally, users have access to an analytics page, which includes a visualization of their usage patterns.

Surf also has a companion Android app that allows users to look at their browsing habits as well as access their most used links. The app receives the user data live from the server and displays the current link and a set of suggested pages so that a user can quickly pickup their browsing on their phone. The app also helps provide a better visualization of what a user's web browsing patterns look like at any given link.

How we built it

The extension collects various metadata such as browser history and mouse activity and uses a PageRank-style algorithm to determine a list of suggestions for each website a user visits, and this list changes dynamically as users continue to browse. It syncs this data to a Firebase database, which the companion app reads from. The companion app then translates the data stored onto the server into multiple different components such as webpage title and favicon to present the user with readable data. This data then goes through an adapter we created that compiles this data into cards that are displayed on the screen.

Challenges we ran into

  • We had to build an algorithm in order to calculate suggestions
  • Generating/collecting test data to assist in modifying the algorithm was time-consuming
  • Adding this data to a server took more time than initially planned
  • Hooking up the extension and app to Firebase complicated things considerably

Accomplishments that we're proud of

The extension is sleek and genuinely useful, and the Android app provides interesting insights into user browsing habits. The app also reads live from a server, and therefore can be used to expand a user's experience.

What we learned

Building and testing something that's meant to handle lots of data is difficult to do quickly, and adding users and databases complicates things even more. Integrating components of the project written in different programming languages also required a significant amount of extra parsing to connect them.

What's next for Surf - Predictive Browsing Plugin

  • Enhance algorithm by training a machine learning classifier (we need to collect more real data)
  • iOS companion app, Firefox/Safari/etc. extensions
  • More sophisticated user handling/login system
  • End-to-end encryption of user data


Share this project: