QuickKart is a full-stack e-commerce application built with React on the frontend and Node.js/Express on the backend.
- Frontend: https://quickkart-eight.vercel.app
- Backend API: https://quickkart-3g05.onrender.com
- βοΈ React - JavaScript library for building user interfaces
- β‘ Vite - Fast build tool and development server
- π¬ Redux Toolkit - State management (authentication, shopping, admin functions)
- π React Router DOM - Client-side routing
- π Axios - HTTP client for API requests
- π¨ Radix UI - Headless UI component library
- π Tailwind CSS - Utility-first CSS framework
- π Lucide React - Icon library
- π Node.js - JavaScript runtime
- π Express.js - Web framework
- π MongoDB - NoSQL database
- π Mongoose - Object modeling for MongoDB
- π JWT - Authentication with JSON Web Tokens
- π bcryptjs - Password hashing
- βοΈ Cloudinary - Cloud storage for images
- π³ PayPal REST SDK - Payment processing
- π Multer - File upload middleware
- Node.js (v14 or higher)
- npm or yarn
- MongoDB instance
cd client
npm install
Create a .env
file in the client/
directory:
VITE_API_URL=http://localhost:5000/api
Start the frontend server:
npm run dev
Frontend will be available at http://localhost:5173
cd server
npm install
Create a .env
file in the server/
directory:
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
PAYPAL_CLIENT_ID=your_paypal_client_id
PAYPAL_CLIENT_SECRET=your_paypal_client_secret
Start the backend server:
npm run dev
Backend API will be available at http://localhost:5000
βοΈ User authentication (register, login, logout)
βοΈ Browse and search products
βοΈ Filter products by category, brand, price
βοΈ Shopping cart management
βοΈ Order placement and PayPal payment integration
βοΈ Manage saved addresses
βοΈ Product reviews and ratings
βοΈ Dashboard with statistics
βοΈ Product management (add, edit, delete)
βοΈ Order management (status updates)
βοΈ Feature image management
client/
βββ public/ # Static assets
βββ src/
β βββ assets/ # Images
β βββ components/ # Reusable components
β β βββ admin-view/ # Admin UI components
β β βββ auth/ # Authentication UI
β β βββ common/ # Common UI elements
β β βββ shopping-view/ # Shopping experience UI
β β βββ ui/ # UI elements (buttons, cards, etc.)
β βββ config/ # Configuration files
β βββ lib/ # Helper functions
β βββ pages/ # Page components
β β βββ admin-view/ # Admin pages
β β βββ auth/ # Login/Register pages
β β βββ shopping-view/ # Shopping pages
β βββ store/ # Redux store
β β βββ slices/ # Redux slices
β βββ App.jsx # Main application
β βββ main.jsx # Entry point
βββ .env # Environment variables
βββ package.json # Dependencies
βββ vite.config.js # Vite configuration
server/
βββ controllers/ # API Controllers
β βββ admin/ # Admin controllers
β βββ auth/ # Authentication controllers
β βββ common/ # Common functionalities
β βββ shop/ # Shopping-related logic
βββ helpers/ # Utility functions
β βββ cloudinary.js # Cloudinary integration
β βββ db.js # MongoDB connection
β βββ paypal.js # PayPal SDK setup
βββ models/ # Mongoose Models
β βββ Address.js
β βββ Cart.js
β βββ Feature.js
β βββ Order.js
β βββ Product.js
β βββ Review.js
β βββ User.js
βββ routes/ # API Routes
βββ .env # Environment variables
βββ package.json # Dependencies
βββ server.js # Main server file
POST /api/auth/register
- Register new userPOST /api/auth/login
- Login userPOST /api/auth/logout
- Logout userGET /api/auth/check-auth
- Verify authentication
GET /api/products/get
- Get all productsGET /api/products/get/:id
- Get product detailsPOST /api/admin/products/add
- Add a product (Admin)PUT /api/admin/products/edit/:id
- Edit a product (Admin)DELETE /api/admin/products/delete/:id
- Delete a product (Admin)
POST /api/cart/add
- Add item to cartGET /api/cart/get
- Get cart itemsPUT /api/cart/update
- Update cart itemDELETE /api/cart/delete/:id
- Remove cart item
POST /api/orders/create
- Create orderGET /api/orders/get
- Get user ordersGET /api/admin/orders/get
- Get all orders (Admin)PUT /api/admin/orders/update/:id
- Update order status (Admin)
POST /api/reviews/add
- Add product reviewGET /api/reviews/get/:productId
- Get product reviews
- Tailwind CSS with custom themes
- Radix UI for headless components
- Lucide Icons for modern UI
- Class Variance Authority for dynamic styles
Redux Toolkit slices:
- Authentication - User info, login status
- Shopping - Cart, orders, reviews
- Admin - Product & order management
npm run dev # Start dev server
npm run build # Build for production
npm run lint # Run ESLint
npm run preview # Preview production build
npm run dev # Start development server
npm start # Start production server
To access the Admin Panel, use the following credentials:
- Email: [email protected]
- Password: admin1234
Use the following PayPal sandbox account to test payments:
- Email:
[email protected]
- Password:
Ta/XJSk5