/Mini-Amazon

A fullstack Ecommerce application Built using Node.js, Express.js, MongoDB, Mongoose

Primary LanguageJavaScriptMIT LicenseMIT

GitHub contributors GitHub issues GitHub license GitHub forks GitHub stars GitHub Language

📝 Table of Contents

📙 About

  • A fullstack Ecommerce application.
  • MVC architecture is used.
  • User can signup to create account and receive email regarding the registration.
  • User can reset his password by a link sent to him through the email that is valid for 1 hour only.
  • Each user has a cart and orders page.
  • Each user can create products and upload an image to the product.
  • Pagination is supported in the products page.
  • Each user can edit or delete his products.
  • Each user can generate a PDF invoice to any order he has done.
  • Each user can pay to make his order to test payments enter 4242 4242 4242 4242 as a card number and any expiry date in the future to proceed with the payment.

🏁 Getting Started

This is an list of needed instructions to set up your project locally, to get a local copy up and running follow these instructuins.

Installation

  1. Clone the repository
$ git clone https://github.com/ZeyadTarekk/Mini-Amazon.git
  1. Navigate to repository directory
$ cd Mini-Amazon
  1. Install dependencies
npm install

Running

  1. Create .env file and add your environment variables
  • MONGODB_URI Your MongoDB connection string like this mongodb://localhost:27017/shop
  • SENDGRID_API_KEY Sendgrid api key or contact me to get mine
  • SENDER_EMAIL Your verified Sender email at sendgrid or contact me to get mine
  • STRIPE_KEY Stripe API key or contact me to get mine
  1. Running on development mode
npm start

Open http://localhost:3000 with your browser to see the result

💻 Built Using

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • bcryptjs to encrypt passwords
  • csurf to generate tokens
  • multer to upload files (products images)
  • nodemailer to send mails
  • pdfkit to generate PDF invoices on each order
  • stripe to allow payments

📷 Demo Screenshots

Signup Email


Reset password email


Home Page



Product Details


User cart


Confirm Order


Payment


Payment Success


Orders


Generated Invoice

You can see the generated PDF in data/invoices folder


Admin Products

Owner User


Another User


Create Product


Edit Product


Reset password



Contributors

Zeyad Tarek
Zeyad Tarek

License

This software is licensed under MIT License, See License for more information.