Skip to content

Abhigupta13/Ecommerce-server

Repository files navigation

QuickMart - MERN Stack E-commerce Project (Backend Repository)

Welcome to the backend repository of QuickMart, a full-fledged MERN (MongoDB, Express, React, Node.js) stack e-commerce application with an admin panel, Redux Toolkit, Stripe Payment integration, cloud deployment, and various other features. This repository houses the backend codebase responsible for managing data, authentication, and other server-side functionalities.

Getting Started

To start the backend server, simply run:

npm start

Features

  • Basic E-commerce Features: Browse products, view product details, add items to cart, and complete the checkout process.
  • Secure Payment Methods: Securely pay for orders using card payments or opt for cash payments.
  • Admin Panel: Manage orders and products easily with functionalities like adding and editing orders/products.
  • Sorting, Filtering, and Pagination: Conveniently sort, filter, and paginate through product listings using Mongoose queries.
  • Authentication: Utilizes Passport JS strategies for authentication along with JWT (JSON Web Tokens) for API authentication.
  • Email Notifications: Send order confirmation emails and password reset emails to users.
  • User Profiles: Users can manage their profiles and view their order history.

Technical Details

  • Frontend: React 18 with Tailwind CSS styled components.
  • State Management: Redux Toolkit with Async Thunk for efficient state management.
  • Frontend Testing: Utilizes JSON-server for frontend testing.
  • Database: MongoDB with Mongoose for data modeling and management.
  • Server: Express.js framework for building RESTful APIs.
  • Authentication: Passport JS for authentication mechanisms.
  • Cloud Database: MongoDB Atlas used for cloud-based database hosting.
  • Deployment: Vercel for server deployment.
  • Email Services: Nodemailer with Gmail SMTP for sending emails.
  • Payments: Stripe integration using PaymentIntent for custom payment flows.

Contributing

Contributions are welcome! Please feel free to fork this repository, make changes, and submit pull requests. For major changes, please open an issue first to discuss the proposed changes.

Happy coding!