https://github.com/bluebigthink/shop-ecommerce
React Shop E-Commerce
https://github.com/bluebigthink/shop-ecommerce
express javascript mongodb react redux-toolkit redux-toolkit-query
Last synced: 6 months ago
JSON representation
React Shop E-Commerce
- Host: GitHub
- URL: https://github.com/bluebigthink/shop-ecommerce
- Owner: BlueBigThink
- Created: 2024-06-22T18:28:29.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-04T05:31:20.000Z (almost 2 years ago)
- Last Synced: 2025-01-26T05:14:07.960Z (over 1 year ago)
- Topics: express, javascript, mongodb, react, redux-toolkit, redux-toolkit-query
- Language: JavaScript
- Homepage:
- Size: 1.34 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Shop eCommerce Platform - MERN
> eCommerce platform built with the MERN stack & Redux.

## Features
- Full featured shopping cart
- Product reviews and ratings
- Top products carousel
- Product pagination
- Product search feature
- User profile with orders
- Admin product management
- Admin user management
- Admin Order details page
- Mark orders as delivered option
- Checkout process (shipping, payment method, etc)
- PayPal / credit card integration
- Database seeder (products & users)
## Usage
- Create a MongoDB database and obtain your `MongoDB URI` - [MongoDB Atlas](https://www.mongodb.com/cloud/atlas/register)
- Create a PayPal account and obtain your `Client ID` - [PayPal Developer](https://developer.paypal.com/)
### Env Variables
Rename the `.env.example` file to `.env` and add the following
```
NODE_ENV = development
PORT = 5000
MONGO_URI = your mongodb uri
JWT_SECRET = 'abc123'
PAYPAL_CLIENT_ID = your paypal client id
PAGINATION_LIMIT = 8
```
Change the JWT_SECRET and PAGINATION_LIMIT to what you want
### Install Dependencies (frontend & backend)
```
npm install
cd frontend
npm install
```
### Run
```
# Run frontend (:3000) & backend (:5000)
npm run dev
# Run backend only
npm run server
```
## Build & Deploy
```
# Create frontend prod build
cd frontend
npm run build
```
### Seed Database
You can use the following commands to seed the database with some sample users and products as well as destroy all data
```
# Import data
npm run data:import
# Destroy data
npm run data:destroy
```
```
Sample User Logins
admin@email.com (Admin)
123456
john@email.com (Customer)
123456
jane@email.com (Customer)
123456
```