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
