A Flutter project designed for a couple to pudding (putting) things on the lists for future reference.
- Create a set of items for saving such things together with your partner for future reference.
- Edit each pudding (item) on the list in real time with your partner.
- Android
- iOS
- Web
- Firebase: Authentication, Database (Firestore)
/users/{userId} # other user data, small cached stats
/collections/{collectionId} # metadata about each collection (ownerId, title, summary)
/collections/{collectionId}/members/{userId} # membership documents (role, joinedAt, displayName/email cached)
/collections/{collectionId}/puddings/{puddingId} # posts (previewUrl, notes, createdBy, createdAt, url)
/invites/{inviteId} # invitation documents (token, email, collectionId, expiresAt, inviterId, status)
/userCollections/{userId}/collectionRefs/{collectionId} # cached collection(s) summary and its metadata of a user so listing is a single, cheap read (collectionId, user role to the collection, title, etc.)
- from
lib\as the root.
└── 📁lib
└── 📁common
└── 📁components
├── app_info_cont.dart
├── drawer_panel.dart
├── full_page_loading.dart
├── btns.dart
├── loading_overlay.dart
├── toast_overlay.dart
├── view_wrappers.dart
└── 📁utils
├── firestore_collections_name.dart
├── routing.dart
├── show_and.dart
├── svg_color_mapper.dart
├── parts.dart
└── 📁core
└── 📁logger
├── logger_providers.dart
└── 📁models
├── app_info_model.dart
├── appbar_cfg_model.dart
└── 📁providers
├── app_info_provider.dart
├── firebase_providers.dart
└── 📁features
└── 📁auth
└── 📁data
├── auth_repository.dart
└── 📁presentation
├── auth_gate.dart
├── signin_anony.dart
├── signin_email.dart
└── 📁providers
├── auth_providers.dart
└── 📁collections
└── 📁data
├── collection_model.dart
├── collections_repository.dart
└── 📁presentation
├── collections_list_screen.dart
└── 📁providers
├── collections_providers.dart
└── 📁puddings
└── 📁data
├── pudding_model.dart
├── puddings_repository.dart
└── 📁presentation
├── puddings_screen.dart
└── 📁providers
├── puddings_providers.dart
├── firebase_options.dart # generated by the flutterfire cli
└── main.dart
-
make sure you have config the latest changes of the app by run command:
git pull -
run
dart pub global activate flutterfire_clithen runflutterfire configureto configure the firebase options -
run
flutter clean && flutter pub getto clean up and get dependencies -
run app on another terminal by using command
flutter run -d chrome --web-port 5555(this will run on Chrome with port 5555)
(source: https://pub.dev/packages/flutter_native_splash)
- config the
native_splash.yamlfile then - (everytime after changes were made) regenerate the splash screen based on the
native_splash.yamlfile by run command:dart run flutter_native_splash:create --path=native_splash.yaml
(source: https://pub.dev/packages/icons_launcher)
- run command
flutter pub add -d icons_launcher - config the
launcher_icons.yamlfile then - (everytime after changes were made) regenerate the launcher icon based on the
launcher_icons.yamlfile by run command:dart run icons_launcher:create --path launcher_icons.yaml
(source: https://pub.dev/packages/change_app_package_name)
- run command
flutter pub add -d change_app_package_nameto add the helper package - then run
dart run change_app_package_name:main com.your.package.nameto change the package name