- 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)
- Create a MongoDB database and obtain your
MongoDB URI- MongoDB Atlas - Create a PayPal account and obtain your
Client ID- PayPal Developer
Rename the .env.example file to .env and add the following
NODE_ENV=sample
PORT=sample
MONGO_URI=sample
JWT_SECRET=sample
PAGINATION_LIMIT=sample
AWS_S3_ACCESS_KEY_ID=sample
AWS_S3_SECRET_ACCESS_KEY=sample
AWS_S3_BUCKET_NAME=sample
AWS_S3_REGION=sample
Change the JWT_SECRET and PAGINATION_LIMIT to what you want
pnpm install
cd frontend
pnpm install
# Run frontend (:3000) & backend (:5000)
pnpm run dev
# Run backend only
pnpm run server
# Create frontend prod build
cd frontend
pnpm run build:frontend
You can use the following commands to seed the database with some sample users and products as well as destroy all data
# Import data
pnpm run data:import
# Destroy data
pnpm run data:destroy
