🏆 FluxCart won 1st place at FlutterUp, a coding marathon organized by Flutter Ankara , and Dev Codex .
FluxCart is a polished, cross-platform shopping experience built with Flutter. It showcases a modern catalog, an AI-powered virtual try-on workflow, and a clean architecture that keeps domain, data, and presentation layers easy to extend.
- Offline-friendly catalog – mocked product data with locally bundled imagery for fast iteration.
- Virtual try-on preview – Google GenAI integration generates tailored outfits from the shopper’s photo.
- Responsive layout – adaptive widgets for mobile, desktop, and web from a single codebase.
- Composable architecture – domain-driven layers, GetIt DI, and Bloc state management keep features isolated.
- Ready for theming – surface, typography, and color usage align with Material 3 for quick branding tweaks.
# Install dependencies
flutter pub get
# Configure your GenAI API key (optional for offline catalog demo)
cp .env.example .env
# edit .env and set GOOGLE_GENAI_API_KEY=your_key_here
# Run on your preferred device
flutter run # auto-detects a device
flutter run -d chrome # web
flutter run -d windows # desktoplib/
├─ core/ # DI, theming, config
├─ data/ # remote data sources, repositories, DTOs
├─ domain/ # entities, use cases, repository contracts
├─ presentation/ # screens, widgets, blocs/cubits
└─ images/ # bundled product imagery for quick demos
- Drop new assets inside
lib/images/(JPG/PNG). - Reference them in
lib/data/sources/product_remote_data_source.dart. - Run
flutter pub get(ifpubspec.yamlasset list changed). - Hot restart to see updates instantly.
The try-on flow relies on Google’s Generative Language API.
- Create a key in Google AI Studio.
- Provide it via
.env(GOOGLE_GENAI_API_KEY) or--dart-define. - Ensure your product entries include reachable imagery (asset or remote).
flutter analyze
flutter test- Flutter 3.24+
- Dart 3.5+
- Bloc & GetIt for state + DI
- http & dotenv for API access
- Impeller rendering on supported platforms
- Fork and create a feature branch.
- Make changes with tests/analysis passing.
- Submit a pull request describing your update and screenshots if UI changes.
This project is released under the MIT License.