The inspiration for Twogle was derived from an idea based on improving the basic search engine. Our objectives were to create a search tool that would subtly learn the preferences of the user, drastically improving the usability of the engine.

What it does

Twogle utilizes Microsoft Azure and the Bing Search API to search through thousands of web pages on the internet and delivers then in order of relative importance. Twogle steps beyond the realm of an ordinary search engine when it keeps tracks of the links and domains that you prefer to visit for certain types of requests, as parsed by the Google Cloud API's Natural Language Processing. For example, if a user tends to click on recipes from one website, searches for recipes will tend to highlight results from that domain.

How we built it

Twogle was primarily built using PHP scripts that were hosted on a cloud LAMP server. These scripts formed the basis of Twogle for both its function and display. HTML, CSS and JavaScript were also used heavily along the way.

Challenges we ran into

During the development of Twogle, one of our major obstacles was integrating Google Cloud's NLP from their API into our website. The Cloud API would not easily integrate with MySQL making it difficult to store the user's preferences in a database. Additionally, it was challenging to store information regarding the user without requiring the user to go through some sort of login, but we managed to find an elegant solution combining client-side storage of a unique ID in a cookie and a server side database maintaining the search preferences of each user.

Accomplishments that we're proud of

We're very proud of how many different yet useful APIs and web-services we integrated into Twogle. Another accomplishment our team is proud of is Twogle's ability to process data given by the user seamlessly.

    $k = 1;
    $indecesOfPriorityHits = array();
    while($k <= count($ArrayOfHits)) {
        if (in_array($ArrayOfHits[$k]["domain"], $domains2)) {
            array_push($indecesOfPriorityHits, $k);
    $PriorityHits = array();
    foreach($indecesOfPriorityHits as $index) {
        array_push($PriorityHits, $ArrayOfHits[$index]);

This is one of the functions that we had the most trouble with. We had to find sites that have been frequently accessed by the user and propagate them to the top of the search.

What we learned

While undergoing this project, many of us learned the full extent of the applications of PHP. Additionally we learned that the The Google Cloud is picky with its compatibility and works best with custom made databases or Firebase.

What's next for Twogle

Twogle could become the basis for search engines in the future. Twogle keeps track of what users find important without keeping track of their personal information. It curates results for you much like a friend grows to learn what your preferences are, creating a much more intimate and meaningful experience with the service.

Share this project: