Inspiration
One of the most effective ways to eat healthy is to track the food that you eat. However, existing applications make it cumbersome to do so, discouraging users from sticking to their diet plans. We set out to simplify the process of tracking food and encourage more people to eat healthy.
What it does
Using the mobile application, users say what they ate. Example: "1 apple." Based on what they said, we dynamically retrieve the nutrition information and update their daily food intake. They can view their results and see a comparison between their daily intake and their recommended intake, or their "Goals."
How I built it
For the Android app, we record an audio file and send it to the web server. Then we convert the audio file to upload it into the Google Cloud Storage. Using the Google Speech API, we get the text from the audio file and send that as a query in the Wolfram Alpha API to get the nutrition info. Finally, we update the database with the results.
Challenges I ran into
Working with audio files was a considerable challenge. There are many different kinds of formats, but only certain ones were supported by Android MediaRecorder. Then Google Speech API was very specific and only accepted .flac files. Converting these different media files while preserving the content of the data was a significant challenge.
Accomplishments that I'm proud of
This hackathon had many firsts: developing an Android app, multithreading in Java, handling audio files, writing and executing shell scripts, using Google Cloud Storage, using Google Speech API, etc. The fact that we managed to learn a lot of new skills and integrate them into our project is something that we're very proud of.
What I learned
Of the many technical skills we've acquired over this weekend, our biggest takeaway from this hack is to challenge ourselves to think of elegant and simple solutions. What is the easiest way for the user to use our app while still implementing the necessary functionality? How can we simplify the process of transmitting files over the Internet?
What's next for NutriLog
We hope to enhance NutriLog accuracy by generating suggestions for the user based on their eating habits, refining the search results when we retrieve the nutrition info, allowing the user to view more detailed information such as their long-term progress, and reducing the server load and minimizing the number of HTTP requests.

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