We implemented the front-end of the application utilizing pure HTML/Javascript/CSS, along with the chrome extension API (specifically the identity and storage features).

We leveraged the existing authentication mechanism for extensions, so that users could log in through their Google accounts. Though the user data associated with one’s account is retrieved from Google, we keep the Pomodoro session-related information associated with these users in the database behind our back-end API.

The timer is synced with the chrome storage API so that timer state and blocked site information are synced with the user’s Google profile. We implemented a RESTful API utilizing Django Rest Framework, hooking into a SQLite database. Upon successful completion of a focus session, session details are sent to the API for associating with the user and storing the data.

In addition to intercepting and blocking the site a user is navigating to, we also filter out any search results from the blocked domains on Google search. Looking forward, we believe improving the search filter via some sort of natural language processing can be very useful in more intuitive results filtering.

Share this project:

Updates