Inspiration
Though we don't personally have meal plans through the school, it is pretty common knowledge among students that a lot of people don't really see their dining dollars as "real money". This can lead to carelessness in budgeting and pacing oneself throughout the semester, and can sometimes even lead to students running out of money before the semester is over. Our application works to solve this problem by giving specific breakdowns of how much a student should spend per week, and offers options for affordable dining around campus to help them meet their financial goals.
What it does
In the current version, the information of each demo student is presented clearly, with breakdowns of how much money they have left to spend on food during the day, week, and the rest of the semester. What they have already spent in the week is displayed in a donut chart, so they can figure out where they have been spending most of their money and make determinations as to what they should plan to do for meals for the rest of the week to ensure they stay within their budget. To help them with this, a few options for places they may enjoy eating that gets a discount when using their meal plan are made available for them to look through.
How we built it
At the beginning, we did some brainstorming on whiteboards, once we sorta had an idea of what we wanted the project to be about, we made a few front end sketches and started planning data structures and psuedo coding functions. This project was a lot of trial and error. This was somewhat unexplored territory for both of us in different ways. We had our main three files (backend.js, style.css, and index.html), then we had an entire folder of test files used to try to develop smaller portions of code for things such as the donut and the panels at the bottom of the page offering restaurant options, things we (mostly I, who had never done web development before) were not familiar with doing and were a little scared that if we really messed something up we might destroy the project. Having test files really increased the confidence we had in just trying all sorts of things we wouldn't put into the real code until we were sure they worked, and I believe our project became more than we initially thought it could be because of them.
Challenges we ran into
We ran into quite a few bumpy spots on this project. We only had 2 team members, one of which had never coded in html, js, or css before this competition, so troubleshooting and debugging was often a bit difficult. It was also a challenge to set up the donut graph, as it was something neither of us had ever worked with before and we were using a very outdated version of chart.js, which was not compatible with some of the plugins we tried to use. We also got stuck for about 45 minutes due to an accidental renaming of a variable that crashed our entire project, which caused a bit of panic, as we had not backed up any other versions and weren't sure where the problem was coming from. Another challenge that the donut brought up was that we had trouble making totals for places instead of having 3 separate purchases from starbucks for example. I think chart.js did not like being passed arrays of objects and we couldn't figure out a way to have the name and aggregated totals be linked.
Accomplishments that we're proud of
I would say the fact that we actually stayed up all 24 hours and really got into making this project was pretty huge. This was our first real Hackathon, as we had attended in the fall but had other commitments early the week following so we mostly just attended workshops. Even this time, we didn't really go in expecting to do much more than a very simple program just to get a feel for how these sorts of events work, but we found ourselves really immersed in doing as much as we could with our idea in the time we had. As for actual elements of the project we are most proud of, the dynamic setup of the system to be able to adapt in real time was really satisfying. We also are very proud of the donut, even though it is still a bit buggy, as that seemed like the most impossible part of this project at some points, but felt crucial to making the data easy to visualize.
What we learned
I think the main thing I will be taking away from this Hackathon is how much fun web development actually is, and knowledge how much can actually be done by one person who knows some things and one person who knows basically nothing in the span of 24 hours. I was kind of surprised to find out that by the end I had a really good grasp of what was going on with our code, and that I had played a pretty big part in building two of the main elements (the donut and the restaurant suggestion widget). I would feel pretty comfortable entering a Hackathon on my own and being able to actually contribute a decent amount to both front end and back end development on a team of people I didn't know that well. Overall, this was a really incredible learning experience for both me and my teammate. The experience in team coding flows was also very fun. We had mini sprints almost where we had one goal and tried to accomplish that completely before moving on.
What's next for LionLunch
Due to the limitations of knowledge and team members, we had a lot of ideas for LionLunch that didn't make it into the final submission. Ideally, if this project were actually implemented by the school for students, we would be able to access the dining dollars/LionCash API so that the information could be updated in real time as the student spends their money for the week. We also would have really liked to get the data labels plug in for Chart.js working, as doing so would allow us to display the amount of money spent at each place in the slices of the donut chart, as well as total spent during the week in the middle of it. The donut is also still pretty buggy when switching from one sample data set to another, but that wouldn't be as much of a problem in the real application, as only one student would be using it per instance. We also had worked for about 3 hours on a more broad statistical view, with curated facts about how the student was spending their money and what they should do to stay on track not only for this semester, but also next semester as far as spending dining dollars and choosing a meal plan level goes. This did not end up making it into the final cut however, as it wasn't yet at a state of development that we were completely happy with. Finally, we would have liked to add a way for students to plan out their next week in advance, offering them different ways they could make their money go farther (for example, eating 3 times at a campus buffet instead of 1 time at a fast food restaurant that doesn't offer a discount). We believe our platform is very versatile and could potentially be used by people other than students to make more informed financial decisions about where to get their meals.
Log in or sign up for Devpost to join the conversation.