See how snoozes affect your readiness for the day
We have this one friend who is really bad with morning. Like really really bad. It takes him at least an hour to get out of bed. It doesn't matter what time he sets his alarm clock, he is always late. We are trying to help him and people who struggle with similar problems. That's why we decided to create an app just for that.
What it does
You set your alarm clock for the morning and go to bed. In the morning the App will go ring ring ring. Now you have a choice: you either stop the alarm or snooze it. But with snoozes come great responsibility. Every time you snooze you will be charged a small amount. The more you snooze the more money goes. We heard money is a good motivator. But don't worry. It won't go to waste. After you hit snooze you contribute to a local charity. But I bet you say "Haha, jokes on you. I will close the alarm clock and fall back to sleep!". This is where OURA rings comes to play. With it's super sensitive sensors the Chnooze will know when you fell asleep. Guess what happens then? Yep, charity! Furthermore, OURA ring data is used to analyse your activity patterns. You can see on a pretty graph how are your snoozes and daily readiness connected. Do you feel more tired with more snoozes? Do you need to make some changes? Do change, and instantly see how that reflects on your well-being. To add a little bit more fun, Chnooze is also connected to your Muki mug. Get a cheerful message every morning you wake up without a snooze. If you do snooze, we will try to motivate you with some we-know-you-can-do-better images.
How we built it
The main app is currently on Android. For that we used Android Studio and Java. The app uses built in alarm services to set and call the alarm. Data is displayed on a radar graph using MPAndroidChart. For data, the app makes request to our server. Before that, user has to authorise OURA API in the app. The Server runs in Azure as Web App and is connected to SQL server on Azure. We use PHP and Laravel as Framework. The server is responsible for app specific user authentication and also allowing OURA API access. We used Deveo to manage our project. All parts had their separate git (android, API, sales and wiki). We used build in issue trackers to get closer to our milestones. Also Toggl was integrated into Deveo for easier time management. Server was deployed through git push straight to Azure. All post deploy scripts were handled there. Deveo wiki has all the available endpoints to the server with descriptions.
Challenges we ran into
Everyone had their hard parts. For API setting up the server was one of the hardest. Azure has it's own configuration that had to be met. Also had some problems with connecting to the OURA API. Downgrading GuzzleHttp (used for get and post requests) helped. Android app also had some problems with OURA connection when the user was not previously authenticated in OURA. And there are always some little things that take time and then you go 'Oh.. silly me'.
Accomplishments that we're proud of
We are all really happy to be part of something big. Being here is already an accomplishment. Being able to work as a team is what we aimed for. And we think we did it good. Maybe we didn't have time to implement all the things we wanted, but we had a chance to do something awesome with cool OURA rings and innovative coffee mugs. We can't do that every day.
What we learned
Nothing goes as planned. Ever. Some team members learned a lot more about Android. Some about sales. Some learned that server side configuration should be left to system administrators.
What's next for Chnooze
We still need to tweak some features to make a best app to cure our friend's problems. The minimum we want is the app to be ready enough for him. But we aim for a full app and working with OURA and Muki to deliver an lifestyle app that is helpful and fun. Hope to see you all using it some day.