A basic Yelp Clone App built with the PERN stack technologies. The application allows users to add restaurants, their location and price range initially. The user can then add reviews and ratings to each restaurant, as well as update and delete individual restaurants. The app takes into account the ratings provided by users and returns an average ratings score for each one aswell as a total of the number of reviews submitted.
-
Add different restaurants
-
Add multiple reviews and ratings for restaurants
-
Get an average star rating, plus number of reviews available per restaurant
-
Update restaurant information
-
Delete listed restaurants that you no longer want/need
The backend is deployed on ElephantSQL however if you would like to run locally you will need to follow the steps below.
- Git clone the backend repository by pasting the following into your terminal:
git clone https://github.com/MiguelLamas/yelp-clone-pern-stack
- Install all required dependencies by running:
npm i
- Copy your database (e.g. ElephantSQL) URL into the .env file, following the format:
DATABASE_URL = <Database URL goes here>
- Create all tables in your database by running the following scripts in the terminal:
npm run createRestaurantsTable
npm run createReviewsTable
-
To populate the tables you can achieve this by interacting with the front-end, you can either run this locally or host on a hosting platform - for this project I used Render but you are free to choose your own. For assistance deploying on Render please click here.
-
Finally, to run the server locally use the following script within your terminal:
npm run start
To run the front-end locally follow the steps below:
- Git clone the front-end repository by pasting the following into your terminal:
git clone https://github.com/MiguelLamas/yelp-clone-pern-stack
- Install all necessary dependencies by running the following command in the terminal:
npm i
- Start the app using:
npm run start
Frontend
- React.js, JavaScript, HTML, Bootstrap 5
Backend
- Node.js, Express, PostgreSQL, CORS
- Render (for API Web Service & Frontend Static Site) & ElephantSQL (for PostgreSQL Database)
- Miguel Lamas - GitHub
Copyright (c) 2023 Miguel Lamas - https://github.com/MiguelLamas