Please check out the link to our website for a better understanding of how the website works!

Submission Track

Connectivity As members of a technologically driven society, we often assume optimization is a default in many systems when in reality, it is easy to spot flaws and cracks in pretty much anything. We believe that technology can be, then, used as glue and lubrication to fix these flaws to perhaps bring more efficiency and effectiveness to our daily lives.

These benefits should serve not only a handful of people but everyone in the system. In other words, technology should be used to benefit not only the majority but the entirety when possible. In this dining hall problem, we believe it is indeed possible. By providing a route for gaining more dietary knowledge, we are making information more accessible to the wider public. In turn, this accessibility allows for better decisions, which provides much more accurate and encompassing feedback. In other words, we are taking advantage of technology’s ability to convey information to smoothen out the relationships between groups within the same system to, in the end, provide an elevated experience for all parties.

Inspiration

We found that certain dining halls had overwhelmingly high numbers at very specific times. As students always running out of time, we often chose to squeeze our way through the already crowded dining halls or just skip the meal completely and eat some candy and chips from the vending machines instead. This, of course, sheds light on the great concern of health, especially during these pandemic times where being in close distance with others in a tight place where food is located serves as a great health risk. Now, one may say the problem may be in the mere lack of space. However, we suspect there to be more to this problem because as our experience and numbers showed, the dining halls could in fact host more students. It was just that students moved to the same place at the same time. Although this may be a consequence of many factors, we suspected the greatest factor lies in the lack of communication between the dining staff and students. Students merely do not know when each of the dining halls is free. Nor are they given a comprehensive list of what to expect in the halls.

What it does

Screen Shot 2021-10-10 at 6 24 33 PM

We present EzyDine, an accessible platform that facilitates communication between the dining staff and students. We implemented a minimalistic and simple design that emphasizes the current capacity of the halls so that students can easily compare the dining halls at a glance. Also, we added graphs created using machine learning that predicts the fullness of the halls in the future, which may help students to plan ahead. Finally, we wanted this platform to encourage better health choices. By providing a comprehensive list of the ingredients and nutritional values of each meal, each student can decide which meals they would prefer prior to arriving at the dining hall. We also developed a meal recommender system that outputs meal recommendations based on meal inputs.

We hope that these functions will lead to better food security and respect for dietary needs. This information works both ways as the students’ reactions to the meals will provide the dining staff with valuable feedback and encourage a more fitted dining menu.

How we built it

Our beautiful landing page was created using NextJS and Tailwind CSS, which displays our mission and the current dining hall capacity information.

To get the numbers for analyzing and predicting, we reverse-engineered the internal APIs of link and stored the real-time crowd movement in our own back-end, which was built using Express.js and PostgreSQL. This also allowed us to export APIs for students to see the past real-time crowd movement and the predicted future values. We used GitHub Actions to automate the process and logged the number of people present inside the dining hall every 2 minutes. These points were analyzed to show the past and future predictions using an LSTM model for dining hall occupancy. We also logged information about the menu that was used to create our meal recommendation system. We also logged information about the menu items which was used to create our meal recommendation system using Tensorflow Keras. Unfortunately, we didn’t have the time to integrate the recommender into the web app, but that’s definitely something that can be easily done in the future.

stack

Challenges we ran into

  • Getting raw data that we could mangle with was indeed a challenge. We began with the idea of webscraping directly from the Columbia Dining website but we soon realized this was very inefficient and will probably just be a direct restatement of what the system had. In the end, we found internal APIs which we could directly use. We also wanted to provide a better experience for everyone, which led us to look at using machine learning models.
  • Also, given that half of the team was halfway around the globe, it was very hard to coordinate meetings or even conversations, not to mention, having to integrate frontend with backend. However, every member was respectful and understanding to the rest of the team, which led to a successful and harmonious hackathon. Everyone contributed with what they could do best.
  • Due to time constraints and unexpected last minute errors/crashes we could not produce a proper demo video, so make sure to check out our links.

Accomplishments that we're proud of

Initially, we were planning to do some heavy-duty scraping to get information from the official dining hall website, but through some inspect element and a little creative “hacking” (the links were public, don’t worry), we found a way to obtain some of the data without the scraping.

Overall, finishing a rather complex project (at least to the point of submission) in just 2 days is certainly a feat we are proud of. The fact that we came up with an idea and formulated it in such a short time without even seeing half of the team in person proudly shows our abilities to work as a team.

What we learned

NextJS, TailwindCSS, LSTM Modeling, ExpressJS with NodeJS, PostgreSQL, GitHub Actions, Tensorflow, Keras, Pandas

What's next for Ezydine

  • The current Columbia dining hall website pulls all the menus from a term from the same link and filters them out depending on the time of the month/week/day. In addition, it matches the menus with meals from a huge json file that consists of every type of food ever served at Columbia dining halls. This is why the website takes too long to load and display information. In the future, we would use the backend to do the filtering and cache the menus based on the day. This would be viable since it does not require any modifications on the school administration side.
  • We’ve heard about other schools having this long dining-hall line problem. Similar solutions could be implemented in other schools.

REFERENCES: For LSTM Model - https://arxiv.org/pdf/2003.05672.pdf https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/

For Recommendation System - https://www.cs.utexas.edu/~ml/papers/libra-sigir-wkshp-99.pdf

Built With

Share this project:

Updates