Inspiration
We were inspired by our past experience of never feeling like we get enough sleep, especially as college students. For some of us on the team, competition is a big motivator, so we came up with the idea to make sleep competitive and fun. By challenging your friends through this app, you'll be more motivated to fulfill your sleep goals.
What it does
This app stores logged sleep time based on the user and saves it in a database. On a different page, we retrieve that information from the database and display a leaderboard. The user with the most logged sleep hours is displayed at the top.
How we built it
We built this utilizing MongoDB as our database, Flutter as our frontend, and Python as the backend. We implemented pymongo to interact with the Mongo database. For security, we used bcrypt, a Python library, to hash passwords and ensure safety—so even in the event of a brute force attack, users' data remains secure. We connected the frontend to the database through a Python API using Flask, with routes served through a live server.
Challenges we ran into
One of the biggest challenges we faced was learning to code in Flutter. We were able to achieve our goals thanks to quick guides and online resources. Another challenge was managing multiple branches on GitHub and keeping source control organized. Additionally, managing our self-built API to handle data flow between the frontend and the database—using routes in Flask—was something difficult that we had to learn on the go.
Accomplishments that we're proud of
We are proud of the video pitch we made. We're also proud of the animated background screens, which took a lot of effort but added significant polish to the look of the app. Finally, we’re proud of creating our own API to interact with both the database and the frontend, acting as a middleman to ensure users don't have direct access to the database.
What we learned
We learned how important sleep is. We also learned the importance of keeping version control organized—especially after encountering countless merge conflicts when editing multiple files at once and trying to push to the main branch. Additionally, we learned how to integrate a database with an API through routing using the Python library Flask.
What's next for Rest Assured
Rest Assured plans to pivot to Kotlin or Swift and try to enter a competition hosted by Apple or Kotlin for a chance to showcase the skills we learned in this hackathon. We’re incredibly grateful for this experience and the knowledge we gained from it.
Built With
- android-studio
- bcrypt
- dart
- flask
- flutter
- mongodb
- pymongo
- python
Log in or sign up for Devpost to join the conversation.