{"id":13684693,"url":"https://github.com/cbonello/flutter_Starter_App","last_synced_at":"2025-05-01T00:32:46.455Z","repository":{"id":73013914,"uuid":"244393030","full_name":"cbonello/flutter_Starter_App","owner":"cbonello","description":"Flutter starter app providing sign-up, sign-in and sign-out functionnalities. Android, Flutter web and BLoC for state management.","archived":false,"fork":false,"pushed_at":"2020-09-16T12:36:51.000Z","size":1367,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-12T06:33:51.335Z","etag":null,"topics":["bloc-pattern","dart2","email-verification","firebase-authentication","flutter","flutter-web","freezed","password-reset"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cbonello.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-02T14:35:28.000Z","updated_at":"2024-05-31T14:24:07.000Z","dependencies_parsed_at":"2023-02-23T16:15:16.761Z","dependency_job_id":null,"html_url":"https://github.com/cbonello/flutter_Starter_App","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbonello%2Fflutter_Starter_App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbonello%2Fflutter_Starter_App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbonello%2Fflutter_Starter_App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbonello%2Fflutter_Starter_App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbonello","download_url":"https://codeload.github.com/cbonello/flutter_Starter_App/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251803014,"owners_count":21646321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bloc-pattern","dart2","email-verification","firebase-authentication","flutter","flutter-web","freezed","password-reset"],"created_at":"2024-08-02T14:00:37.149Z","updated_at":"2025-05-01T00:32:46.447Z","avatar_url":"https://github.com/cbonello.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"# Flutter Starter App (BLoC pattern)\n\n[![build](https://github.com/cbonello/flutter_Starter_App/workflows/Dart%20CI/badge.svg)](https://github.com/cbonello/flutter_Starter_App/actions)\n[![codecov](https://codecov.io/gh/cbonello/flutter_Starter_App/branch/master/graph/badge.svg)](https://codecov.io/gh/cbonello/flutter_Starter_App)\n[![License: MIT](https://img.shields.io/badge/license-MIT-purple.svg)](https://opensource.org/licenses/MIT)\n\nA Flutter starter project that contains splash, sign in, sign up, password reset and email verification.\nit uses Firebase for authentication and the BLoC pattern ([flutter_bloc](https://pub.dev/packages/flutter_bloc) library) for state management.\n\n**Project was only tested on Android and the web ([online demo](https://flutter-starterapp.web.app)).**\n\n## Features\n\n- Sign In (email + password or Google Sign-In).\n- Sign Up.\n- Password reset.\n- Email verification.\n- Firebase Analytics.\n- Flutter web support.\n\n## Setup\n\n[`lib/src/configuration.dart`](./lib/src/configuration.dart) allows you to quickly enable/disable options. \n\n- `kUseGoogleASignIn`: [Google Sign-In](https://pub.dev/packages/google_sign_in); not supported for Flutter web as of now.\n- `kUseFirebaseAnalytics`: [Firebase Analytics](https://pub.dev/packages/firebase_analytics); not supported for Flutter web as of now.\n- `kUseFlutterBlocObserver`: Flutter_bloc [oberver](https://pub.dev/documentation/bloc/latest/bloc/BlocObserver-class.html).\n\n### Steps\n\n1. Create a Firebase project in the [Firebase Console](https://console.firebase.google.com) and add an Android app to the project. Please follow the installation instructions from the [Firebase Auth package](https://pub.dev/packages/firebase_auth).\n1. In the Firebase console, enable Email/Password authentication by doing: **Authentication \u003e SIGN-IN METHOD \u003e Email/Password \u003e Enable \u003e SAVE**\n1. In the Firebase console, enable Google authentication by doing: **Authentication \u003e SIGN-IN METHOD \u003e Google \u003e Enable \u003e SAVE**\n1. In the Firebase console, update the email address verification template by doing: **Authentication \u003e TEMPLATES \u003e Email address verification**\n1. In the Firebase console, update the password reset template by doing: **Authentication \u003e TEMPLATES \u003e Password reset**\n\n### Additional Steps for Flutter Web\n\n**Important:**\nYou need the latest version of the Flutter SDK from the beta channel to compile this project. See\n[Building a web application with Flutter](https://flutter.dev/docs/get-started/web).\n\n1. Add web support by running (restart your IDE aftert running the command):\n```bash\nflutter config --enable-web\n```\n2. Rename ```web/SAMPLE_firebase.js``` as ```web/firebase.js``` and update its content with the Firebase SDK snippet\nfrom the Firebase Console (see [Resources](#Resources)).\n1. Follow the instructions from [google_sign_in_web README](https://pub.dev/packages/google_sign_in_web) and include your OAuth ID to ```web/index.html```, line 42.\n1. Check this [stackoverflow thread](https://stackoverflow.com/questions/59480956/browser-or-app-may-not-be-secure-try-using-a-different-browser-error-with-fl) if you encounter the “Browser or app may not be secure. Try using a different browser.” error with Google Sign-In.\n\n#### Resources\n\n- [Add Firebase to your JavaScript project](https://firebase.google.com/docs/web/setup#from-the-cdn)\n- [firebase_auth README](https://pub.dev/packages/firebase_auth)\n- [firebase_auth_web README](https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_auth/firebase_auth_web/README.md)\n- [google_sign_in_web README](https://pub.dev/packages/google_sign_in_web)\n- thehappyharis, [Flutter Web: Google Sign In](https://www.youtube.com/watch?time_continue=752\u0026v=E8kgHqEz6fs\u0026feature=emb_logo)\n\n## Screenshots\n\nSign In Screen | Sign Up Screen\n--- | ---\n![Sign In Screen](/screenshots/signin_screen_light.png?raw=true \"Sign In Screen\") | ![Sign Up Screen](/screenshots/signup_screen_dark.png?raw=true \"Sign Up Screen\")\n\nPassword Reset Screen | Home Screen\n--- | ---\n![Sign In Screen](/screenshots/password_reset_screen_light.png?raw=true \"Sign In Screen\") | ![Sign Up Screen](/screenshots/home_screen_dark.png?raw=true \"Sign Up Screen\")\n\n## Learn More on Flutter\n\nHere are a few resources to get you started if you are new to Flutter:\n\n- [Official Flutter documentation](https://flutter.dev/docs)\n- [Flutter youtube channel](https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw)\n- [Lab: Write your first Flutter app](https://flutter.io/docs/get-started/codelab)\n- [Cookbook: Useful Flutter samples](https://flutter.io/docs/cookbook)\n\n## General Resources\n\n- Stack Overflow, [How to change package name in flutter?](https://stackoverflow.com/questions/51534616/how-to-change-package-name-in-flutter#answer-51550358)\n- Felix Angelov, [flutter_bloc: Flutter Firebase Login Tutorial](https://bloclibrary.dev/#/flutterfirebaselogintutorial)\n- Remi Rousselet, [Getting Started: Creating Your Flutter Project](https://dash-overflow.net/articles/getting_started/)\n- Ryan Edge, [Dash Tips: Using Bloc with Freezed](https://chimon.hashnode.dev/dash-tips-using-bloc-with-freezed-ck8s5s89000mnhps1zf62m14n)\n- Adam Cooper, [Continuous Integration for Flutter with GitHub Actions](https://admcpr.com/continuous-integration-for-flutter-with-github-actions/)\n- Sam Debruyn, [Easy localization in Flutter with continuous integration](https://debruyn.dev/2019/easy-localization-in-flutter-with-continuous-integration/)\n- Gaspard Merten, [The Flutter Guide to Firebase Analytics](https://medium.com/flutter-community/the-flutter-guide-to-firebase-analytics-9b99c6e27a6)\n- thehappyharis, [Progressive Web App (PWA) in Flutter Web](https://www.youtube.com/watch?v=SvDXytrX1Wc)\n\n## Created \u0026 Maintained by\n\n[Christophe Bonello](https://github.com/cbonello)\n([LinkedIn](https://www.linkedin.com/in/christophe-bonello))\n([Twitter](https://twitter.com/chbonello))\n\n## Contribution Guidelines\n\nThis project is a fully open source project, and contributions are welcome.\n\n## License\n\n```\nCopyright (c) 2020 Christophe Bonello\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbonello%2Fflutter_Starter_App","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbonello%2Fflutter_Starter_App","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbonello%2Fflutter_Starter_App/lists"}