Inspiration
Through our years at university and high school, we have seen countless instances of students doomscrolling or procrastinating on their homework, causing their grades to slip. Doomscrolling is one of the leading causes of productivity loss, and we sought to change it with this app. With this app, we hope students will gain more responsibility and gain productivity gradually, becoming less dependent on social media.
What it does
Our app forces users to complete their homework, be consistent with their habits, and lock in on their class lectures. The app will lock Instagram and YouTube Shorts based on these factors, which can also be overwritten by friends that the user sets.
How we built it
The original idea behind _ was to allow an app to take control of a user's canvas to determine whether they have been on top of their assignments or have been consistently completing them. We had to take a different approach to make the app more interactive and force the user to take greater responsibility to stay on track. By forcing the user to submit a screenshot of them completing an assignment, this fosters productivity through negative punishment, where the user is forced to go through a dopamine detox and lock in on their assignments.
Challenges we ran into
In many universities, high schools, and even middle schools, schools have prohibited the use of developer accounts and API access for students for obvious reasons (to avoid students from developing tools for cheating, etc.). This forced us to find another way to check the user's Canvas for assignments. After hours of research, we came up with the idea to use the Canvas calendar to retrieve the user's upcoming assignments and use Google's OCR to fact-check that the user had actually completed their assignments.
Additionally, while making parts of the app such as the Google authentication or the database, we discovered issues such as connecting the database (coded in typescript + node.js) to the app (coded in kotlin), as well as issues with encryption (SHA-256) and ways to improve security.
One of the main issues we faced was enabling access to force work on other apps. This portion of the app took a lot of research and countless testing to truly get down. Additionally, this app was created in Kotlin for Android, which was a new experience for us as neither of us has coded in Kotlin or made an app before.
Accomplishments that we're proud of
This project was the first app we made! Learning a new language like Kotlin and using more secure tools like Redis, although quite nerve-wracking at times, was quite the experience. Additionally, we created an app that we could use for our own college careers!
What we learned
As mentioned before, this was our first time coding in Kotlin, as well as creating a web app. Additionally, we took extra measures to make sure the database was as secure as possible. Using new tools such as Redis, OCR, Android accessibility settings, etc proved to be quite a task, but was quite rewarding at the end.
What's next for _
This app mainly works on Android devices, as it was coded mainly in Kotlin and TypeScript. For a future version of this project, we could extend the usability to iOS and web. To do this, we could implement a similar version of this app using Swift, as well as create a web extension for web apps.
Log in or sign up for Devpost to join the conversation.