Student wellness has been greatly impacted with COVID-19. It has become more difficult to be productive and find time in our day to do basic things like drink water or workout. As students ourselves, we find that the most distracting thing is our phone. The time that would usually be used to walk across campus or to get food is now wasted browsing through social media, watching videos, and playing mobile games. Our app aims to solve these problems by banning distracting apps and rewarding students with screen time if they have been productive or completed wellness activities like drinking water and being active.
What it does
Our app, FYP - For Your Productivity, is an app designed to promote student wellness and productivity. Below are the features:
Ban Apps Our app allows users to ban certain apps that they are often distracted by.
Rewards Productivity and Well-Being The app will reward the user if they are productive or do things that benefit their well-being like drinking water and being active. With positive actions, the user gains minutes to expend when they want to relax.
Relaxation Periods To relax, the user simply goes into the “Cash Out” screen and clicks the start button, which will unban all of their apps and start a countdown timer that subtracts from the total number of minutes they have gained thus far.
Notifications The user will receive notifications when the countdown timer reaches 5 minutes and 1 minute to remind them of their time left. A notification will also be sent when there is no more time left. This notification informs the user that the apps will now be blocked and it is time to be productive!
Long-Term Benefits Our app assists our users to cultivate proper habits. By encouraging productivity, our app helps our users break bad habits and reinforce good habits.
Persistence In our app, the timer and the apps selected to ban are persisted. Therefore, if the user closes the app during the countdown, the timer will still keep going. And if the user starts multiple timers, it will always ban the same apps
How we built it
With swole muscles A screwdriver And a will to go against TikTok
Android We used built-in Android libraries to build up the backend of our code (ie banning/unbanning apps, starting/pausing timer, transitioning between activities, etc). The XML layout files for each of our screens are created by designated members of the team who are experienced in UI/UX design.
Art The app icon was created in Canva by one of our team members.
Github We collaborated through Github using the branching system and merged code using pull requests. We each had our own branch with the label [name]-[feature] so it is easily recognizable. We also used descriptive commit messages so we could clearly see what code we are merging.
Delegating Tasks We each worked in different components of the app to reduce confusion and merge conflicts. This worked really well because we rarely had conflicts and each person did very well in their own field.
Challenges we ran into
Banning/Unbanning apps One of the key components of our app involved being able to block apps on the phone. We did not know how to do this and there was not a lot of documentation on it. Google’s documentation on the methods we needed was not descriptive enough and we were confused about what each parameter does and how to get them. For example, in order to “ban” (suspend) an app, we needed to create a Device Policy Manager which needs the name of the admin; however, the way to get the admin name was not clear.
Admin Access Another challenge was giving our app-admin permissions, which are needed to suspend apps. We had to take the user to a built-in admin privilege request screen and the way to do that was difficult to figure out.
Updating Cashed-In Minutes Additionally, we had issues properly updating the user’s screen time minutes based on productivity, activity, and water intake. We had to use a facilitator with an Intent in order to properly accrue minutes and that they were reflected in the total amount of screen time available to the user.
Creating Notifications Finally, we had issues creating a notification that would send the notification at the right time. We noticed that a notification would be sent five seconds after the correct time. To fix this, we created an if statement that set the alarm to send it five seconds before the correct time. This fixed the problem and pushed a notification at the appropriate time.
Accomplishments that we're proud of
- Changing the navbar color woohoo!
- Staring at the water for 3 hours woohoo!
- Users are able to ban apps woohoo!
- Users are able to select which apps to ban woohoo!
- Timer runs even when the app is exited or restarted woohoo!
- Timer value persists no matter what woohoo!
- Users can add minutes to the timer based on their productivity woohoo!
- Notifications, which is one of the coolest things about mobile apps woohoo!
- Mostly everything about this project went super smoothly woohoo!
What we learned
We learned how to grant admin permission to the app, create notifications, make good user interface designs, run background processes on the app, and persist data.
What's next for FYP - For Your Productivity
- Allowing users to customize their minutes input in CashIn
- Timer will automatically update as the users cash in their minutes.
- Reminders to drink water, be active, be productive