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.
| 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 + Firebasearchitecture 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.
FashApp is a modern, cross-platform project focused on speed and cost efficiency.
| 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). |
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 deterministic scoring engine assigns a global score
Color attributes are calculated upstream (e.g., conversion to CIELab
space
- Onboarding: Quick login and camera authorization.
- 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.
- 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.
- The user defines constraints: occasion, weather/season, color palette (
- Management: Edit/delete items, JSON export of the wardrobe (Right to be forgotten).
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.
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. |
This project is built on Flutter and Firebase and is open to contributions.
- Fork the repository.
- Clone the project and run
flutter pub get. - Configure your Firebase environment (requires a Firebase account).
- Implement your feature or fix.
- Submit a clear and documented Pull Request, including associated unit tests if possible.
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!