Skip to content

NowarkCodes/WardrobeWizard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘” WardrobeWizard

AI-Powered Digital Wardrobe Management

Python Django TensorFlow Bootstrap License

Transform your physical wardrobe into an intelligent digital closet with automatic clothing classification and personalized outfit recommendations.

Features β€’ Demo β€’ Installation β€’ Usage β€’ API β€’ Contributing


πŸ“‹ Table of Contents


🎯 About

WardrobeWizard is a Django-based web application that empowers users to digitize their physical wardrobes through photo uploads. It leverages machine learning to automatically categorize clothing items and generates personalized outfit recommendations based on your existing wardrobe.

🎯 Problem Statement

Managing a wardrobe can be overwhelmingβ€”people often forget what they own, struggle with outfit coordination, and underutilize items they've purchased.

πŸ’‘ Solution

WardrobeWizard provides:

  • Automated Organization: Upload photos and let AI categorize your clothes
  • Smart Recommendations: Get outfit suggestions based on style compatibility
  • Personal Style Archive: Visual history of all clothing items with wear tracking
  • Time Savings: Quick outfit planning without physically searching through your closet

✨ Features

πŸ“Έ Smart Upload & Classification

  • Drag-and-drop image upload
  • Multi-file batch upload support
  • AI-powered automatic categorization (18 categories)
  • Confidence score display for classifications

πŸ‘— Wardrobe Management

  • Visual gallery of all clothing items
  • Filter by category
  • Edit item details and categories
  • Soft delete with archive capability

🎨 Outfit Recommendations

  • Intelligent outfit pairing algorithm
  • Color and style compatibility matching
  • Save favorite outfit combinations
  • Occasion and season filtering

πŸ“Š Analytics & Insights

  • Wardrobe statistics dashboard
  • Wear tracking and logging
  • Category breakdown charts
  • Most/least worn items identification

πŸ‘€ User Management

  • Secure registration and authentication
  • Personal profile with wardrobe overview
  • Session management
  • Password protection

πŸ“± Modern UI/UX

  • Mobile-responsive design
  • Bootstrap 5 styling
  • Intuitive navigation
  • Real-time feedback with messages

πŸ–ΌοΈ Demo

ML Model Performance

The custom-trained MobileNetV2 model achieves strong classification accuracy:

Training and Validation Accuracy

Supported Clothing Categories

The ML model classifies items into 18 categories:

Tops Bottoms Outerwear Other
T-Shirt Pants Outwear Dress
Shirt Shorts Blazer Shoes
Polo Skirt Hoodie Hat
Top Body
Blouse
Longsleeve
Undershirt

πŸ› οΈ Technology Stack

Backend

Technology Purpose
Django 5.1 Web framework
SQLite Database (PostgreSQL ready)
TensorFlow 2.19 Machine learning framework
Keras Deep learning API
MobileNetV2 Pre-trained CNN for transfer learning

Frontend

Technology Purpose
Django Templates Server-side rendering
Bootstrap 5 CSS framework
Crispy Forms Form styling

ML/Data Science

Technology Purpose
NumPy Numerical operations
Pandas Data manipulation
Pillow Image processing
OpenCV Computer vision utilities
scikit-learn Model evaluation

πŸš€ Installation

Prerequisites

  • Python 3.10 or higher
  • pip (Python package manager)
  • Git
  • Virtual environment (recommended)

Step-by-Step Setup

  1. Clone the repository

    git clone https://github.com/NowarkCodes/WardrobeWizard.git
    cd WardrobeWizard
  2. Create and activate a virtual environment

    # On macOS/Linux
    python -m venv venv
    source venv/bin/activate
    
    # On Windows
    python -m venv venv
    venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Apply database migrations

    python manage.py migrate
  5. Create a superuser (optional, for admin access)

    python manage.py createsuperuser
  6. Run the development server

    python manage.py runserver
  7. Access the application

    Open your browser and navigate to: http://127.0.0.1:8000


πŸ“– Usage

Getting Started

  1. Register an Account

    • Navigate to the registration page
    • Create an account with username and password
  2. Upload Your First Item

    • Click "Upload" from the menu
    • Select one or more clothing photos
    • The AI will automatically classify each item
  3. View Your Wardrobe

    • Browse your digital wardrobe in the gallery view
    • Filter by category to find specific items
    • Click on items to see details and recommendations
  4. Get Outfit Recommendations

    • View AI-generated outfit pairings
    • Save your favorite combinations
    • Track what you wear

Quick Commands

# Run development server
python manage.py runserver

# Create database migrations
python manage.py makemigrations

# Apply migrations
python manage.py migrate

# Create superuser for admin panel
python manage.py createsuperuser

# Access admin panel
# Navigate to: http://127.0.0.1:8000/admin

πŸ“ Project Structure

