Webify is a full-stack multi-vendor E-commerce platform built with Django REST Framework and React. The platform allows users to browse products, add them to cart, checkout, and manage orders. It includes features for both customers and administrators, with a focus on user experience and modern design.
- Email/Password registration and login
- Google OAuth integration
- JWT authentication
- User profile management
- Product browsing and searching
- Product categorization
- Product details with images
- Shopping cart functionality
- Persistent cart (database for authenticated users, local storage for guests)
- Checkout process
- Order history and tracking
- Product management (add, edit, delete)
- Approve products from different sellers
- User management
- Order management
- Sales analytics and reporting
- Product listing and management
- Order fulfillment
- Responsive design
- Modern and intuitive interface
- Swiper.js for interactive carousels
- Interactive components with animations
- Framework: Django, Django REST Framework
- Authentication: Djoser, Simple JWT, Google Auth
- Database: SQLite (development), PostgreSQL (production ready)
- File Storage: Django's built-in file handling
- Framework: React with Vite
- State Management: Redux Toolkit
- Routing: React Router DOM
- UI Components: React Bootstrap, Material UI
- HTTP Client: Axios
- Form Handling: React Hook Form
- Styling: CSS, Bootstrap
- Animations: Framer Motion
- Carousels: Swiper.js
- Icons: FontAwesome, Bootstrap Icons
- Charts: Chart.js with React-Chartjs-2
- Node.js (v16+)
- Python (v3.8+)
- pip
- npm or yarn
-
Navigate to the backend directory:
cd back -
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 -
Create a
.envfile with the following variables:SECRET_KEY=your_secret_key DEBUG=True GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret -
Run migrations:
python manage.py migrate -
Create a superuser:
python manage.py createsuperuser -
Start the development server:
python manage.py runserver
-
Navigate to the frontend directory:
cd front -
Install dependencies:
npm install # or yarn install -
Create a
.envfile with the following variables:VITE_API_URL=http://localhost:8000/api VITE_GOOGLE_CLIENT_ID=your_google_client_id -
Start the development server:
npm run dev # or yarn dev -
Access the application at
http://localhost:5173
accounts/: User accounts, profiles, and chat functionalityauthsys/: Authentication system including Google OAuthproducts/: Product models, views, and serializersorders/: Order processing and managementpayments/: Payment processingwebify/: Main project settings and configuration
src/components/: Reusable UI componentssrc/pages/: Page componentssrc/store/: Redux store configuration and slicessrc/api/: API integrationsrc/services/: Service functionssrc/styles/: CSS and styling filessrc/assets/: Static assets like images
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.