/modern-ecommerce

Full-stack e-commerce website w/ Next.js, Nest.js, and MongoDB. Inspired by Brad Traversy.

Primary LanguageTypeScriptMIT LicenseMIT

Elecshop - eCommerce app w/ Next.js, Nest.js and MongoDB

Elecshop preview image

The Challenge ⚡️

I wanted to build another eCommerce website using newer technologies than my previous eCommerce project, where I used Firebase to store data and Redux for state management.

I went with a client-server approach, and this time I mixed two frameworks for the first time, which were Next.js and Nest.js.

This project was very fun to build, as I encountred multiple challenges on how to coordinate between a fast, secure, and strictly-typed Nest.js API; and a Next.js app based on client-side fetching.

Here was the challenge:

  • Server-side full-featured shopping cart from scratch.
  • Storing product reviews and ratings for every customer.
  • Adding pagination & searching features for products.
  • User account management & saving product orders.
  • Admin profile & product management.
  • Fast checkout process (shipping, payment method, etc).

Built With ✨

  • Nest.js - node.js framework
  • React Bootstrap - UI library
  • Redux - State management library
  • JWT - tokens for authentication
  • Next.js - react.js framework
  • MongoDB - Document database
  • Typescript

Running Locally 🖥️

Clone the project

git clone https://github.com/NightClover-code/modern-ecommerce.git

Go to the project directory

cd modern-ecommerce

Remove remote origin

git remote remove origin

Install dependencies - Client

yarn install

Install dependencies - Server

yarn install

Add Environment Variables - Client

Click to expand!
  • NEXT_PUBLIC_PAYPAL_CLIENT_ID

Add Environment Variables - Server

Click to expand!
  • MONGODB_PASSWORD
  • MONGODB_DATABASE_NAME
  • JWT_SECRET
  • MONGODB_URL
  • SESSION_KEY
  • CLIENT_URL
  • CLOUDINARY_API_KEY
  • CLOUDINARY_API_SECRET
  • CLOUDINARY_NAME

Start the server

yarn start:dev

Start the client

yarn dev

Deployment 🚀

Inspiration & credits ☄️

Author

Thanks for sharing 🚀