Humans spend more and more time in front of their screens, but they do that at the expense of enjoying the world around them. That problem inspired us to create an app that will help you track your screen time because without doing that, you can miss an event in the real world, which could cause you a lot of regrets in the future.
For example, one of our team members recently went to Colorado but missed his opportunity to take pictures of tall mountains and steep, beautiful canyons because he was getting distracted by his phone. This type of story can happen to anyone, so it is important to address the problem of overexposure to technology. We are determined to help our users enjoy their non-digital life, while also completing their tasks on the computer.
What it does
Our product allows the user to set his own screen time limits, track the time he spends on his computer, and view important and accurate data about his activity. Our app doesn’t need the user to interfere with it while he or she is working, all the user needs to do is run the app in the background and start working. The app will take care of everything else. The statistics the user will get at the end of his work session will assist him in developing a better schedule for his future sessions.
How we built it
We built this app using Flutter, Web, Python, and Firebase. Flutter's efficiency and compatibility prompted us to use the framework for our companion app. Also, since manual recording is relatively taxing, we made an OpenCV system where it would track the individual's face. Firebase would record statistics like hours of screen time and the number of breaks and show it on the companion app.
Challenges we ran into
Our app relied a lot on the ability of our code to detect faces, but the machine learning algorithm that was responsible for that was at times inconsistent. Because the angle at which the camera sees the user’s face changes, at some moments, the app could think that the user left the screen. Since that is not necessarily true, we needed a way to adapt to the face movement, as through many experiments, we found the right algorithm that can detect whether the user made a minor movement to the side or left his work area. This solution helped us overcome the challenge and make the app run properly.
Accomplishments that we're proud of
We had a team of programmers from very different levels of programmers, but we found a way for everyone to participate and learn. Each of us used a new language to code some features of the app and learned how to use new libraries and features of his favorite or most used language. We are very proud that we managed to collaborate on the project and make everyone an important part of the team, even though some members never met each other before.
What we learned
For most of our team members, we learned new languages (Flutter, Python) and explored new libraries that we have never used before. Experimenting with face detection and computer vision was a large part of this app and fixing up the problems we ran into was very insightful. With such little time, we learned team communication and time management as we pushed ourselves to create the best app experience for our users.
What's next for OffNet
Although OffNet is largely completed already, our team believes that adding extra features such as parental controls, specific program tracking, and more customization would prove beneficial for our app. Overall, we want to provide the easiest way for our users to track their times without hassle and with the foundation already set for the basics of the app, we hope to expand on these aspects and make tracking your computer screen time as easy as can be.