This project is a clone of the popular business directory service and crowd-sourced review forum, Yelp. It is built using the PERN stack which includes PostgreSQL, Express, React, and Node.js.
Explore the docs »
View Demo
- CRUD Operations: Implement full CRUD operations for managing restaurant data and reviews.
- Search Functionality: Search for restaurants based on various criteria.
- Rating System: Users can rate restaurants using a star rating system, and view average ratings.
- Review System: Users can write reviews for restaurants and view reviews from other users.
- Responsive Design: The web application is designed to be responsive for a variety of devices and screen sizes.
- RESTful API: Utilize RESTful API conventions for server routing to handle client requests and manage database operations.
- Data Visualization: Visual representation of restaurant ratings and other relevant data.
- Error Handling: Implement error handling to provide feedback on failed operations like incorrect data entry.
- Backend: Express, Node.js
- Database: PostgreSQL
- Frontend: React
- State Management: React Context API
- Routing: React Router
Here's a walkthrough of implemented required features:
GIF created with GIPHY Capture for macOS
-
Clone the repository:
git clone https://github.com/josegonz115/restaurant-rater.git cd pern-yelp-clone
-
Install dependencies:
Make sure to cd to both directories client/ and server/ and enter
npm install
-
Setup the database:
- Install PostgreSQL and create a database
- Create a database for the project.
- Setup the necessary tables using the provided schema file in the
database
folder.
-
Configure environment variables:
- In
server/
create an.env
file with your PostgreSQL connection information.
PORT=0000 PGUSER=name PGHOST=postgres PGPASSWORD=password PGDATABASE=database_name PGPORT=5432
- In
-
Start the server:
In
server/
and thenclient\
npm start
-
Visit the application:
- Open your web browser and visit
http://localhost:3000
.
- Open your web browser and visit