DEV Community

Nabeel Sulieman
Nabeel Sulieman

Posted on

DigitalOcean Hackathon Submission: Meal Match

What I built

An App to help families and friends decide what to eat.

Category Submission:

Random Roulette

App Link

https://mealmatch.mydemo.dev/

Screenshots

Main Page Screenshot

Voting Screenshot

Results Screenshot

Description

Day after day, families, couples, and any group of people wanting to eat together face the age-old question:

What's for dinner tonight?

This app can help. Build your own list of options, or search and copy results from Yelp. Share a link and see what people like! The vote can be set to automatically end when enough matches are found.

Link to Source Code

https://github.com/mealmatch/app

Permissive License

MIT

Background

My brother-in-law came up with this idea: Wouldn't it be great if there was something like a dating app, but for deciding what to eat?

How I built it

I started building this app in .net core because that is what I'm most comfortable with. The front page needed a bit of client-side magic, so I threw in some VueJS to handle that. The VueJS was simple enough that I could add it without any addition build (webpack) step.

I also wanted to try to build an app that respects privacy and doesn't even ask users for their emails. Vote sessions are assigned a random GUID. The user can bookmark the URL if they want to return to the page.

For data storage I used Azure Table Storage. It's a basic NoSQL database that's easy to use.

For getting Yelp results, I created a developer account at Yelp and used their REST API. I tried my best to follow their usage guidelines and make clear which results came from their data.

I tested the app locally until I got everything working. From there I created a Docker file to build it, put it on GitHub and created the Digital Ocean App instance.

I was pleasantly surprised at how seamless Digital Ocean App was. The platform automatically built my docker image and deployed it. Adding the needed environment variables and a custom domain was intuitive and took very little effort.

Additional Resources/Info

https://dotnet.microsoft.com/
https://vuejs.org/
https://www.yelp.com/developers/documentation/v3/business_search
https://azure.microsoft.com/en-us/services/storage/tables

Top comments (0)