A cross-platform sneaker store prototype built with Flutter and Firebase Authentication. Signed-in users browse a generated product catalog, narrow it down with multi-criteria filters, keep favorites and add items to a cart.
- Firebase Authentication: email/password sign-in; the auth state stream routes users between the login screen and the store, with sign-out from the app bar
- Product catalog: a generated catalog of sneakers across brands, models, types, colors, sizes and genders
- Multi-criteria filtering: brand, type, color, size, gender and a price range slider, combined in real time
- Favorites panel (opens on hover) and cart counter
- Grid product layout; Firebase is configured for Android, iOS, web, macOS and Windows
Flutter · Dart · Firebase Core · Firebase Authentication · Material Design
lib/
├── main.dart # App entry, auth gate, catalog, filter panel, product cards
├── login_page.dart # Email/password sign-in
└── firebase_options.dart # Generated by FlutterFire CLI
assets/images/ # Logo
- Flutter SDK (Dart ≥ 3.8)
- A Firebase project with Email/Password sign-in enabled
android/app/google-services.json is intentionally not committed. Generate the platform configuration for your own Firebase project:
dart pub global activate flutterfire_cli
flutterfire configureThis regenerates lib/firebase_options.dart and google-services.json for your project.
The app provides sign-in only. Add a test user in Firebase Console → Authentication → Users → Add user.
flutter pub get
flutter run # pick a device / emulator
flutter run -d chrome # or run on the web- Product data is generated on the client for demonstration; there is no product backend yet.
- Product images were served by the Unsplash Source API, which has been discontinued; cards show a placeholder when an image cannot be loaded.
- Firebase web/client API keys in
firebase_options.dartare designed to be public; access is controlled by Firebase Authentication and Security Rules.