Skip to content

avainfo/FashApp

Repository files navigation

FashApp: The Deterministic Multi-Platform Personal Stylist

🚀 Vision & Objective

FashApp is a mobile and web application designed to revolutionize wardrobe management and outfit creation. Our mission is to enable every user to photograph, digitally structure their clothes, and instantly generate relevant outfits, based on the occasion, weather, and their personal preferences.

We prioritize a deterministic approach (reliable, testable) for the suggestion engine, with an optional integration of a Large Language Model (LLM) to refine the user experience (UX) and provide contextual explanations.

✨ Value Proposition

Target Audience Primary Benefit
Stylish/Busy Individuals An always up-to-date digital wardrobe and instant outfit suggestions to save time.
Professionals (Vendors/Personal Shoppers) A professional tool to manage and suggest outfits based on a clean client inventory.
Brands A loyalty lever by offering consistent advice based on existing customer pieces.

Key Project Advantages:

  • Consistency & Explainability: The deterministic engine provides a clear rationale for every suggestion.
  • Minimal Costs & Scalability: Lightweight Flutter + Firebase architecture designed to stay within the free/low-cost tiers even at scale.
  • Fluid Experience: Thanks to offline caching and the speed of the scoring engine.

🛠️ Technical Architecture (Stack)

FashApp is a modern, cross-platform project focused on speed and cost efficiency.

Client (Front-End)

Component Technology Role
Application Flutter Single codebase for iOS, Android, Web, Desktop.
Services Firebase SDK Authentication (Auth), Data Storage (Firestore), Files (Storage), Functions, Remote Configuration (Remote Config), Analytics, Error Reporting (Crashlytics).

Backend & Engine

The project's intelligence lies in the scoring engine, hosted in Google Cloud.

Component Technology Role
Database Firestore Structured storage of the wardrobe per user (items per uid).
Images Cloud Storage Clothing photos (with an optional background removal feature).
Business Logic Cloud Functions onCreateItem (calculates derived fields like Lab color), suggestOutfits (pre-filter + deterministic scoring), rerankOutfitsLLM (optional).
(Optional) Gemini 2.5 Flash-Lite / GPT-4o mini Re-ranking of the Top-5 in case of tight scoring ties and generation of the UX polish (outfit explanations in strict JSON).

The Core: The Deterministic Scoring Engine

The deterministic scoring engine assigns a global score $S$ (0 to 1) to each outfit combination, guaranteeing reliable and testable results.

$$S = 0.40 \cdot \text{Colors} + 0.25 \cdot \text{Style} + 0.15 \cdot \text{Season} + 0.15 \cdot \text{Occasion} + 0.05 \cdot \text{Fit} - \text{Penalties}$$

Color attributes are calculated upstream (e.g., conversion to CIELab space $\rightarrow \Delta E$ for similarity).


📸 End-to-End User Experience (E2E)

  1. Onboarding: Quick login and camera authorization.
  2. Ingestion:
    • The user takes a photo of their clothing item.
    • Attribute auto-suggestions (category, colors, style) are proposed, based on image analysis and calculated fields (e.g., dominantHex, warmth). The user corrects if necessary.
    • Save.
  3. Outfit Generation:
    • The user defines constraints: occasion, weather/season, color palette (like/avoid), and other constraints.
    • Results: Display of the Top-3 outfits, each with a composite image, a relevance score, and a short explanation generated by the optional LLM.
  4. Management: Edit/delete items, JSON export of the wardrobe (Right to be forgotten).

🔒 Security & GDPR

Security is paramount, especially for personal data and images.

  • Access Control: Strict Firestore/Storage Rules ensuring data access is limited only to the owning user (users/{uid}).
  • Right to be Forgotten: Feature for JSON export of the wardrobe and complete deletion of user data upon request.
  • LLM Minimalism: The LLM never invents IDs and works only on structured and pre-filtered data, ensuring consistency.

🗺️ Executable Roadmap

We aim for a fast Time-to-Market with an agile development plan.

Sprint Objective Key Features
Sprint 1 (MVP Ingestion) Establish the client/backend foundation and clothes addition. Onboarding, Photo/Gallery capture, Attribute Form, Calculated field logic, Wardrobe list view.
Sprint 2 (Outfits) The core of the application: outfit suggestion. Implementation of suggestOutfits (pre-filter + deterministic scoring), Top-3 Results UI, Feedback mechanism.
Sprint 3 (Polish) Improving the experience and optional features. Background removal integration (Optional Cloud Run), LLM integration for re-ranking and explanations, JSON Export and Sharing.
Sprint 4 (Prod) Preparation for public deployment. Finalizing E2E/Unit tests, Monitoring setup, Hardening security rules, Production deployment.

🤝 How to Contribute

This project is built on Flutter and Firebase and is open to contributions.

  1. Fork the repository.
  2. Clone the project and run flutter pub get.
  3. Configure your Firebase environment (requires a Firebase account).
  4. Implement your feature or fix.
  5. Submit a clear and documented Pull Request, including associated unit tests if possible.

Testing & Quality

We maintain a high level of code quality with:

  • Unit Tests for each sub-score of the deterministic engine (Colors, Style, Season, etc.).
  • Golden Tests for key scenarios (e.g., summer-casual, winter-business).
  • CI/CD via GitHub Actions for linting, Flutter tests, and deployment.

Ready to dress effortlessly? Join FashApp!

About

Flutter and Firebase app prototype for deterministic outfit generation and wardrobe management.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors