Since the start of the covid-19 pandemic, procrastination has slowly crept its way into our lives. I keep on watching anime and I find that i sleep at 3am due to my habit of procrastination. My friend Leo also has this problem when he browses Youtube for hours on end when he should be studying for math. Existing web blockers block entire domains, but we sometimes also need to search up a few javascript tutorials or watch 3b1b, blocking the entire domain simply won’t work. We needed a practical solution to this.

What it does

Fixate utilizes Machine Learning in the google cloud to analyze visited web pages to see its relevance to the user's “area of work”. Unrelated pages will be blocked so you can stay focused even at home. Users can select how strict they want Fixate to analyze on three default settings, relaxed, normal, and strict. It is important to note that personalized settings can be customized later on.

How we built it

We were reminded of this word association game powered by machine learning from Google experiments we saw a while ago and realized that’s the exact technology we need. So we did some digging and found the underline model which is licensed under apache-2..0, perfect.

We are running the machine learning bit on a vm instance on the Google Cloud Platform to reduce load on the client side. The same python program also runs an HTTP web server, allowing communication with the client side chrome extension.

The chrome extension stores the user’s area of work, sending it to the web server with the title of whatever webpage you are on. The webserver then responds with a single number, which is how similar the two queries are. The chrome extension then uses that information, along with the user’s strictness setting, to determine whether or not to block a site and if so, it will overlay a white background on top of the user’s webpage. The white overlay’s opacity can also change depending on if the site is slightly relevant or not relevant at all.

Challenges we ran into

The first challenge we ran into was tfjs. We just couldn’t get tensor flow to work in javascript for some reason. Our solution was to keep tensorflow in python and just move all the machine learning stuff into the cloud, which ended up working great. We also had issues getting an SSL certificate, and we were not able to have that setup in time.

Accomplishments that we're proud of

Implementing Fixate as a chrome extension proved its challenge, and we are proud to have overcome this challenge after hours and hours of failed attempts.

What we learned

Some of the simplest ideas offer the best functionality, and even though Fixate is simple in nature, it truly has the potential to grow into a much larger platform and serve a larger audience.

What's next for Fixate

Fixate is planned to launch in the near future with a 3-month trial for users to test out. Users can purchase a permanent copy for a low affordable cost. We also plan to implement a more customizable user interface to tailor to a wider audience range, offering specific settings depending on the need. Further development can be focused on improving the accuracy of Fixate to suit more complex sites.

Built With

Share this project: