Mobile marketplace app for UT Austin students built with Flutter, Riverpod, Firebase, and GoRouter.
- UT-only authentication flow with onboarding and profile setup
- Main tabs:
Find,Appointments,Chat, andProfile - Provider discovery with detail/about pages and booking flows
- Appointment lifecycle support (create, edit, status updates)
- In-app chat threads with media support
- Local notification preferences + appointment reminder scheduling
- Flutter + Dart
flutter_riverpodfor app statego_routerfor route orchestration- Firebase Auth, Firestore, and Firebase Storage
flutter_local_notifications+timezonefor reminders
lib/features/app UI and feature flowslib/core/shared services (Firebase init, Firestore, notifications, etc.)lib/models/app modelsassets/static assets, including demo seed imagesfirestore.rulesandstorage.rulesbackend access rules
- Install Flutter and Xcode (for iOS).
- Install dependencies:
flutter pub get- Ensure Firebase config files are present (
lib/firebase_options.dartand platform plist/json files). If needed:
dart pub global activate flutterfire_cli
flutterfire configure --project tpeo-nf-project --out=lib/firebase_options.dart- Run the app:
flutter run -d ios- Firebase project:
tpeo-nf-project(wired viafirebase.json). - Firestore rules are currently permissive for signed-in users during development (
firestore.rules). - Storage rules allow public reads for provider/seed assets and authenticated writes (
storage.rules). - If notifications are enabled in-app, iOS permission prompts are triggered from the notifications settings page.
- Seed/demo data helpers live under
lib/core/seeder/. - Seed assets are under
assets/seed_images/. - Make sure Apple signing + bundle IDs are valid in the iOS project before building on device.