WardrobeWizard/
β”œβ”€β”€ WardrobeWizard/           # Django project settings
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ settings.py           # Project configuration
β”‚   β”œβ”€β”€ urls.py               # Root URL configuration
β”‚   β”œβ”€β”€ wsgi.py               # WSGI entry point
β”‚   └── asgi.py               # ASGI entry point
β”‚
β”œβ”€β”€ wardrobe/                 # Main application
β”‚   β”œβ”€β”€ migrations/           # Database migrations
β”‚   β”œβ”€β”€ templates/wardrobe/   # HTML templates
β”‚   β”‚   β”œβ”€β”€ dashboard.html    # User dashboard
β”‚   β”‚   β”œβ”€β”€ upload.html       # Image upload page
β”‚   β”‚   β”œβ”€β”€ history.html      # Wardrobe gallery
β”‚   β”‚   β”œβ”€β”€ profile.html      # User profile
β”‚   β”‚   └── ...               # Other templates
β”‚   β”œβ”€β”€ admin.py              # Admin configuration
β”‚   β”œβ”€β”€ apps.py               # App configuration
β”‚   β”œβ”€β”€ forms.py              # Django forms
β”‚   β”œβ”€β”€ models.py             # Database models
β”‚   β”œβ”€β”€ urls.py               # App URL patterns
β”‚   β”œβ”€β”€ views.py              # View functions
β”‚   β”œβ”€β”€ tests.py              # Unit tests
β”‚   └── custom_fashion_model.h5  # Trained ML model
β”‚
β”œβ”€β”€ templates/                # Base templates
β”‚   β”œβ”€β”€ base.html             # Base template
β”‚   └── registration/         # Auth templates
β”‚
β”œβ”€β”€ dataset/                  # Training dataset
β”‚   β”œβ”€β”€ images/               # Training images
β”‚   └── labels/               # Label files
β”‚
β”œβ”€β”€ media/                    # User uploads (gitignored)
β”œβ”€β”€ train_model.py            # Model training script
β”œβ”€β”€ manage.py                 # Django CLI
β”œβ”€β”€ requirements.txt          # Python dependencies
└── README.md                 # This file

πŸ”Œ API Endpoints

Authentication

Method Endpoint Description
GET /login/ Login page
POST /login/ Authenticate user
POST /logout/ Logout user
GET/POST /register/ User registration

Wardrobe Management

Method Endpoint Description
GET / Landing page / Dashboard redirect
GET /dashboard/ User dashboard with statistics
GET /menu/ Navigation menu
GET/POST /upload/ Upload new clothing items
GET /history/ View wardrobe gallery
GET /result/<id>/ View item details
GET/POST /edit/<id>/ Edit item details
POST /delete/<id>/ Remove item from wardrobe
POST /worn/<id>/ Mark item as worn

Outfits & Analytics

Method Endpoint Description
GET /outfits/ View saved outfits
GET/POST /outfits/save/ Create new outfit
POST /outfits/delete/<id>/ Delete outfit
GET /stats/ Wardrobe statistics
GET /profile/ User profile overview

πŸ€– Machine Learning Model

Architecture

WardrobeWizard uses a MobileNetV2 convolutional neural network with transfer learning:

Model: MobileNetV2 (Pre-trained on ImageNet)
β”œβ”€β”€ Base Model: MobileNetV2 (frozen weights)
β”œβ”€β”€ Global Average Pooling 2D
β”œβ”€β”€ Dense Layer (1024 units, ReLU activation)
└── Output Layer (20 classes, Softmax activation)

Training Configuration

Parameter Value
Input Size 224 Γ— 224 Γ— 3 (RGB)
Batch Size 32
Epochs 25
Optimizer Adam
Loss Function Categorical Crossentropy

Data Augmentation

The training pipeline includes:

  • Random rotation (Β±20Β°)
  • Width/height shifts (Β±20%)
  • Shear transformation
  • Zoom (Β±20%)
  • Horizontal flip

Retraining the Model

To retrain the model with your own dataset:

  1. Prepare your dataset in dataset/images/ with corresponding labels in dataset/labels/dataset.csv

  2. Run the training script:

    python train_model.py
  3. The new model will be saved as custom_fashion_model.h5

  4. Move the model to the wardrobe app:

    mv custom_fashion_model.h5 wardrobe/

🀝 Contributing

Contributions are welcome! Here's how you can help:

Getting Started

  1. Fork the repository
  2. Clone your fork
    git clone https://github.com/YOUR_USERNAME/WardrobeWizard.git
  3. Create a feature branch
    git checkout -b feature/amazing-feature
  4. Make your changes
  5. Commit your changes
    git commit -m "Add amazing feature"
  6. Push to your branch
    git push origin feature/amazing-feature
  7. Open a Pull Request

Development Guidelines

  • Follow PEP 8 style guidelines
  • Write meaningful commit messages
  • Add tests for new functionality
  • Update documentation as needed
  • Ensure all tests pass before submitting PR

Areas for Contribution

  • πŸ› Bug fixes
  • ✨ New features
  • πŸ“ Documentation improvements
  • 🎨 UI/UX enhancements
  • πŸ§ͺ Test coverage
  • 🌐 Internationalization

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2026 WardrobeWizard

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

πŸ™ Acknowledgements


⭐ Star this repository if you find it helpful!

Made with ❀️ by the WardrobeWizard Team

Report Bug β€’ Request Feature

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •