As someone attempting to lose weight, nutrition plays a very important role in my life. I am trying to consistently track my calories, macros, etc. Despite living in a suite-style residence, I eat many of my meals at the on-campus cafeterias. I've soon realized that nutritional data for the food available is often not posted/difficult to access. It quickly became a hassle to track nutrients by hand, even if I only eat half my meals on-campus. This is even worse for students at V1 or REV, who often eat a vast majority of meals on-campus.
To remedy this, we developed WatChewUpTo, a fitness application targeted towards Waterloo students living in residence. It is able to track and display all food items served at UW cafeterias. It's features include displaying current/past menus, tracking caloric intake, food item searching, and fitness planning.
How I built it
A website crawler was written using PHP, which stored all nutritional information provided by UW Food Services into a MySQL database. An Android application was written to interface with the database, providing an easily accessible UI. Information was exchanged using JSON queries.
Challenges I ran into
As nutritional information was presented in plain HTML, careful use of DOM was required to query all variables. The interface between the MySQL database and the Android application required significant work to debug. Android Studio required varying degrees of customization depending upon development environment, despite have the same project.
Accomplishments that I'm proud of
Successfully writing a database crawler to store all 1547 food items. Learning more about Android development, (3 out of 4 team members have practically no Android experience). Designing a great UI.
What I learned
How to use Android Studio properly, client-server communications using JSON and POST, Android UI development, proper use of MySQL, and DOM in PHP.
What's next for WatChewUpTo
Integration with external databases for nutritional information, in order to provide a full fitness tracking application. Improving accuracy/breadth of UW Food Services food items. Implementing additional features, such as meal planning, exercise tracking, fitness goals, etc. Improving the UI, implementing design styles.