The app starting to getting familiar with the user.
Forms for understanding how the user spends their day.
Mock lock screen to simulate how the app would send notifications and respond to real world events.
Screen to simulate events that the app would respond to.
Example of how users would be notified to take a break or get back to working
We were inspired by the fact that most, if not, all productivity tools like alarm clocks and time management applications only remind us when to do our chores. These applications don't remind us to incorporate a healthy amount of social media and entertainment to prevent worked related burnout.
What it does
The app learns about the user through a few simple questions and integrates itself into multiple social media outlets and entertainment feeds. Using those data sources, in the morning, it wakes the user up with a song or video recommendation followed by selected items from their social media feed in the lock screen. When the user spends too long working, the app recommends taking a healthy short break by displaying some entertainment or social media content. When the user remains unproductive for too long, the app notifies the user and recommends getting back on track. Periodically, the app sends motivational content from their friends on social media to work out and succeed. When it's almost time to sleep, the app recommends calming content to get ready.
How we built it
First we started with pencil and paper, jotting down features and drawing out user interface elements. Then we designed the application in Adobe XD and planned out the application storyboard. We imported the design file into Supernova and configured the prototype using layout constraints, page animations, and defined what native widgets the design layers represent. We exported the prototype into Flutter, and added fine grain details and wrote Dart code that Supernova couldn't handle itself.
From the requirements of the frontend, we figured out what API endpoints would have to be implemented in the back. We built a mock RESTful JSON API in Flask with Python.
Challenges we ran into
We ran into several challenges when trying to complete the app based on our workflow. Specifically, the setup of new software and the app's prototype in Adobe XD took almost half of our time. We struggled to finish the app with the remaining Supernova conversion, Python backend (with mock data), and Flutter integration with the previous two. Ultimately, although we learned a lot from the experience and fairly expressed the intent of our application through the prototype, we weren't able to get a fully functional MVP within the time frame.
Accomplishments that we're proud of
We're proud of tackling an issue which affects millions of lives per day. Technology, social media, and entertainment are fundamental parts of our lives. Giving people a way to regulate their exposure and prevent work-related burnout is a mission we feel accomplished of undertaking.
What we learned
We learned the procedure for making a cross platform fullstack application from start to finish using Adobe XD, Supernova, Flutter, and Flask.
What's next for BetterLife
The next step is to create a functional MVP. The MVP would properly integrate into all the web APIs for the data sources, and properly interact with the device APIs like lock screen notifications, background task dispatches, persisted user information through a database.