I often see my classmates on their laptops, trying to figure out what dining hall they are going to after class. I figured it would be more convenient for them to get a quick recommendation based on their food preferences rather than have to spend time combing through multiple dining menus.
What it does
Feast On allows users to enter keywords that represent some of their favorite dining hall food items. They are able to update this list, adding and deleting items as they see fit. On a given day, the app makes a dining hall recommendation to the user based on how many food items featured in the dining hall align with their favorites list. The app also allows users to browse the complete online dining hall menus.
How I built it
I built the app using Xcode. I used the storyboard feature for the GUI of the app and programmatically determined the function of the UI elements. Using SwiftSoup, I was able to parse the html files of the online dining menus, and find which of the user's favorites were available at each dining hall.
Challenges I ran into
At first, I wasn't able to get the correct html files from the URLs because of a security issue. This resulted in a return value of nil when I called certain tags. The issue took me a while to resolve, and I feel like it cost me valuable time.
Accomplishments that I'm proud of
I was able to accomplish data persistence for the favorite food items by using UserDefaults. I was proud of myself for learning a tool that I can use in future projects. The visual design of the app could have been better, but I was proud of how it turned out in such a short period of time. I am also pleased with the idea that I came up with. I feel like it is something that could actually be very useful for USC students, and I am looking forward to expanding on it in the future.
What I learned
Through dealing with the html files for the dining menus, I learned some of the basics of html. I also learned how to utilize UserDefaults in my Xcode projects. Moving forward, I will apply the skills I learned this weekend to other mobile app development endeavors.
What's next for Feast On
I would like Feast On to check which dining halls are open and take that into consideration when making a recommendation. I would also like the app to recommend possible meals; the recommendation could include certain items from the menu that the user might enjoy based on their keywords. Lastly, I would like for users to be able to select their default dining hall if none of their favorite food items are being served.