{"id":21834429,"url":"https://github.com/hughmorris01/proshop","last_synced_at":"2026-04-12T06:33:20.481Z","repository":{"id":175444180,"uuid":"652583370","full_name":"HughMorris01/ProShop","owner":"HughMorris01","description":"A full-stack eCommerce platform built with MongoDB, Express, React, and Node.js (MERN). Features include PayPal payment integration, product ratings, user authentication, and a comprehensive admin dashboard.","archived":false,"fork":false,"pushed_at":"2026-02-13T21:41:57.000Z","size":3705,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-14T03:32:48.135Z","etag":null,"topics":["express","full-stack","mongodb","mongoose","node","paypal-api","react","react-redux","react-router","react-router-dom","state-management"],"latest_commit_sha":null,"homepage":"https://pro-shop-ecru.vercel.app/","language":"JavaScript","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/HughMorris01.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}},"created_at":"2023-06-12T11:20:19.000Z","updated_at":"2026-02-13T21:42:01.000Z","dependencies_parsed_at":"2023-11-13T01:26:05.232Z","dependency_job_id":null,"html_url":"https://github.com/HughMorris01/ProShop","commit_stats":null,"previous_names":["hughmorris01/proshop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HughMorris01/ProShop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HughMorris01%2FProShop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HughMorris01%2FProShop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HughMorris01%2FProShop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HughMorris01%2FProShop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HughMorris01","download_url":"https://codeload.github.com/HughMorris01/ProShop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HughMorris01%2FProShop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31706764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["express","full-stack","mongodb","mongoose","node","paypal-api","react","react-redux","react-router","react-router-dom","state-management"],"created_at":"2024-11-27T20:11:12.849Z","updated_at":"2026-04-12T06:33:20.467Z","avatar_url":"https://github.com/HughMorris01.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![alt text](./frontend/public/image.png)\n\n# ProShop eCommerce Platform\n\nA full-stack eCommerce platform built with the MERN stack (MongoDB, Express, React, Node.js). This project features a complete shopping cart, user reviews, admin product management, PayPal integration, and pagination.\n\n## 🚀 Features\n\n* **Full-featured Shopping Cart:** Add items, adjust quantities, and calculate totals.\n* **Product Reviews:** Registered users can rate and review products.\n* **Admin Dashboard:** Manage products, users, and orders.\n* **PayPal Integration:** Fully functional checkout using PayPal Sandbox.\n* **Search \u0026 Pagination:** Efficiently browse large catalogs.\n* **Responsive Design:** Works on mobile, tablet, and desktop (React-Bootstrap).\n\n## 🛠 Tech Stack\n\n* **Frontend:** React, Redux Toolkit, React-Bootstrap, React-Router-Dom\n* **Backend:** Node.js, Express.js\n* **Database:** MongoDB (Mongoose)\n* **State Management:** Redux Toolkit (RTK Query)\n\n## 🏁 Getting Started\n\nFollow these steps to get a local copy up and running.\n\n### 1. Prerequisites\n\nEnsure you have the following installed:\n* Node.js (v16+)\n* MongoDB (Local or Atlas URL)\n\n### 2. Installation\n\nClone the repository and install dependencies for **both** the backend and frontend.\n\n```bash\n# Clone the repo\ngit clone (https://github.com/hughmorris01/proshop.git)\ncd proshop\n\n# Install Backend dependencies (Root)\nnpm install\n\n# Install Frontend dependencies\ncd frontend\nnpm install\ncd ..\n```\n\n### 3. Environment Variables\n\n**Step A: Backend Configuration**\nCreate a `.env` file in the **root** directory. You can use `example.env` as a reference.\n\n```env\nNODE_ENV=development\nPORT=5000\nMONGO_URI=your_mongodb_connection_string\nJWT_SECRET=your_secret_key_123\nPAYPAL_CLIENT_ID=your_paypal_sandbox_id\nPAGINATION_LIMIT=8\n```\n\n**Step B: Frontend Configuration (Required for Node v18+)**\nCreate a separate `.env` file inside the **`frontend`** folder. This fixes Webpack security errors on newer Node versions.\n\n```env\n# Location: /frontend/.env\nDANGEROUSLY_DISABLE_HOST_CHECK=true\n```\n\n\u003e **Note:** If you don't have a PayPal ID, the checkout screen may throw errors. You can get a Sandbox ID from developer.paypal.com.\n\n### 4. Database Seeding (Crucial Step)\n\nThe app will load with an empty screen if the database is empty. You must run the seeder script to populate it with sample data (Users and Products).\n\n```bash\n# Run this from the root folder\nnpm run data:import\n```\n\nTo clear the database completely, run `npm run data:destroy`.\n\n### 5. Run the Application\n\nThis project uses `concurrently` to run the React frontend (Port 3000) and Node backend (Port 5000) with a single command.\n\n```bash\nnpm run dev\n```\n\nOpen http://localhost:3000 to view it in the browser.\n\n## 🐛 Troubleshooting\n\n**\"Invalid options object / allowedHosts error\"**\nIf the app crashes on launch with an `allowedHosts` error, ensure you created the `.env` file inside the `frontend` folder as described in Step 3B.\n\n**\"Products list is empty / Spinning Loader\"**\nThis usually means you skipped Step 4. Stop the server and run `npm run data:import`.\n\n**\"PayPal Script Error\"**\nEnsure your root `.env` file has a valid `PAYPAL_CLIENT_ID`. If you are testing, use a Sandbox client ID, not a generic string.\n\n**\"Product already reviewed\"**\nThe system prevents users from reviewing the same product twice. Create a new user account to test the review feature again.\n\n## 📝 License\n\nThis project is open source and available under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhughmorris01%2Fproshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhughmorris01%2Fproshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhughmorris01%2Fproshop/lists"}