Skip to content
🎲 MERN web app that (pseudo)randomly picks a highly-rated restaurant near your current location
JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
client
config
controllers
models
routes
.gitignore
README.md
package-lock.json
package.json
server.js

README.md

DineTonight

One-click for a (highly rated) random restaurant near you for the not-picky eater :)

Since my wife can never decide where she wants to go out to eat - I had to create an elegent solution we can both agree on, so...

I've built a mobile first, MERN web app that picks a highly-rated, (pseudo)random restaurant near your current location with a click of a button.

What else this app does? It lets you select a search radius ( = how much you are willing to travel) and after creating a user account (and logging in) you will be able to store the places you visited/liked and write notes on them describing the experience for your future-self.

What I used

This web app was created using React.js, Node.js & Express router, Passport.js (with a custom middleware for user auth), MongoDB & Mongoose (ODM).

Data!

The app uses the user current location telemetry (geolocation from you mobile device / browser) to request the relevant data from popular restaurant rating services (Zomato & Yelp). Next, the data is re-parsed and aggregated to fit our predetermined parameters (avg-rating, number of votes, distance, etc...) and then displayed to the user (after being shuffled and randomized).

We use Google Maps & Places to display the restaurant location and allow navigation to the restaurant (from your current location) upon clicking on the address link.

The resultant phone number is clickable - you can "click to call" on the number on mobile devices ("tel" URI scheme).

Demo

Live demo (deployed to Heroku): https://dntn.herokuapp.com/

Screenshot Dine-Tonight

iPhone-X Screenshot

Note

This app is still work-in-progress [WIP] and therefor does not have the full intended functionality (yet).

Currently in development:

  • User Auth (passport)
  • Database integration

Future development:

  • Additional data sources
  • Statistics
You can’t perform that action at this time.