eCommerceApp is a full-stack eCommerce application built with Node.js, Express, MongoDB, and React. The application provides a seamless shopping experience with features like user authentication, shopping cart management, order processing, payment integration with Stripe, and more.
- User Authentication: Secure user authentication with JWT, including features like signup, login, password reset, and email verification.
- Shopping Cart: Add, update, and remove items in the shopping cart with real-time calculations.
- Order Management: Users can place orders, and admins can view and manage orders. Order confirmation emails are sent to users upon successful order placement.
- Payment Integration: Integrated with Stripe for secure payments.
- Invoice Download: Users can download invoices for their orders as PDF files.
- State Management: Zustand is used for global state management, making the state logic simple and predictable.
- Animations: Framer Motion is used for smooth and modern animations throughout the application.
- Responsive UI: A modern and responsive user interface built with React and TailwindCSS.
- API Documentation: Swagger API documentation for backend endpoints.
-
Backend:
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT for authentication
- Stripe for payment processing
- Nodemailer for email notifications
-
Frontend:
- React.js
- Vite.js
- TailwindCSS
- Zustand for state management
- Framer Motion for animations
- Axios for API requests
- Node.js and npm installed on your machine
- MongoDB Atlas account or a local MongoDB instance
- Stripe account for payment integration
- Clone the repository:
git clone https://github.com/Sujeethy/eCommerceApp.git
- Navigate to the project directory:
cd eCommerceApp
- Install backend dependencies:
npm install
- Install frontend dependencies:
cd frontend npm install
- Create a
.env
file in the root directory with the following environment variables:MONGO_URI=<your-mongo-uri> PORT=5000 JWT_SECRET=<your-jwt-secret> NODE_ENV=development CLIENT_URL=<your-client-url> MAIL_ID=<your-email-id> MAIL_PASSWORD=<your-email-password> STRIPE_SERVER=<your-stripe-secret-key>
- Start the backend server:
npm run dev
- Start the frontend development server:
cd frontend npm run dev
- Access the application in your browser at
http://localhost:5173
.
Swagger API documentation is available at http://localhost:5000/api-docs
.
Contributions are welcome! Please create a pull request for any enhancements or bug fixes.