We can work on software from the comfort of our own home. Being at a Hackathon we had to work with some sort of hardware. One of our teammates brought up that his father had recently bought an Amazon Echo for his house and his parents were looking to get in shape. So immediately I thought of a fitness application for the Amazon Echo.
What it does
Using the Amazon Echo's virtual assistant, Alexa, we programmed a skill to make and track workouts, as well as, being able to design, submit, and even download other people's workouts from our website.
For example, you tell the Alexa, "Alexa start workout" and she will immediately load your default program and tell you your first exercise. When you are finished with that exercise you say "Alexa next exercise" and she will tell you what your next exercise is.
If say you are doing _ bench press for 3 sets of 6 repetitions _, Alexa will tell you your number of sets and repetitions for that day. But if you are doing a timed exercise, such as _ planks for 30 seconds _, Alexa will tell you your exercise, time you, and tell you when you are finished.
How we built it
Challenges we ran into
We ran into many challenges. The first issue we faced was the actual creation of the Alexa application itself, as in order to test the application, we had to go through Amazon Web Services every single time, which was time consuming and tedious. After the application was created, the next problem we faced was integrating the Softheon API, as Amazon Web Services prevented us from integrating the API directly into the main application. However, our biggest challenge was dealing with the asynchronous nature of Node.js. We had to identify where (and when) the code went wrong in order to make sure that the code ran in the way we needed it to. This culminated in the use of multiple Promise functions in order to manage the flow. In the end, we were able to properly handle the Node.js flow.
Accomplishments that I'm proud of
Our team was able to separately develop aspects of the application, such as front-end, back-end, and the actual Alexa application, and then integrate them all together. In addition, each team member walked away with new skills, such as knowledge of the workings of Node.js, and a much better understanding of the "asynchronous" concept.
What I learned
What's next for Alexa Fitness
Though we ran out of time to implement other third party features, the Alexa Fitness application could be expanded to integrate other applications such as myFitnessPal, which could track and return the amount of calories burnt depending on the exercises and workouts. The Alexa Fitness application could also be expanded to provide support for smartwatches and fitness watches, thereby monitoring heart rate and other bio data, which could be displayed back to the user. Finally, the best way this application could be improved would be through machine learning, where over time, the application would progressively make workouts longer, harder, and overall better for the individual user, creating a better and more personalized workout experience.