People from around the world are facing obesity problem, specially students who are already over worked and stressed due to educational workload. There are several ways to tackle this issue but the simplest solution for students, at least in the developed countries, is taking care of their nutritional needs from the food available in the dining hall.

What it does

Our application will make planning and following a proper diet plan effortless as Meal Guide will do all the thinking for them. All they must do is go to their dining hall and follow our meal suggestions. It acts as a pocket nutricional guide that will create daily customized diet plans according to the menu of their dining hall, their dietary requirement and fitness goals.

How we built it

We used MERN tech stack to develop our application as this is the most robust stack when speed is concerned. Also, as our application is designed for busy college students who will be using this on a phone, therefore we took a mobile first approach in our development. We used ionic framework for frontend components as ionic is optimized for mobile. We also used passport.js for authentication as that is open source, secure and robust. We used different microservices in the backend to accomplish different goals. One microservice was designed to only handle user registration, another was calculation caloric requirements of the users such as BMR, optimal caloric deficit and optimal caloric surplus to be used. One microservice was responsible for collecting dining hall menu everyday and last one was responsible for making daily diet plans using a number of different calculations that took many different variables in to consideration like user’s dietary requirement, fitness goals, caloric requirements, desired nutritional macro and many more.

Challenges we ran into

We faced a couple of issues while developing our application. The primary issue was the time constraint, as we had to design, implement, debug and deploy our application in a little over a week. The primary problems were to figure out how to obtain data from the college dining hall websites into our application to check what is available. Then there was the issue of simplifying our backend calculations for meal recommendations so we could implement an MVP recommender system to showcase our idea. Finally, was the issue of connecting backend with frontend in a robust manner.

Accomplishments that we're proud of

We are really proud of following accomplishments

  • We were successfully able to design, implement, debug and deploy the MVP of the application within the time spam of less than 2 weeks, while working remotely from different locations in the world.
  • We worked on a new framework and learned it during the development of this project.
  • We not only worked with total strangers but also bonded and became friends during the development of this application.
  • The application is fully responsive, having excellent UI and robust backend.
  • We were able to implement local storage for this application.

    What we learned

    We learned the following things while developing this application.

  • Working remotely on a project with the dev team living at different parts of the world.

  • How to properly use github to manage development of a real world project.

  • Pair programming.

  • Making responsive applications with Ionic framework that have mobile first design.

  • Integrating local storage in a project.

  • Using react-bootstrap to make reusable react components.

  • How to handle async tasks in backend.

  • Using Environment variables to make applications secure.

  • Using linux as a development environment.

  • Deploying frontend (Netlify) and backend (Heroku) on different servers.

  • Using Cloudflare to get a secure certificate.

What's next for MealGuide

We have the following things in the pipeline for Mealguide

  • Improving the UX for desktop users.
  • Adding offline functionality through service workers.
  • Create a new microservice that will show random fitness facts to the user.
  • Improve our recommender system
  • Implementing a Feedback Loop to Improve Recommendations

Built With

Share this project: