A full-stack e-commerce platform that connects multiple vendors with customers, featuring a modern React frontend and Django REST framework backend.
- User authentication & authorization (JWT)
- Product browsing and search
- Shopping cart functionality
- Secure payment processing
- Order tracking
- Product reviews and ratings
- Responsive design for all devices
- Vendor registration and dashboard
- Product management (CRUD operations)
- Order management
- Sales analytics
- Inventory tracking
- User management
- Vendor approval system
- Category management
- Sales reports
- Platform analytics
- Framework: React 19
- State Management: Redux Toolkit
- UI Library: React Bootstrap
- Styling: Motion-Framer
- Routing: React Router DOM
- Forms: React Hook Form
- HTTP Client: Axios
- Build Tool: Vite
- Framework: Django 5.2 & Django REST Framework
- Database: PostgreSQL
- Authentication: JWT (djangorestframework-simplejwt)
- Caching: Redis
- Task Queue: Celery
- API Documentation: DRF Spectacular (OpenAPI 3)
- Node.js (v18+)
- Python (3.9+)
- PostgreSQL
- Redis
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/ecommerce-multivendor.git cd ecommerce-multivendor/backend -
Create and activate a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables Create a
.envfile in the backend directory with the following variables:SECRET_KEY=your-secret-key DEBUG=True DATABASE_URL=postgresql://user:password@localhost:5432/ecommerce_db REDIS_URL=redis://localhost:6379/0 -
Run migrations
python manage.py migrate
-
Create a superuser
python manage.py createsuperuser
-
Run the development server
python manage.py runserver
-
Navigate to the frontend directory
cd ../frontend -
Install dependencies
npm install # or yarn -
Start the development server
npm run dev # or yarn dev -
Open your browser The application should be running at
http://localhost:5173
ecommerce-multivendor/
├── backend/ # Django backend
│ ├── cart/ # Shopping cart functionality
│ ├── core/ # Core app with base settings
│ ├── media/ # User-uploaded files
│ ├── orders/ # Order management
│ ├── payment/ # Payment processing
│ ├── products/ # Product catalog
│ ├── users/ # User authentication
│ ├── vendors/ # Vendor management
│ ├── manage.py
│ └── requirements.txt
│
└── frontend/ # React frontend
├── public/ # Static files
└── src/ # Source code
├── assets/ # Images, fonts, etc.
├── components/ # Reusable UI components
├── pages/ # Page components
├── redux/ # Redux store and slices
├── services/ # API services
└── App.jsx # Main component
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by the VendorHub Team