A full stack web application that enables users to create a custom poll populated with restaurant data from the Yelp Fusion API so that they can survey friends, family, or coworkers and conveniently choose a place to eat based on majority vote.
Note: This is a work in progress with many future updates planned including better documentation and general cleanup. I am using the project to learn, and I can make a mess along the way.
You will need MongoDB installed if you want to run this application locally. For help installing MongoDB, visit
https://docs.mongodb.com/manual/installation/
Once installed, make sure the MongoDB daemon is running with the following command line command:
$ mongod
Git clone the repository to your local machine. To connect to your local Mongo database, you will need to add an .env file in the root of your cloned repository containing the following code:
MONGO_DB="mongodb://localhost/<you decide the name here>"
Next, cd into the repository you cloned and install the necessary dependencies by running:
$ npm i
You will then be able to start the app locally by runnning:
$ npm run develop
The About page explains, with a carousel of three images, how users can use the app to enjoy dining out with friends and waste less time going back and forth about where everyone prefers to meet.
On the home page, a user can enter keywords and location and will be presented with a list of relevant restaurants.
The user, now the "event author", selects several venues and continues to add an event name and notes on the next page.
If not signed in, the event author will be prompted to sign up or sign in. They will be prompted to do so before creating an event, or they can do so at any time via the link in the navbar.
From there, the event author is presented with a URL to share with invitees so they can vote. If the event author is accessing the app via a mobile device, they will be presented with a variety of options to share the poll via SMS, email, Messenger, etc.
Invitees can access the poll via the URL shared by the event author and vote for one or more venues.
When they click "View Event", they will be presented with a bar chart with poll results. If no one has voted yet, they will be prompted to share the poll again.
- MongoDB
- Apollo GraphQL
- React
- Context API
- Web Share API
- Yelp Fusion API
- Heroku
- React Bootstrap
- Axios
- JWT
- OAuth 2.0
See the list of contributors who participated in this project along with individual commit history.
Thank you to Fullstack Bootcamp TAs including Jude Clark, Phil Cowan, and Zack Shone.
At the moment, this app is a minimum viable product. We hope to make updates to improve the UI/UX, include more sophisticated authentication error handling and oAuth, and add more features including enabling invitees to add comments for the host. We also have plans to build out a mobile version of the application using React Native.
Reach out with questions.
Email: