We used the sample calendar provided to create basic testing scenarios for a given day, then built an algorithm that reads the data from the calendar, takes in all scheduled events and then makes recommendations for when to sleep. The user has ultimate control and can choose whether or not to add the recommended sleep window to their calendar. One day, we would like to add more complexity to our algorithm to give the user several options to choose from, including contingency plans when emergencies arise and options for exercise and nutrition to improve sleep quality.
We chose this project because we felt like it was something that relates to our own daily lives, and could be potentially for everyone! We wanted to utilize tools that were available to any average user, which is why we chose to take advantage of the Google services. By using Google Calendar, the user is easily able to integrate their own schedule into the app without any additional set-up.
By adding other user's calendars (such as Mission Control or a fellow astronaut!) the user can see and schedule around all events.
Our app is deployed publicly here: https://power-sleep.herokuapp.com/
We used Google API's to access and edit the calendar, and then developed our app using JavaScript and React. We struggled quite a bit initially with the APIs considering that our mock site was not a "verified" domain with Google, but we created a SSL / tunnel work around that allowed us to perform algorithm testing locally, while embedding the mock calendar into the deployed publicly available site for presentation. In the future, we would be able to skip the local aspect once the site was verified by Google and the scope of the APIs became fully functional.
Due to the domain not being verified, the "GET SOME SLEEP HERE" button is not fully functional on the deployed website. Please keep this in mind when exploring!
We used the sample shift calendars to influence how we designed the app. Given that the access to the other data was limited, we felt that this was the best usage of our time with this particular project and still enormously effective in getting to our goal. We also used various resources posted on the chat boards to learn about optimized sleep.