{"id":28421739,"url":"https://github.com/zion-dev1/restaurant-reviews","last_synced_at":"2025-06-26T10:04:38.323Z","repository":{"id":255170160,"uuid":"848710235","full_name":"Zion-Dev1/restaurant-reviews","owner":"Zion-Dev1","description":"Let's you post your review about a fictional restaurant 😋🍽️","archived":false,"fork":false,"pushed_at":"2024-11-30T02:42:18.000Z","size":304,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T07:29:44.434Z","etag":null,"topics":["expressjs","fastapi","nlp","nltk","nodejs","react","restaurant-website","review-website","sentiment-classification","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zion-Dev1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-28T09:06:03.000Z","updated_at":"2024-11-30T02:42:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"eda7635f-87f2-42c6-936c-1a826d9f9b7b","html_url":"https://github.com/Zion-Dev1/restaurant-reviews","commit_stats":{"total_commits":38,"total_committers":1,"mean_commits":38.0,"dds":0.0,"last_synced_commit":"703a35e1bce2123aaa61653a4fcaa66458617ed0"},"previous_names":["protechz/restaurant-reviews","zion-dev1/restaurant-reviews"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Zion-Dev1/restaurant-reviews","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zion-Dev1%2Frestaurant-reviews","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zion-Dev1%2Frestaurant-reviews/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zion-Dev1%2Frestaurant-reviews/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zion-Dev1%2Frestaurant-reviews/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zion-Dev1","download_url":"https://codeload.github.com/Zion-Dev1/restaurant-reviews/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zion-Dev1%2Frestaurant-reviews/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262044446,"owners_count":23249749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","fastapi","nlp","nltk","nodejs","react","restaurant-website","review-website","sentiment-classification","tailwindcss","typescript"],"created_at":"2025-06-05T06:41:23.489Z","updated_at":"2025-06-26T10:04:38.310Z","avatar_url":"https://github.com/Zion-Dev1.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Restaurant Reviews Website\n\nThis is a full-stack web application that allows users to leave and view reviews for a fictional restaurant, as well as see other reviews. It uses an NLP model to determine if the review is positive or negative.\n\n![image](https://github.com/user-attachments/assets/40a228b4-b9b5-426a-a65b-d4eb8490b749)\n\n## Table of Contents\n\n- [Tech Stack](#tech-stack)\n- [Setup](#setup)\n- [Running the project](#running-the-project)\n- [Usage](#usage)\n- [API Endpoints](#api-endpoints)\n\n\u003cbr\u003e\n\n## Tech Stack\n\n- **Frontend:** \n  - React with Typescript\n  - TailwindCSS for styling\n  - Zustand for state management\n\n- **Backend:** \n  - Node.js with Express (TypeScript)\n  - fast-csv for parsing the data\n\n- **FastAPI Server** (Python) so the model can be accessed\n\n- **NLP Model:**\n  - nltk for parsing the data\n  - sklearn (MultinomialNB) for the model\n\n- **Database:** static review data in csv file\n\n- **Package Manager:** npm, pip\n\n\u003cbr\u003e\n\n## Setup\n\nTo use and try out the project for yourself, follow these steps.\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/ProTechZ/restaurant-reviews.git\n   cd restaurant-reviews\n   ```\n\n2. Setup the client folder.\n\n   ```bash\n   cd client\n   npm install\n   ```\n\n   Then create a `.env` file in this folder and paste this code:\n    \n   ```\n   REACT_APP_API_URL=http://localhost:3001\n   ```\n\n3. Setup the server folder\n   ```bash\n   cd ../server\n   npm install\n   ```\n   Then create a `.env` file in this folder and paste this:\n\n   ```\n   PORT=3001\n   CLIENT_PORT=3000\n   ```\n\n4. Setup the fastapi-server folder with a virtual environment\n\n   ```bash\n   cd ../fastapi-server\n\n   python -m venv env\n   env\\Scripts\\activate.bat\n\n   pip install -r requirements.txt\n   ```\n\n\u003cbr\u003e\n\n## Running the project\n\nCreate 3 new terminals, and make sure they are in the root directory (restaurant-reviews). Then run `npm run client` , `npm run server` and `npm run fastapi` respectively.\n\nIf you do want to modify the express server code, make sure to run `npm run tsc` as well. This ensures that the changes will be compiled and converted into regular JS.\n\n## Usage\n\nNavigate to http://localhost:3000 to view the website.\n\nClick the **Leave Review** button to leave your own review. An NLP model which try to predict if your review is positive or negative. If it is negative, it will take you to a feedback form asking what we can do better!\n\n\u003cbr\u003e\n\n## API Endpoints\n\n#### 1. Express Server (Port 3001)\n*GET* /reviews/list: Fetch all reviews.\n\n*POST* /reviews/add: Submit a new review → adds it to reviews.csv\n\n\n#### 2. FastAPI Server (Port 8000)\n*POST* /predict: Submit a review → returns if the review is postive/negative\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzion-dev1%2Frestaurant-reviews","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzion-dev1%2Frestaurant-reviews","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzion-dev1%2Frestaurant-reviews/lists"}