Transform your physical wardrobe into an intelligent digital closet with automatic clothing classification and personalized outfit recommendations.
Features β’ Demo β’ Installation β’ Usage β’ API β’ Contributing
- About
- Features
- Demo
- Technology Stack
- Installation
- Usage
- Project Structure
- API Endpoints
- Machine Learning Model
- Contributing
- License
- Acknowledgements
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.
Managing a wardrobe can be overwhelmingβpeople often forget what they own, struggle with outfit coordination, and underutilize items they've purchased.
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
|
|
|
|
|
|
The custom-trained MobileNetV2 model achieves strong classification accuracy:
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 | 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 |
| Technology | Purpose |
|---|---|
| Django Templates | Server-side rendering |
| Bootstrap 5 | CSS framework |
| Crispy Forms | Form styling |
| Technology | Purpose |
|---|---|
| NumPy | Numerical operations |
| Pandas | Data manipulation |
| Pillow | Image processing |
| OpenCV | Computer vision utilities |
| scikit-learn | Model evaluation |
- Python 3.10 or higher
- pip (Python package manager)
- Git
- Virtual environment (recommended)
-
Clone the repository
git clone https://github.com/NowarkCodes/WardrobeWizard.git cd WardrobeWizard -
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
-
Install dependencies
pip install -r requirements.txt
-
Apply database migrations
python manage.py migrate
-
Create a superuser (optional, for admin access)
python manage.py createsuperuser
-
Run the development server
python manage.py runserver
-
Access the application
Open your browser and navigate to:
http://127.0.0.1:8000
-
Register an Account
- Navigate to the registration page
- Create an account with username and password
-
Upload Your First Item
- Click "Upload" from the menu
- Select one or more clothing photos
- The AI will automatically classify each item
-
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
-
Get Outfit Recommendations
- View AI-generated outfit pairings
- Save your favorite combinations
- Track what you wear
# 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/adminWardrobeWizard/
βββ 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
| Method | Endpoint | Description |
|---|---|---|
| GET | /login/ |
Login page |
| POST | /login/ |
Authenticate user |
| POST | /logout/ |
Logout user |
| GET/POST | /register/ |
User registration |
| 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 |
| 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 |
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)
| Parameter | Value |
|---|---|
| Input Size | 224 Γ 224 Γ 3 (RGB) |
| Batch Size | 32 |
| Epochs | 25 |
| Optimizer | Adam |
| Loss Function | Categorical Crossentropy |
The training pipeline includes:
- Random rotation (Β±20Β°)
- Width/height shifts (Β±20%)
- Shear transformation
- Zoom (Β±20%)
- Horizontal flip
To retrain the model with your own dataset:
-
Prepare your dataset in
dataset/images/with corresponding labels indataset/labels/dataset.csv -
Run the training script:
python train_model.py
-
The new model will be saved as
custom_fashion_model.h5 -
Move the model to the wardrobe app:
mv custom_fashion_model.h5 wardrobe/
Contributions are welcome! Here's how you can help:
- Fork the repository
- Clone your fork
git clone https://github.com/YOUR_USERNAME/WardrobeWizard.git
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit your changes
git commit -m "Add amazing feature" - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- 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
- π Bug fixes
- β¨ New features
- π Documentation improvements
- π¨ UI/UX enhancements
- π§ͺ Test coverage
- π Internationalization
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.
- Django - The web framework for perfectionists with deadlines
- TensorFlow - Machine learning platform
- MobileNetV2 - Efficient CNN architecture
- Bootstrap - CSS framework
- Fashion-MNIST - Inspiration for fashion classification
- DeepFashion - Fashion dataset reference
β Star this repository if you find it helpful!
Made with β€οΈ by the WardrobeWizard Team
