Inspiration
In my last term of university, my sleep schedule was looking like the worst it ever was. My internal clock was so messed up that I was routinely sleeping well into the morning hours, past 4 am. My Christmas break was my attempt to try and revert my schedule once and for all... but it was hard. I spent several sleepless nights scrolling through my phone or just staring at the ceiling, being completely unable to feel tired or get a wink of sleep until my family was beginning to rise for the early morning.
To sum it up, I was inspired by myself and my own incompetence.
As I signed up alone for my very first hackathon to start off 2024, I was excited by the hackathon prompt - a resolution track. As I watched the "new year new me" group come and go, I wanted to create something that would stick - something that takes advantage of human emotions to urge you towards your resolution goals.
That's why I created Snooziroo.
What it does
Snooziroo is an app designed to keep you on track of your sleep schedule. By adopting your very own Snoozie, you will be obligated to wake up and sleep on time.
It doesn't matter how long you sleep or when you sleep! As long as you set up the times you intend on sleeping and waking up in the comprehensive setup screen, Snoozies with different colours, traits, and personalities will be hand-picked (with a virtual hand!) for your tastes.
Red Snoozies need the least amount of sleep. They have warm, burning personalities that allow them to smolder for long periods of time with little rest. Orange Snoozies are just yappers. Although slightly aggressive, they can be extremely sweet and outgoing as well as adapting quickly to different environments. Yellow Snoozies are Snoozies of balance. They love following the flow of nature and they are curious and open to experiencing new things. Green Snoozies are harmonious creatures that are strongly sociable and confident. They love engaging in entertaining activities and will wake up at the drop of a pen. Blue Snoozies are thinkers and dreamers. They are strongly creative and often get lost in their own existential crises of Snoozie life. Purple Snoozies are the most laid-back of the bunch. They enjoy long periods of rest, with a calm, soothing, and peaceful allure.
Snoozies require a very specific care routine.
- Snoozies have a very specific feeding time! They require sustenance as soon as your alarm rings. Make sure to avoid that snooze button, open the app and feed your pet immediately!
- Snoozies hate to be disturbed during sleeping hours. If you are browsing through your phone after the allotted bedtime, your Snoozie will hear this and be very disturbed and unhappy! Make sure to keep your phone off (and hopefully be asleep) until it is time to wake up.
As you continue to tend to your Snoozie, it will grow healthier, happier, and bigger. Be careful though - any mistakes will cost your Snoozie's health and lead it to illness and potentially death!
How we built it
This app is an android app developed in Android Studio using Kotlin. By using the provided emulator, I was able to extensively test the app and better understand how the code worked together. One of the key features was the generation of a personal Snoozie. The program used the data of the user's preferred sleep schedule and calculated E(X) and Var(X) of number of hours slept and beginning of sleep time. These values were then transformed into RGB values that would vary depending on the inputted values. That's how we got Snoozies of so many personalities!
Challenges we ran into
This project introduced a lot of firsts for me. This was my first time for nearly everything including Kotlin and Android studio. I had to rely on extensive research as well as my previous knowledge of Java, OOP, and other programming concepts in order to figure out the project. Starting something for the first time is slow and challenging. My first couple hours on the project was dedicated to just figuring out the Android Studio workspace and correctly modifying my Activity screens using the Design View provided by Android Studio. Moreover, working alone was a daunting task. Given the scale of the projects and the features I had planned, There was a lot to get done and so little time to do so. I needed to get the core fundamentals of the project before working on additional features.
Accomplishments that we're proud of
I'm very proud of the progress I made on Snooziroo in general. I created a comprehensive user setup that encouraged an interactive and customizable user experience. I was also able to deal with the difficulties involving time addition, comparison, and manipulation. On the other hand, I was able to organize my code in a manner that promoted readability, scalability, and reusability of my code. By brainstorming for more efficient solutions and algorithms, I avoided unnecessary repetition and expanded upon numerous concepts.
What we learned
Kotlin is much more practical than Java! As someone who started their programming using Java, I was astounded by how Kotlin performed as a high-level programming language and an improvement to Java. The syntax was easy to pick up and comprehend, and I definitely will be using more of this language in the future. As my first functioning app, This was also a great app development learning experience. By working and tampering with the xml files, I was able to connect my prior experience with CSS and create a customized, interactive interface.
What's next for Snooziroo
- Make the Snoozies more alive! I didn't have time to really experiment with the creatures' designs, animations, and movement, and a next step is definitely working on the Snoozies so that they can be more of a pet than a rock, invoke a greater sense of love, duty, and fulfillment for the user. I especially want to work on visually portraying the Snoozie's level of health, accentuating when they are healthy and when they are sick so that the user can keep track of their progress.
- Incorporation of Ringtone. Since one of the key functions of the app was to wake the user up in order to take care of their Snoozie and start the day, I wanted to incorporate some Snoozie noises to really establish the sense of presence that the pet has.
- More customizability! Adding more settings that the user can tinker with, achievements, cosmetics, more ways to care for the Snoozie - anything to gamify the user experience and encourage them to abide by their sleep schedules.
Overall, creating Snooziroo and its Snoozies was a rewarding experience with lots of learning and I hope to continue its development in the future! Snooze on!
Built With
- android-studio
- github
- java
- kotlin
- oop
- xml
Log in or sign up for Devpost to join the conversation.