A graphical Windows-based clothing recommender system built with Python, designed for boutique-scale fashion platforms. Users input personal attributes (age, height, weight, skin tone, eye color, hair color, clothing size), and receive personalized outfit suggestions from a curated dataset.
The system supports multi-step recommendations based on:
- Initial preferences
- Item similarity
- Contextual filters (season, location, occasion, time of day)
Originally developed as a final project for a Recommender Systems course, now restructured for commercial deployment in boutique environments. Includes a full dataset, GUI interface, and dynamic recommendation logic.
The system guides users through a personalized styling journey, adapting recommendations based on preferences, context, and item similarity.
All clothing images shown above, as well as all image files in thedataset/images/folder, are for demonstration purposes only and were originally sourced from [6pm.com]. These assets are not redistributed and are not used for commercial purposes.
No commercial product images are stored in the repository. All recommendations are generated based on internal datasets and product metadata, independent of external sources.
- Full-featured Windows GUI (Python) for an interactive recommendation journey
- Multi-step recommendation pipeline: hard filters → soft rules weighting → item-similarity reranking → price tie-breaker
- Context-aware filters: season, occasion, location, time of day
- Top-k interactive flow: show first 3 suggestions, optionally show next-3, allow item replacement and similarity-driven follow-up suggestions
- Dataset included: comprehensive clothing records (images, attributes); ready for boutique catalogs
- Designed with business-oriented data modeling and deployable architecture in mind
- Personalized onboarding: collects age, height, weight, clothing size, skin/eye/hair color
- Hard rules enforcement: removes incompatible items (size, season, occasion, environment)
- Soft-rule scoring: applies weighted preferences (e.g., color harmony, similarity of fabric, type)
- Similarity engine: compares a chosen item to dataset items across 4 main features; influences next-step recommendations
- Deterministic tie-breaking: lower price wins when scores equal
- GUI-driven exploration: replace reference image to re-run similarity search; view next-k results
- Exportable and auditable: outputs of recommendation steps (selected ids, weights, prices) available for debugging and testing
Below is a preview of 10 sample rows from the clothing dataset used in the recommender system. Each row corresponds to one clothing item, and each item is visually represented by an image file in the dataset/images/ folder. Images are sequentially numbered as 1.jpg, 2.jpg, 3.jpg, ..., matching the row index in the dataset.
| ID | Type | Season | Fabric | Tall | Light_Color | Size | Volume | Height | Price | luxuryNew | Wedding | Valentine | New_Year_Eve | Funeral | Other_Occasions | Work | Home | Hospitality | Recreational_Places | Other_Places | Morning | Noon | Evening |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Men blouse | Spring | polyester | 0 | 1 | all | 2xl | 73/66 | 34/95 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 2 | Men blouse | Spring | polyester | 0 | 1 | Medium | null | 68/58 | 34/95 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 3 | Men blouse | Spring | polyester | 0 | 1 | all | null | 68/58 | 29/95 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | |
| 4 | Men blouse | Spring | polyester | 0 | 1 | Medium | null | 73/66 | 50 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 5 | Men blouse | Spring | polyester | 0 | 1 | Medium | null | 73/66 | 50 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 6 | Men blouse | Spring | polyester | 0 | 0 | Medium | null | 73/66 | 50 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 7 | Men blouse | Spring | nylon | 1 | 1 | Small | null | 76/2 | 55 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 8 | Men blouse | Spring | polyester | 0 | 0 | Medium | null | 68/58 | 34/95 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 9 | Men blouse | Spring | polyester | 1 | 0 | Small | 2xl | 73/66 | 55 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
| 10 | Men blouse | Spring | polyester | 0 | 0 | all | null | 76/2 | 36 | null | 0 | 0 | 0 | 0 | Contest | 0 | 0 | 0 | Swimming | 1 | 1 | 1 | 1 |
🖼️ Only a limited number of sample images are included in the current repository for preview purposes.
🧠 These attributes are used by the recommender engine to filter, score, and rank clothing items based on user preferences and contextual filters.
-
Collect personal profile:
- Age range
- Height range
- Weight range
- Clothing size
- Skin tone, eye color, hair color
-
Apply hard filters to the full dataset → produce user-specific sub-dataset
- Example: 115 out of 179 items remain after filtering
-
Apply seasonal/context constraints:
- Season (e.g., summer, winter)
- Occasion (e.g., formal, casual)
- Location (e.g., indoor, outdoor)
- Time of day (morning, noon, night)
-
Soft-rule scoring:
- Adds weights per item
- Examples:
- Color harmony → +1
- Same type match → +8
- Produces a ranked list
-
Sort results:
- By score (descending)
- Tie-breaker: lower price wins
-
Interactive flow:
- Show top-3 suggestions
- User may request next-3
- Upon selection, similarity-based reranking runs using 4 key item features + filters
-
Audit & logging:
- All intermediate outputs (IDs, weight arrays, price arrays) are stored/logged
- Useful for debugging, testing, and analytics
-
Target audience:
Boutique and mid-size e-commerce retailers seeking guided, explainable styling flows -
Packaging options:
- Windows desktop app for in-store stylist terminals
- Web-wrapped service (Flask/FastAPI) exposing the recommendation engine to a web UI
-
Privacy considerations:
- System uses only non-sensitive profile attributes
- For production use:
- Add privacy/consent handling
- Secure storage for user sessions
-
Commercialization guidance:
- Include dataset ownership notice
- Perform image licensing checks
- Clearly distinguish synthetic vs. real-sourced data
"Originally implemented as an academic final project (2019) and restructured for commercial deployment with improved modularity, business-driven modeling, and production-ready engineering practices."
⚠️ Avoid claiming proprietary third-party trademarks as dependencies.
✅ Mention public dataset sources and ensure product images are licensed for commercial use.
This project is released under the MIT License.
Ehsan Lesani
AI Solutions Architect | AI Engineer | Full-Stack Dev | Remote-first CTO | Recommender Systems Specialist
🔗 Official Site
📂 Linkedin Profile
📧 Contact for Commercial Collaboration
