📝 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
- Clone the repository
$ git clone https://github.com/ZeyadTarekk/Mini-Amazon.git
- Navigate to repository directory
$ cd Mini-Amazon
- Install dependencies
npm install
Running
- Create .env file and add your environment variables
MONGODB_URI
Your MongoDB connection string like thismongodb://localhost:27017/shop
SENDGRID_API_KEY
Sendgrid api key or contact me to get mineSENDER_EMAIL
Your verified Sender email at sendgrid or contact me to get mineSTRIPE_KEY
Stripe API key or contact me to get mine
- 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
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s7.png)
Reset password email
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s8.png)
Home Page
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s1.png)
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s2.png)
Product Details
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s4.png)
User cart
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s3.png)
Confirm Order
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s11.png)
Payment
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s12.png)
Payment Success
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s13.png)
Orders
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s14.png)
Generated Invoice
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s15.png)
You can see the generated PDF in data/invoices folder
Admin Products
Owner User
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s5.png)
Another User
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s6.png)
Create Product
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s9.png)
Edit Product
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s10.png)
Reset password
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s16.png)
![](https://raw.githubusercontent.com/ZeyadTarekk/Mini-Amazon/main/screenshots/s17.png)
Contributors
Zeyad Tarek |
License
This software is licensed under MIT License, See License for more information.