Inspiration
Our inspiration stemmed from our own frustration with maximizing productivity and efficiency. We explored the market for supposed “distraction eliminators” that would enable us to focus our time on the tasks that we felt passionate about. However, we found that there were little to no long-lasting solutions. The market is filled with temporary website blocking extensions that can be circumvented through anything from incognito tabs to simply unblocking the website. More permanent solutions that completely disallowed the access of blocked websites were not effective as well, as they were impractical. Even though we may not want to access a distracting website while we are working, we certainly would want to enjoy entertainment in our downtime. Our main inspiration in finding a middle ground was RescueTime, an app that gives the user a breakdown of the amount of time they spent on various websites. We wanted to take this one step further by using statistics to give the user more information about their browsing habits and tendencies.
What it does
JanusTracker views the user’s browser history and manipulates the data in order to find trends/patterns on the user’s screen time and efficiency. It presents these patterns to the user in the form of tables in graphs in order to help the user become aware of their productivity level and possibly improve it.
How I built it
JanusTracker uses mainly Python and SQL in order to view the user’s search history. Google chrome and Firefox save browsing history in a hidden folder, which we converted into a sqlite3 database. We used the Google Sheets API in order to transfer our data into a spreadsheet using our Python program. Then, we called various editing and updating methods in order to update the spreadsheet with only the browsing information that we needed. In order to find trends, we used the Python numpy, pandas, statsmodels libraries to find 1-var statistics.
Challenges I ran into
As this was our first year of learning to code, we faced a very steep learning curve in learning about operating systems and APIs. The first challenge we ran into was transferring data from a user's browsing history. We were able to solve this by converting the data into a SQL database which we then queried in order to get the information we needed. Another challenge we faced was appending this data into a Google Sheet which we could continuously add to as the user continued to browse, as we had to learn how to use the Google Sheets API, which was a very foreign concept to us at the beginning of this hackathon. Designing a Google Chrome extension that a user could possibly use was also a challenge we ran into. We had to create JSON files in order to allow the program to access our spreadsheet.
Accomplishments that I'm proud of
We are proud of our newfound solutions and deeper understanding of existing ones. Putting ourselves in a situation where we had no choice but to understand how a particular set of code works or how we can utilize different methods to create the most effective program is an accomplishment we are proud of. Specifically, APIs opened up many opportunities for us to extend our ideas to different problems as they are so versatile and accessible. Understanding them was an accomplishment we are proud of. One of the biggest parts of learning how to program is learning how to think like a programmer. During this hackathon, we continued to develop our minds to follow a more efficient thought process.
What I learned
Throughout this hackathon, we were constantly expanding our knowledge. One of the biggest challenges we faced when building our chrome extension was transferring our data to a spreadsheet, so we learned how to use APIs in order to help build a basic framework of our idea. We also learned how to make SQL queries in a Python program using sqlite3.connect(). We also benefited greatly from the help from various mentors, and from the several workshops provided at HackTJ, such as the Machine learning workshop.
What's next for JanusTracker
Currently, our web extension finds patterns in the user’s browsing history and presents this information to the user so they can be aware of their screen time and productivity level. In the future, we plan to expand our app further to allow the user to permit the app to block distracting websites during “work periods” in order to help the user stay on task. We are also planning to develop our UI further in order to make JanusTracker easy to use for students and adults of all ages. We want to make this extension more versatile by categorizing different websites, helping the user set SMART goals by giving them an in-depth analysis of their browsing, and offer different ratios of work and entertainment time (such as the popular Pomodoro method) to give the user more control of their day. Eventually, we want to become a center of productivity by designing an application that allows for complete control of one’s day. Currently, we are can only print a limited amount of data to our spreadsheet due to the constraints of using the free version of the Google Sheets API, but we plan to expand JanusTracker to print more data to our spreadsheet in the future.
Log in or sign up for Devpost to join the conversation.