About the Project Inspiration:
The idea for SleepCycles was inspired by a fascinating scientific discovery about sleep cycles. Research has shown that the human body goes through sleep cycles that last approximately 90 minutes. Waking up in the middle of one of these cycles can leave you feeling groggy and disoriented. However, waking up at the end of a sleep cycle allows you to feel more rested, refreshed, and energized. I wanted to create an app that helps people optimize their sleep by aligning their wake-up time with the end of these natural sleep cycles, promoting better rest and a more productive day ahead.
What I Learned:
Throughout this project, I deepened my understanding of the science behind sleep cycles and how they affect our physical and mental well-being. I also learned about sleep tracking technologies and how to integrate them effectively into a mobile application. The development of the app also taught me valuable lessons in user interaction design, especially how to confirm sleep onset with subtle, non-intrusive methods like gentle phone vibrations.
How I Built the Project:
The app was built with a focus on simplicity and effectiveness. I used Flutter to develop the mobile application, as it allows for a smooth cross-platform experience and is well-suited for handling real-time tasks such as tracking sleep. The key features of the app include:
Cycle Calculation: The app calculates the optimal sleep and wake-up times based on user-defined cycles. Sleep Detection: It uses gentle phone vibrations to detect when the user falls asleep, ensuring the cycle count begins only after the user is actually asleep. Wake-Up Alert: The app notifies the user when it’s time to wake up, synchronized with the completion of a sleep cycle. Statistics Dashboard: The app provides detailed statistics on the user’s sleep patterns, showing the number of cycles completed, total sleep time, and average sleep quality. Challenges Faced:
One of the main challenges was creating an accurate sleep detection mechanism. Detecting sleep onset is a tricky task, as it requires the phone to be sensitive enough to sense a person’s physical state but not intrusive. I experimented with different methods, including detecting minimal motion or using audio cues like the sound of breathing or slight movements.
Another challenge was ensuring the app’s notifications were timed accurately with the completion of the sleep cycle, even if the user’s sleep varied slightly in duration. Ensuring that the user’s phone remains awake and responsive during sleep mode, without affecting battery life too much, was another area I spent a significant amount of time refining.
Despite these challenges, the project was an excellent learning experience, and I’m excited about the potential of SleepCycles to help users optimize their sleep and wake up feeling more energized.
Built With
- figma
- flutter
- gyroscope
- kotlin
- machine-learning
- soundclassification
- tensorflow

Log in or sign up for Devpost to join the conversation.