From a6c9e9521147a07881f2a1bd2a66593e3058699d Mon Sep 17 00:00:00 2001
From: Albertus Angga Raharja <albertus.angga@ui.ac.id>
Date: Mon, 23 Mar 2020 10:09:13 +0700
Subject: [PATCH] Init codebase, CI/CD

---
 .firebase/hosting.YnVpbGQvd2Vi.cache          |  14 +
 .firebaserc                                   |   5 +
 .gitignore                                    |  76 ++
 .gitlab-ci.yml                                |  45 ++
 README.md                                     |  61 ++
 analysis_options.yaml                         |   5 +
 android/.gitignore                            |   7 +
 android/app/build.gradle                      |  72 ++
 android/app/google-services.json              |  40 +
 android/app/src/debug/AndroidManifest.xml     |   7 +
 android/app/src/main/AndroidManifest.xml      |  47 ++
 .../com/example/mobile_apps/MainActivity.kt   |   6 +
 .../main/res/drawable/launch_background.xml   |  12 +
 .../src/main/res/mipmap-hdpi/ic_launcher.png  | Bin 0 -> 544 bytes
 .../src/main/res/mipmap-mdpi/ic_launcher.png  | Bin 0 -> 442 bytes
 .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes
 .../main/res/mipmap-xxhdpi/ic_launcher.png    | Bin 0 -> 1031 bytes
 .../main/res/mipmap-xxxhdpi/ic_launcher.png   | Bin 0 -> 1443 bytes
 android/app/src/main/res/values/styles.xml    |  18 +
 android/app/src/profile/AndroidManifest.xml   |   7 +
 android/build.gradle                          |  34 +
 android/gradle.properties                     |   4 +
 .../gradle/wrapper/gradle-wrapper.properties  |   6 +
 android/settings.gradle                       |  15 +
 assets/images/google_logo.png                 | Bin 0 -> 51352 bytes
 firebase.json                                 |  16 +
 ios/.gitignore                                |  32 +
 ios/Flutter/AppFrameworkInfo.plist            |  26 +
 ios/Flutter/Debug.xcconfig                    |   2 +
 ios/Flutter/Release.xcconfig                  |   2 +
 ios/Podfile                                   |  87 +++
 ios/Runner.xcodeproj/project.pbxproj          | 506 +++++++++++++
 .../contents.xcworkspacedata                  |   7 +
 .../xcshareddata/IDEWorkspaceChecks.plist     |   8 +
 .../xcshareddata/WorkspaceSettings.xcsettings |   8 +
 .../xcshareddata/xcschemes/Runner.xcscheme    |  91 +++
 .../contents.xcworkspacedata                  |   7 +
 .../xcshareddata/IDEWorkspaceChecks.plist     |   8 +
 .../xcshareddata/WorkspaceSettings.xcsettings |   8 +
 ios/Runner/AppDelegate.swift                  |  13 +
 .../AppIcon.appiconset/Contents.json          | 122 ++++
 .../Icon-App-1024x1024@1x.png                 | Bin 0 -> 10932 bytes
 .../AppIcon.appiconset/Icon-App-20x20@1x.png  | Bin 0 -> 564 bytes
 .../AppIcon.appiconset/Icon-App-20x20@2x.png  | Bin 0 -> 1283 bytes
 .../AppIcon.appiconset/Icon-App-20x20@3x.png  | Bin 0 -> 1588 bytes
 .../AppIcon.appiconset/Icon-App-29x29@1x.png  | Bin 0 -> 1025 bytes
 .../AppIcon.appiconset/Icon-App-29x29@2x.png  | Bin 0 -> 1716 bytes
 .../AppIcon.appiconset/Icon-App-29x29@3x.png  | Bin 0 -> 1920 bytes
 .../AppIcon.appiconset/Icon-App-40x40@1x.png  | Bin 0 -> 1283 bytes
 .../AppIcon.appiconset/Icon-App-40x40@2x.png  | Bin 0 -> 1895 bytes
 .../AppIcon.appiconset/Icon-App-40x40@3x.png  | Bin 0 -> 2665 bytes
 .../AppIcon.appiconset/Icon-App-60x60@2x.png  | Bin 0 -> 2665 bytes
 .../AppIcon.appiconset/Icon-App-60x60@3x.png  | Bin 0 -> 3831 bytes
 .../AppIcon.appiconset/Icon-App-76x76@1x.png  | Bin 0 -> 1888 bytes
 .../AppIcon.appiconset/Icon-App-76x76@2x.png  | Bin 0 -> 3294 bytes
 .../Icon-App-83.5x83.5@2x.png                 | Bin 0 -> 3612 bytes
 .../LaunchImage.imageset/Contents.json        |  23 +
 .../LaunchImage.imageset/LaunchImage.png      | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/LaunchImage@2x.png   | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/LaunchImage@3x.png   | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/README.md            |   5 +
 ios/Runner/Base.lproj/LaunchScreen.storyboard |  37 +
 ios/Runner/Base.lproj/Main.storyboard         |  26 +
 ios/Runner/Info.plist                         |  45 ++
 ios/Runner/Runner-Bridging-Header.h           |   1 +
 lib/main.dart                                 |   6 +
 lib/src/app.dart                              |  25 +
 lib/src/common/constants.dart                 |   4 +
 lib/src/extensions/scaffold_extension.dart    |  16 +
 lib/src/models/inventory.dart                 |  31 +
 lib/src/models/inventory.g.dart               |  31 +
 .../repositories/inventory_repository.dart    |  14 +
 lib/src/routes.dart                           |  37 +
 lib/src/screens/home/home_screen.dart         |  65 ++
 .../screens/home/inventories/inventories.dart |  48 ++
 .../screens/home/inventories/inventory.dart   |  26 +
 lib/src/screens/login/login_screen.dart       |  89 +++
 lib/src/services/auth_service.dart            |  11 +
 lib/src/theme.dart                            |  44 ++
 pubspec.lock                                  | 691 ++++++++++++++++++
 pubspec.yaml                                  |  93 +++
 test/navigation_test.dart                     |  10 +
 web/favicon.png                               | Bin 0 -> 917 bytes
 web/icons/Icon-192.png                        | Bin 0 -> 5292 bytes
 web/icons/Icon-512.png                        | Bin 0 -> 8252 bytes
 web/index.html                                |  64 ++
 web/manifest.json                             |  23 +
 87 files changed, 2889 insertions(+)
 create mode 100644 .firebase/hosting.YnVpbGQvd2Vi.cache
 create mode 100644 .firebaserc
 create mode 100644 .gitignore
 create mode 100644 .gitlab-ci.yml
 create mode 100644 README.md
 create mode 100644 analysis_options.yaml
 create mode 100644 android/.gitignore
 create mode 100644 android/app/build.gradle
 create mode 100644 android/app/google-services.json
 create mode 100644 android/app/src/debug/AndroidManifest.xml
 create mode 100644 android/app/src/main/AndroidManifest.xml
 create mode 100644 android/app/src/main/kotlin/com/example/mobile_apps/MainActivity.kt
 create mode 100644 android/app/src/main/res/drawable/launch_background.xml
 create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
 create mode 100644 android/app/src/main/res/values/styles.xml
 create mode 100644 android/app/src/profile/AndroidManifest.xml
 create mode 100644 android/build.gradle
 create mode 100644 android/gradle.properties
 create mode 100644 android/gradle/wrapper/gradle-wrapper.properties
 create mode 100644 android/settings.gradle
 create mode 100644 assets/images/google_logo.png
 create mode 100644 firebase.json
 create mode 100644 ios/.gitignore
 create mode 100644 ios/Flutter/AppFrameworkInfo.plist
 create mode 100644 ios/Flutter/Debug.xcconfig
 create mode 100644 ios/Flutter/Release.xcconfig
 create mode 100644 ios/Podfile
 create mode 100644 ios/Runner.xcodeproj/project.pbxproj
 create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
 create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
 create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
 create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata
 create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
 create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
 create mode 100644 ios/Runner/AppDelegate.swift
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
 create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
 create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard
 create mode 100644 ios/Runner/Base.lproj/Main.storyboard
 create mode 100644 ios/Runner/Info.plist
 create mode 100644 ios/Runner/Runner-Bridging-Header.h
 create mode 100644 lib/main.dart
 create mode 100644 lib/src/app.dart
 create mode 100644 lib/src/common/constants.dart
 create mode 100644 lib/src/extensions/scaffold_extension.dart
 create mode 100644 lib/src/models/inventory.dart
 create mode 100644 lib/src/models/inventory.g.dart
 create mode 100644 lib/src/repositories/inventory_repository.dart
 create mode 100644 lib/src/routes.dart
 create mode 100644 lib/src/screens/home/home_screen.dart
 create mode 100644 lib/src/screens/home/inventories/inventories.dart
 create mode 100644 lib/src/screens/home/inventories/inventory.dart
 create mode 100644 lib/src/screens/login/login_screen.dart
 create mode 100644 lib/src/services/auth_service.dart
 create mode 100644 lib/src/theme.dart
 create mode 100644 pubspec.lock
 create mode 100644 pubspec.yaml
 create mode 100644 test/navigation_test.dart
 create mode 100644 web/favicon.png
 create mode 100644 web/icons/Icon-192.png
 create mode 100644 web/icons/Icon-512.png
 create mode 100644 web/index.html
 create mode 100644 web/manifest.json

diff --git a/.firebase/hosting.YnVpbGQvd2Vi.cache b/.firebase/hosting.YnVpbGQvd2Vi.cache
new file mode 100644
index 0000000..9c0a10e
--- /dev/null
+++ b/.firebase/hosting.YnVpbGQvd2Vi.cache
@@ -0,0 +1,14 @@
+favicon.png,1584779381428,fcc7c4545d5b62ad01682589e6fdc7ea03d0a3b42069963c815c344b632eb5cf
+flutter_service_worker.js,1584901267607,8f801cedfa47876022973baf2c58466ca901503e035e0ecc23be15a326912675
+manifest.json,1584783582956,ec5652f2a192fb913800fb92fafcd77941e2d9c4fade39fe6c7abac9ed9e3170
+assets/AssetManifest.json,1584901267102,3483c0e5487d0a84a9d3ed20281d4ba7800154bc6194d426987fb0187fc24a31
+assets/FontManifest.json,1584901267102,9cd4a4d214a9fce72dd36c28e1ef4a60895d922bc0e25613a2539a6fdd1a3921
+index.html,1584893603570,ccae05411f7685dde888dba2a5c76d0e7f6e9fee83f6c2febf4734eac8d0287f
+icons/Icon-192.png,1584779381428,d2e0131bb7851eb9d98f7885edb5ae4b4d6b7a6c7addf8a25b9b712b39274c0f
+icons/Icon-512.png,1584779381428,7a31ce91e554f1941158ca46f31c7f3f2b7c8c129229ea74a8fae1affe335033
+assets/assets/images/google_logo.png,1584889755884,617c12e1e5d33f572e0e819bacad57d66b0e8292fd07aa04fe7c21746852ffb9
+assets/packages/cupertino_icons/assets/CupertinoIcons.ttf,1575319380000,3d5615fc7a84c016d70e93141c13a613fda9babcede78918fbd190f0b9d5b578
+assets/fonts/MaterialIcons-Regular.ttf,1475273174000,49f9a5d2c31ecd331d178c6c3d587181ce635721e46240a8547f0a5374f3257d
+assets/LICENSE,1584901267102,83612489337a65c2e762255b27a9298c3c3940c6b67b2af5ebe0374643ab2d69
+main.dart.js,1584901264058,3bf3fedd30adf74c89a82ba23ec682abd2e30b49dd0a7ea0283f189d5513b76e
+main.dart.js.map,1584901264389,5a03322124ee86bbff8700cb6b220a4aea0a40db520d7be4b0e0ec4e99f559d8
diff --git a/.firebaserc b/.firebaserc
new file mode 100644
index 0000000..593ffa9
--- /dev/null
+++ b/.firebaserc
@@ -0,0 +1,5 @@
+{
+  "projects": {
+    "default": "corona-fasilkom"
+  }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8003b58
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,76 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# Visual Studio Code related
+.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+.dart_tool/
+.flutter-plugins
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Android related
+**/android/**/gradle-wrapper.jar
+**/android/.gradle
+**/android/captures/
+**/android/gradlew
+**/android/gradlew.bat
+**/android/local.properties
+**/android/**/GeneratedPluginRegistrant.java
+
+# iOS/XCode related
+**/ios/**/*.mode1v3
+**/ios/**/*.mode2v3
+**/ios/**/*.moved-aside
+**/ios/**/*.pbxuser
+**/ios/**/*.perspectivev3
+**/ios/**/*sync/
+**/ios/**/.sconsign.dblite
+**/ios/**/.tags*
+**/ios/**/.vagrant/
+**/ios/**/DerivedData/
+**/ios/**/Icon?
+**/ios/**/Pods/
+**/ios/**/.symlinks/
+**/ios/**/profile
+**/ios/**/xcuserdata
+**/ios/.generated/
+**/ios/Flutter/App.framework
+**/ios/Flutter/Flutter.framework
+**/ios/Flutter/Generated.xcconfig
+**/ios/Flutter/app.flx
+**/ios/Flutter/app.zip
+**/ios/Flutter/flutter_assets/
+**/ios/ServiceDefinitions.json
+**/ios/Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!**/ios/**/default.mode1v3
+!**/ios/**/default.mode2v3
+!**/ios/**/default.pbxuser
+!**/ios/**/default.perspectivev3
+!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
+
+# Plugins generated file
+.flutter-plugins
+.flutter-plugins-dependencies
+
+lib/generated_plugin_registrant.dart
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..5eb8514
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,45 @@
+stages:
+  - lint
+  - test
+  - build
+  - deploy
+
+lint:
+  stage: lint
+  image: cirrusci/flutter:v1.15.3-web
+  script:
+    - flutter analyze
+
+test:
+  stage: test
+  image: cirrusci/flutter:v1.15.3-web
+  stage: test
+  coverage: '/lines......: \d+\.\d+\%/'
+  script:
+    - flutter test --coverage
+    - lcov --list coverage/lcov.info
+    - genhtml coverage/lcov.info --output=coverage
+  artifacts:
+    paths:
+      - coverage
+
+build-web:
+  stage: build
+  image: cirrusci/flutter:v1.15.3-web
+  script:
+    - flutter config --enable-web
+    - flutter build web --release
+  artifacts:
+    paths:
+      - build/web
+
+deploy:
+  stage: deploy
+  image: andreysenov/firebase-tools:latest
+  script:
+    # This line enables using experimental Skia rendering engine to massively increase Flutter Web performance!
+    # Remove this line if encounter any issue with rendering.
+    - FLUTTER_WEB_USE_SKIA=true
+    - TOKEN="1//0g6T_ox804J8zCgYIARAAGBASNwF-L9IruWNUi840C2WIKLKyZ5zc5ZveCpsbkCeXOeI8YAc_Gly1HynegIbXzXvUCGjiwI2NsVw"
+    - firebase use corona-fasilkom --token $TOKEN
+    - firebase deploy --only hosting -m "Pipe $CI_PIPELINE_ID Build $CI_BUILD_ID" --token $TOKEN
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9798488
--- /dev/null
+++ b/README.md
@@ -0,0 +1,61 @@
+# Fasilkom COVID-19 Project
+A health care equipment marketplace to help COVID-19 situation.
+
+## Getting Started
+1. Install Flutter by following instructions in [Flutter.dev documentation](https://flutter.dev/docs/get-started/install)
+2. Add flutter to your $PATH if you have not done so
+3. Switch channel to `beta` to allow compiling to Web by running
+```bash
+flutter channel beta && flutter upgrade`
+```
+4. Run this command to enable compiling to Web
+```bash
+flutter config --enable-web
+```
+5. Run this application in Chrome by running
+```bash
+flutter run -d chrome
+```
+6. Enjoy the benefit of Flutter development! You can do hot reload by pressing r (small r) in the terminal and hot restart by pressing R (capital r), but if you 
+
+## Using Text Editor or IDE
+For Flutter development, you can both use VSCode or IntelliJ Idea.
+You can also select the devices that you want to target using VSCode or IntelliJ Idea.
+In VSCode, you can select the devices in the bottom right of the Editor.
+In IntelliJ, there will be Dropdown menu beside the start button.
+
+## Setting up different Firebase App
+For using different Firebase App than the one that is used in this project do:
+- Android: Change `android/app/google-services.json` with your own `google-services.json` file
+- Web: Change `firebaseConfig` variables in `web/index.html` with your own config from your Firebase console
+- iOS: TODO
+
+## Style Guide
+This codebase will use [Effective Dart](https://dart.dev/guides/language/effective-dart) style guide as it's primary source of truth for linting. To achieve strictness of code quality, we use [pedantic](https://pub.dev/packages/pedantic), the package that is used in Google for ensuring code quality and consistency.
+If someday in the future we disagree with the convention, please edit `analysis_options.yaml`
+
+
+## Generate JSON Model (Serializer/Deserializer) Class using pub runner
+Serializing and deserializing is easy in Flutter because of package `dart:convert`, but using that package requires us to create boilerplate code that tells what JSON key will map to what attribute. Hence, this is not a scalable solution for building a large app.
+
+To make a new JSON model, we can just import `json_annotations` and declare the class with `@JsonSerializable()` (see example in `models/` directory), but we need code generator to run in our terminal generate the code for us so that we don't have to. To do this, please run:
+```bash
+flutter pub run build_runner build
+```
+
+Script above works for building the code one time, so everytime we make a changes to the models class, we have to run the script again. To avoid doing that, we can run it in watch mode by using:
+```bash
+flutter pub run build_runner watch
+```
+
+And voila! Flutter will generate the model code for us.
+
+For more info about JSON serialization head over to [this documentation](https://flutter.dev/docs/development/data-and-backend/json).
+
+## Architecture/State Management Guide
+This Flutter app uses a library called [provider](https://pub.dev/packages/provider) for managing it's state.
+Why Provider? Because it is very simple and relatively easier to learn compared to state management patterns like Redux, MobX, etc.
+The idea of Provider is actually very simple: Lift the state of a Widget up to the Provider, and make it accessible to all Widget that are descendants of the Provider widget. 
+According to the author, provider is a mixture between dependency injection and state management, built with widgets for widgets.
+If you think that Provider is not clean enough to manage the state, you can combine it by using BLoC Pattern, this pattern is recommended by the Google Flutter team on the Google I/O event.
+For more tutorial about Provider pattern, please check out [this link](https://flutter.dev/docs/development/data-and-backend/state-mgmt/simple).
diff --git a/analysis_options.yaml b/analysis_options.yaml
new file mode 100644
index 0000000..6535cfe
--- /dev/null
+++ b/analysis_options.yaml
@@ -0,0 +1,5 @@
+include: package:pedantic/analysis_options.yaml
+
+analyzer:
+  exclude:
+    - "**/*.g.dart"
diff --git a/android/.gitignore b/android/.gitignore
new file mode 100644
index 0000000..bc2100d
--- /dev/null
+++ b/android/.gitignore
@@ -0,0 +1,7 @@
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
+/local.properties
+GeneratedPluginRegistrant.java
diff --git a/android/app/build.gradle b/android/app/build.gradle
new file mode 100644
index 0000000..f39456d
--- /dev/null
+++ b/android/app/build.gradle
@@ -0,0 +1,72 @@
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file('local.properties')
+if (localPropertiesFile.exists()) {
+    localPropertiesFile.withReader('UTF-8') { reader ->
+        localProperties.load(reader)
+    }
+}
+
+def flutterRoot = localProperties.getProperty('flutter.sdk')
+if (flutterRoot == null) {
+    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
+}
+
+def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
+if (flutterVersionCode == null) {
+    flutterVersionCode = '1'
+}
+
+def flutterVersionName = localProperties.getProperty('flutter.versionName')
+if (flutterVersionName == null) {
+    flutterVersionName = '1.0'
+}
+
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
+
+// Apply plugin for Firebase
+apply plugin: 'com.google.gms.google-services'
+
+android {
+    compileSdkVersion 28
+
+    sourceSets {
+        main.java.srcDirs += 'src/main/kotlin'
+    }
+
+    lintOptions {
+        disable 'InvalidPackage'
+    }
+
+    defaultConfig {
+        // TODO: Change this application ID to proper ID
+        applicationId "id.ui.cs.coronafasilkom"
+        minSdkVersion 16
+        targetSdkVersion 28
+        versionCode flutterVersionCode.toInteger()
+        versionName flutterVersionName
+
+        // This is required to add cloud_firestore plugin
+        multiDexEnabled true
+    }
+
+    buildTypes {
+        release {
+            // TODO: For Google SignIn to work we have to add SHA1 fingerprint to Firebase console
+            // See https://developers.google.com/android/guides/client-auth to get each of our own SHA1 fingerprint
+
+            // TODO: Add your own signing config for the release build.
+            // Signing with the debug keys for now, so `flutter run --release` works.
+            signingConfig signingConfigs.debug
+        }
+    }
+}
+
+flutter {
+    source '../..'
+}
+
+dependencies {
+    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+}
diff --git a/android/app/google-services.json b/android/app/google-services.json
new file mode 100644
index 0000000..853355a
--- /dev/null
+++ b/android/app/google-services.json
@@ -0,0 +1,40 @@
+{
+  "project_info": {
+    "project_number": "341221363005",
+    "firebase_url": "https://corona-fasilkom.firebaseio.com",
+    "project_id": "corona-fasilkom",
+    "storage_bucket": "corona-fasilkom.appspot.com"
+  },
+  "client": [
+    {
+      "client_info": {
+        "mobilesdk_app_id": "1:341221363005:android:e6e1521d7317cbc4a7c954",
+        "android_client_info": {
+          "package_name": "id.ui.cs.coronafasilkom"
+        }
+      },
+      "oauth_client": [
+        {
+          "client_id": "341221363005-ev5ijn7e8vn3qnrgjtmfjci5an4mtjij.apps.googleusercontent.com",
+          "client_type": 3
+        }
+      ],
+      "api_key": [
+        {
+          "current_key": "AIzaSyCxcEQkWjDlolAzS9dFvq9viW8ghRlOcpQ"
+        }
+      ],
+      "services": {
+        "appinvite_service": {
+          "other_platform_oauth_client": [
+            {
+              "client_id": "341221363005-ev5ijn7e8vn3qnrgjtmfjci5an4mtjij.apps.googleusercontent.com",
+              "client_type": 3
+            }
+          ]
+        }
+      }
+    }
+  ],
+  "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..080e574
--- /dev/null
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.mobile_apps">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..36de621
--- /dev/null
+++ b/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,47 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.mobile_apps">
+    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
+         calls FlutterMain.startInitialization(this); in its onCreate method.
+         In most cases you can leave this as-is, but you if you want to provide
+         additional functionality it is fine to subclass or reimplement
+         FlutterApplication and put your custom class here. -->
+    <application
+        android:name="io.flutter.app.FlutterApplication"
+        android:label="mobile_apps"
+        android:icon="@mipmap/ic_launcher">
+        <activity
+            android:name=".MainActivity"
+            android:launchMode="singleTop"
+            android:theme="@style/LaunchTheme"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
+            android:hardwareAccelerated="true"
+            android:windowSoftInputMode="adjustResize">
+            <!-- Specifies an Android theme to apply to this Activity as soon as
+                 the Android process has started. This theme is visible to the user
+                 while the Flutter UI initializes. After that, this theme continues
+                 to determine the Window background behind the Flutter UI. -->
+            <meta-data
+              android:name="io.flutter.embedding.android.NormalTheme"
+              android:resource="@style/NormalTheme"
+              />
+            <!-- Displays an Android View that continues showing the launch screen
+                 Drawable until Flutter paints its first frame, then this splash
+                 screen fades out. A splash screen is useful to avoid any visual
+                 gap between the end of Android's launch screen and the painting of
+                 Flutter's first frame. -->
+            <meta-data
+              android:name="io.flutter.embedding.android.SplashScreenDrawable"
+              android:resource="@drawable/launch_background"
+              />
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+        <!-- Don't delete the meta-data below.
+             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
+        <meta-data
+            android:name="flutterEmbedding"
+            android:value="2" />
+    </application>
+</manifest>
diff --git a/android/app/src/main/kotlin/com/example/mobile_apps/MainActivity.kt b/android/app/src/main/kotlin/com/example/mobile_apps/MainActivity.kt
new file mode 100644
index 0000000..5675817
--- /dev/null
+++ b/android/app/src/main/kotlin/com/example/mobile_apps/MainActivity.kt
@@ -0,0 +1,6 @@
+package com.example.mobile_apps
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity() {
+}
diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml
new file mode 100644
index 0000000..304732f
--- /dev/null
+++ b/android/app/src/main/res/drawable/launch_background.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@android:color/white" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29
GIT binary patch
literal 544
zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84rT@hh9qO>QU(SF$r9IylHmNblJdl&R0hYC
z{G?O`&)mfH)S%SFl*+=BsWuD@4C?}XLR=Xb7#RJ!7{h04Zu=H;^aq4w44VZJaXaum
z<miu(qdyqKW-^A)mMB{aQDD37F@sSggGCCXwl||eFr!@_qg_6udp)CP6QfT%$Uwht
zM!z1$z=@1OlNf_0GX_s#44uvxI)gE62H0?r`ApX7Ob!K1&SgxV4a~l6%>G@>0o`I5
z6U6gpN>(hBs@ovlyiK}omrVN}&28UY_JdsVcA=Cl0|SF_NswPKgMfg5KtMnO2sE4r
zf%}pIPku2lFue41aSVw#{PxUsz9t6&hrp0GdlTMw^~h@f`fs1s!olsWbZ#C0v7PJ9
zExVjNeb(Ol`RU07XFf|X@qSK7qke0_C&kUH>MnD(8u-m<DX!pr&7!*J@$?w=?>i5B
zt(&|xZ@%@sBNk%nt_5+E&U1QAlyT>>sMB2Zd5T5*R3&Sld5=98o%0qdm+@@-JjKB8
z(xcUiGOB?O=e)LCdt!o~wXBiQlFwyn4J<FWNWSJ4nBMpL;FUI(rH3~e&pDIh;bAoU
ztzZ2bW)81qVfkN|u{A76$?AP4bE6=r(zGc-Lo<wJg7Q&smA|XLthZ(8RZ(WK&f9r_
Qfq{X+)78&qol`;+05GG~Q2+n{

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be
GIT binary patch
literal 442
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFmwg@gt#&=FffMC4mtWmbKAF&qdyqKXG0ipk&vT5
zAmZ%d{SXF=bCKq@Z-GZZ;tV#~j83JDzFmxd-Hahq8AGNqhE8V;o5>h9i!po_WB6=l
zU2kT?Kvt(bR^JA;;7+;DUGlvL6sMk6nsrHO&Q;BA-wby`jSBSdXJueu5G@Jv3uX`y
zP*5;1FzBB@fBpXR=g+?ff&5MV!VC-yOFdm2Lp+YZy>e2h$w0vMVh8iNMNLhM)++IJ
z{QqCg*LgRGXKpKZaOLSMJFo8MNc{figWv3mbJp+w<kyyaNLPH_7hlO)dzZ0qy_k(Z
z>-BoBm(|-hT|4dcbJ2lEyX!??Y`jpZ81*D{;rF6b`?;0>>pbJRKPRw2)?8wK8GH9>
zL)n=k&vkA#ITl(SS<U;QyJmmHI>sBW`??>AG{pM|AK2Jc#t<e_zlr_!#IRdOVook+
QU|?YIboFyt=akR{0OC)($p8QV

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..09d4391482be68e9e4a07fab769b5de337d16eb1
GIT binary patch
literal 721
zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4rT@hhO2JvAPLD5*NBqf{Irtt#G+IN$CUh}
zR0Yr6#Prml)Wnp^!jq{s3=9n40(?ST85kHsj{eZx_Kne_fiZlx=C*GkM}LGI{lOSM
zJLKpO-pGCkS99Ap_k-UdY{uXzjN!Aza;8BPGwAv==mjz8hcFm~FxcfWYPvCMc`=&B
zF`6eaTBI;qXENFsFgg@5I+ifHRx`TQGP>6>y4N#$)H8ZEGkUc!`m{6pbTImMF#2{f
z`gJk-_b~?aGX_m$44TXsJQ-wH$W+GA>5O4B7{g{VhRtFOpT!tHo5?tW$tsn}K99+{
zjLE&4*|Uz>tC88eNi3sZJbQ{n(LBkD<x;ilq#8F%H*b?}-67q!OSbEP=C*Gx`$4`a
z+^}{50|SFtNswPKgMfm8fq_9lLP9}7!~FU4&%XzO-7Kks3=E9^o-U3d8Ta1ayzY0{
zL7?@agT}(|SylOrK1ofFmnI8kJ@^~XcG_jy^?RKu*=(E^&#S)H&w8yZvf=)&eKY-w
zm|raJxBG=m{J;Op`S6opmcNp}?EbiJ|LylI8@^a`_|yg^ycT9kzOS+28!uC_y=una
zz_vQ43%``t^0)0%Q~9Oqb>d1t=Sn-plsE283-d*czTa-zm@iQD#kujt@|Kvt4hp|H
z71QJA-@DE-vCc=}m3vdfeqD}l&W>B;IduNM%M_}RPx;yPVrk2E_T?&?d+vqXsA}xF
zGk52_Ny78;-$vOoENNLjTll#WOG?YLuZ?eO;uVxk)@?h*_~6>qo(~l}_f@BaD>p=c
zm>y<U&gZXf>aWRpaQm|`^KGX?!;c=*_;Kycp<DlUdiD5zSo`y6a;n5+gROg>Yksb1
rdBk${xlomwC<})`ozH<A-&hmd*~)g$ZRcZPU|{fc^>bP0l+XkKcl<5t

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c
GIT binary patch
literal 1031
zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H9Lx+13>Rhybuln7NS3%plmzFem6RtIr7}3C
z<R_&nc;+Uirv{}arc@T5OtoQPU<?lM32|j$V9?z5E#&AA2-4j4jWK94WB6=Nj{=Ce
zWWgfMZQrc+d=EMLgF(ZcLED!>$Dctjh(SM?K|h4SAdJB{hQT_6!9JhSFr3jep3y9U
z(L9OKDxJ|flhG!d(I$t{HiywRm(ebd(Y}z;v6#`Zgwd&#(Yb=rrHawDn$fL>(XE!z
zt&Y*Xj?trm(W8;kvysuWiP5u}(X)lotC`WOh0&*-(Wisaw}a8QlhLo6(XWTmzlYJk
zmocD^F|eO8Z~|lCM8?2Lj6o9_gC>F8A3T{ccnV|4RK}2LjG@yRLuW9C&0q|h$rv_^
zF?<$d_-uBwU=HgjPRC?Uw`?x2A}+rQ?!a2^kVfvX7VhwN?#NE=s4niP9-inPl?69d
z7T#1{bVqf`J=LWT)RsR~Tk%+J<rB4)Pt{gEQ(OH^ZS`|?5PG4x?VBYylx82DV9LP2
zz+V#N7tA0a;E>QT9|ZQFKYxDR#LKT37?|`uT^vIyZoR#b9vmDf()v(?iz7_L)oF78
zkJJ<)r<N9%0|$JqH#XSb$PoJRf4+y|q?Y3Mca3Ad+3~&pyDx2Cq@BDI+qFWEwajuA
z4;tBtBK{elKPpyaGw=12pQ;rPEUWotk33QAzG34cxVT*<>8pUt8M$!5-N#*39u$gn
zR>-(G$wg0`aolam=a?PG9$oC(GH>-!X0d*^l*gJvuFJp95x7~EvFLL3EEhhxt`pq;
z%_lBC*86lUSiR`uj?O)w{s`}^n&Wz}@?RH+ochG+^SU~oY!t72t=ZWjXFc({Ty9i<
zoXX3Kohi2Ju9xPeP296QFr{gETuR&Xh?K77YDUL{MQ1+I?2fS6ciP3jaR24wmqlki
zKfgU-wdbO}>o1>vX;$n~9ltDoY4ItEi|?MFbkSNqMRU<y|MTK&bIwUz{B}H{#59<7
zroydX0u?)xQa9b?@`(FVovb6{AN5koBkD_bt%XSJD)y6Ib^Gc?=5*_tH>kMU-}~Bs
z)+NdN<kpgB5-RGy{$2ZDVI$J1wo0M!;<MSmnHT$~D_#8YI&}3vMa4kH`pxATB{f-P
z3t7BUL!FrxIsH2}cOScQ<H?&pk3<Q(JB56@^Xi?n44==@ATROFE8e_(_07IUFuZJI
zm)5-7wuw(g7O!}-(>zgg`VE)XKX=tVT|2z5{L4{YJjHWS*rIm-E6Ws`IFvdRnm87H
fR&jd1QhDAN-h`R^uRUjAU|{fc^>bP0l+XkKAv&s=

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0
GIT binary patch
literal 1443
zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFy0FA32|j$U<f(-Bjo50M(1+Iz=@1uvlzo?Yi|1%
za`cB-@^pxl=C*H)-ffKD?Tn$*8N+9b<xJDu_DyFyNDYIg2ZN3ugN{FgZUBQ`AcI~I
zgMKiBeh7m>7=vLLgJC#>aTJ4T9D`W`gLwjjbtZ#N4x^eAqnb0LmM5cOIHO54qe%>-
zNi3sjJfm3xqeU{KMGB*38lzP@qg4i@bta=t7NczrqirsuT`r?t9;018qkTT3eF39G
z5u;-<qhkr9Qz@fU8KX-jqe~T|YZaqwHKSV%qkA2rdp)B^1EWVHqh}MNXEUQ$Gox1v
zqgN}VcMGF;E7Uta?TkJhj6R)=z8#Fdos7O+jDB5=e%*|IJ&gW6jQ+ih0ey@C{fq$<
z7z6tm11EsOCukyL&?Ls-NsPgh8H1-V22W)SnZg({l`&)*W9T$c_=L`244ugsHiI#2
zCO9xb;mM@u&tw?JWD?C}p1@?4!eo=dWS7n4kjLa$$mCSa<Xp<+QpV(3!Q@uS<W|Mx
zUL}^%FP1q$Ja?LS!EA}*`I2ReB`cRpR<Dw(T`N_;L8@Vsbki2;=55j~+ofA~NVo2k
zZrdf(wp+gY03=>~4uK+6lW`UY0|SF-NswPKgMfko7&thbzyBTz-gcI+Wnf^o^K@|x
zskrs_3VX0{ph#Pyi^G})N%|2R%{L?-ZV(U%Y+lqcfu(WAio}U)uIrV(+3WUaecD+A
zmQ6SJem|G<Y|hO0zZt9Nm6w%qa~bfQe(k0G@73BxB6U9=w#!qC$o$Qnp1E#9Tm0{Z
zo0lKtxBv5@_+$3{MUSrUbvwSkynj;sb0yvVzkIXmuCD&_C#ziZSE%0QFQ@M>do_Kp
z-*x@+`J3Y19B#kQTkx(t_`-K<>p6dn#rh_GuokuWC9d+nXX1zFdIcZVw{qEhc&=6O
z^|eUFqwV?=KCBk6c(Pr4!l%_@70=G=P581}wBp75D22D-njfy%?{qk*AOB#Z{bq-g
z`q2+|)-Q6ns2@Io{eMN{rubzF`u|EA+wSjG@UL6#aQc1N1oQe;4(H#;OmN?SS>~@F
ztIeOC+&g|0i+=ccTfE@YZP5>((!~ot`|Cb<K0oHb#rcs3F53qlxN0AF;QD;M2XD4>
zb^PFdrt<Y$wHojKchWz;7Uc;(Z<?=v>-VXypJEaJ95?T2$v)Ws{O#V4Ednvz`|Pb}
zf4VOe!@bWom-}e`tT2YtP3!%mny<H?DPcI=q~9OCYq6V>=z+}-K6mV2ZEt5Icwo(g
z%Zr!wX>UAuh9QhqUj7<;)5IBxDQpH>KRz6|eoM6P*rQ_`EdPlXYgN?$U-3W2|NYf9
z3~H?J-^u1!lq%j3KgpL6_~F~TxcJXA&m~w0?N0Rh)m167XXobE9?sqiHmlnth&$|i
z@b&H6->;<n*{pUSW)9rV@Q8K2S^mw~*V#FiwHvLk$nTx@ub=DSvV@Y$lX9=NuW9Hz
zz0mHpeOA|-i@FkPqqY>epMCgPeb()B(Tr|RH~O+1PwlVxdT!ROU2OGQ3PvhLeQAwP
z<HL5Y`*mPrRekss5x>O|AMWqpQ}lM;-?Ix_3Z(ZoZK*%HiZ|EUDeVf^rGH<21r@EM
zSf|zZ`p5aNP1ut4@|gFs0GYW>Kcl68^QPJ_Y<l^5%bymmu2W$0H0$RkA&~_PtQroC
lTmcPCQ07b~p2b`1KQB5V5V4<OEdv7sgQu&X%Q~loCIB3;a@_y`

literal 0
HcmV?d00001

diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..1f83a33
--- /dev/null
+++ b/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- Theme applied to the Android Window while the process is starting -->
+    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             Flutter draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <!-- Theme applied to the Android Window as soon as the process has started.
+         This theme determines the color of the Android Window while your
+         Flutter UI initializes, as well as behind your Flutter UI while its
+         running.
+         
+         This Theme is only used starting with V2 of Flutter's Android embedding. -->
+    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <item name="android:windowBackground">@android:color/white</item>
+    </style>
+</resources>
diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml
new file mode 100644
index 0000000..080e574
--- /dev/null
+++ b/android/app/src/profile/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.mobile_apps">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>
diff --git a/android/build.gradle b/android/build.gradle
new file mode 100644
index 0000000..aae9990
--- /dev/null
+++ b/android/build.gradle
@@ -0,0 +1,34 @@
+buildscript {
+    ext.kotlin_version = '1.3.50'
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.5.0'
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+        
+        // Depedency for Firebase
+        classpath 'com.google.gms:google-services:4.3.3'
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+    }
+}
+
+rootProject.buildDir = '../build'
+subprojects {
+    project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
+    project.evaluationDependsOn(':app')
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
diff --git a/android/gradle.properties b/android/gradle.properties
new file mode 100644
index 0000000..ecdde07
--- /dev/null
+++ b/android/gradle.properties
@@ -0,0 +1,4 @@
+org.gradle.jvmargs=-Xmx4608m
+android.enableR8=true
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..296b146
--- /dev/null
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Jun 23 08:50:38 CEST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
diff --git a/android/settings.gradle b/android/settings.gradle
new file mode 100644
index 0000000..5a2f14f
--- /dev/null
+++ b/android/settings.gradle
@@ -0,0 +1,15 @@
+include ':app'
+
+def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
+
+def plugins = new Properties()
+def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
+if (pluginsFile.exists()) {
+    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
+}
+
+plugins.each { name, path ->
+    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
+    include ":$name"
+    project(":$name").projectDir = pluginDirectory
+}
diff --git a/assets/images/google_logo.png b/assets/images/google_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..96c2b56a3e81740b9e0dbcd09d14fca604a7e89f
GIT binary patch
literal 51352
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

literal 0
HcmV?d00001

diff --git a/firebase.json b/firebase.json
new file mode 100644
index 0000000..6603732
--- /dev/null
+++ b/firebase.json
@@ -0,0 +1,16 @@
+{
+  "hosting": {
+    "public": "build/web",
+    "ignore": [
+      "firebase.json",
+      "**/.*",
+      "**/node_modules/**"
+    ],
+    "rewrites": [
+      {
+        "source": "**",
+        "destination": "/index.html"
+      }
+    ]
+  }
+}
diff --git a/ios/.gitignore b/ios/.gitignore
new file mode 100644
index 0000000..e96ef60
--- /dev/null
+++ b/ios/.gitignore
@@ -0,0 +1,32 @@
+*.mode1v3
+*.mode2v3
+*.moved-aside
+*.pbxuser
+*.perspectivev3
+**/*sync/
+.sconsign.dblite
+.tags*
+**/.vagrant/
+**/DerivedData/
+Icon?
+**/Pods/
+**/.symlinks/
+profile
+xcuserdata
+**/.generated/
+Flutter/App.framework
+Flutter/Flutter.framework
+Flutter/Flutter.podspec
+Flutter/Generated.xcconfig
+Flutter/app.flx
+Flutter/app.zip
+Flutter/flutter_assets/
+Flutter/flutter_export_environment.sh
+ServiceDefinitions.json
+Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!default.mode1v3
+!default.mode2v3
+!default.pbxuser
+!default.perspectivev3
diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
new file mode 100644
index 0000000..6b4c0f7
--- /dev/null
+++ b/ios/Flutter/AppFrameworkInfo.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>$(DEVELOPMENT_LANGUAGE)</string>
+  <key>CFBundleExecutable</key>
+  <string>App</string>
+  <key>CFBundleIdentifier</key>
+  <string>io.flutter.flutter.app</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>App</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>1.0</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1.0</string>
+  <key>MinimumOSVersion</key>
+  <string>8.0</string>
+</dict>
+</plist>
diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig
new file mode 100644
index 0000000..e8efba1
--- /dev/null
+++ b/ios/Flutter/Debug.xcconfig
@@ -0,0 +1,2 @@
+#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
+#include "Generated.xcconfig"
diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig
new file mode 100644
index 0000000..399e934
--- /dev/null
+++ b/ios/Flutter/Release.xcconfig
@@ -0,0 +1,2 @@
+#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
+#include "Generated.xcconfig"
diff --git a/ios/Podfile b/ios/Podfile
new file mode 100644
index 0000000..6697f0a
--- /dev/null
+++ b/ios/Podfile
@@ -0,0 +1,87 @@
+# Uncomment this line to define a global platform for your project
+# platform :ios, '9.0'
+
+# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
+ENV['COCOAPODS_DISABLE_STATS'] = 'true'
+
+project 'Runner', {
+  'Debug' => :debug,
+  'Profile' => :release,
+  'Release' => :release,
+}
+
+def parse_KV_file(file, separator='=')
+  file_abs_path = File.expand_path(file)
+  if !File.exists? file_abs_path
+    return [];
+  end
+  generated_key_values = {}
+  skip_line_start_symbols = ["#", "/"]
+  File.foreach(file_abs_path) do |line|
+    next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
+    plugin = line.split(pattern=separator)
+    if plugin.length == 2
+      podname = plugin[0].strip()
+      path = plugin[1].strip()
+      podpath = File.expand_path("#{path}", file_abs_path)
+      generated_key_values[podname] = podpath
+    else
+      puts "Invalid plugin specification: #{line}"
+    end
+  end
+  generated_key_values
+end
+
+target 'Runner' do
+  use_frameworks!
+  use_modular_headers!
+
+  # Flutter Pod
+
+  copied_flutter_dir = File.join(__dir__, 'Flutter')
+  copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
+  copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
+  unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
+    # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
+    # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
+    # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
+
+    generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
+    unless File.exist?(generated_xcode_build_settings_path)
+      raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
+    end
+    generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
+    cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
+
+    unless File.exist?(copied_framework_path)
+      FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
+    end
+    unless File.exist?(copied_podspec_path)
+      FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
+    end
+  end
+
+  # Keep pod path relative so it can be checked into Podfile.lock.
+  pod 'Flutter', :path => 'Flutter'
+
+  # Plugin Pods
+
+  # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
+  # referring to absolute paths on developers' machines.
+  system('rm -rf .symlinks')
+  system('mkdir -p .symlinks/plugins')
+  plugin_pods = parse_KV_file('../.flutter-plugins')
+  plugin_pods.each do |name, path|
+    symlink = File.join('.symlinks', 'plugins', name)
+    File.symlink(path, symlink)
+    pod name, :path => File.join(symlink, 'ios')
+  end
+end
+
+post_install do |installer|
+  installer.pods_project.targets.each do |target|
+    target.build_configurations.each do |config|
+      config.build_settings['ENABLE_BITCODE'] = 'NO'
+    end
+  end
+end
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..7dd6513
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -0,0 +1,506 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+		3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+		74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
+		97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
+		97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		9705A1C41CF9048500538489 /* Embed Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+			);
+			name = "Embed Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
+		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
+		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
+		74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
+		74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
+		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
+		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
+		97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		97C146EB1CF9000F007C117D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		9740EEB11CF90186004384FC /* Flutter */ = {
+			isa = PBXGroup;
+			children = (
+				3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
+				9740EEB21CF90195004384FC /* Debug.xcconfig */,
+				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
+				9740EEB31CF90195004384FC /* Generated.xcconfig */,
+			);
+			name = Flutter;
+			sourceTree = "<group>";
+		};
+		97C146E51CF9000F007C117D = {
+			isa = PBXGroup;
+			children = (
+				9740EEB11CF90186004384FC /* Flutter */,
+				97C146F01CF9000F007C117D /* Runner */,
+				97C146EF1CF9000F007C117D /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		97C146EF1CF9000F007C117D /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				97C146EE1CF9000F007C117D /* Runner.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		97C146F01CF9000F007C117D /* Runner */ = {
+			isa = PBXGroup;
+			children = (
+				97C146FA1CF9000F007C117D /* Main.storyboard */,
+				97C146FD1CF9000F007C117D /* Assets.xcassets */,
+				97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
+				97C147021CF9000F007C117D /* Info.plist */,
+				97C146F11CF9000F007C117D /* Supporting Files */,
+				1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
+				1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
+				74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
+				74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
+			);
+			path = Runner;
+			sourceTree = "<group>";
+		};
+		97C146F11CF9000F007C117D /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		97C146ED1CF9000F007C117D /* Runner */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
+			buildPhases = (
+				9740EEB61CF901F6004384FC /* Run Script */,
+				97C146EA1CF9000F007C117D /* Sources */,
+				97C146EB1CF9000F007C117D /* Frameworks */,
+				97C146EC1CF9000F007C117D /* Resources */,
+				9705A1C41CF9048500538489 /* Embed Frameworks */,
+				3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Runner;
+			productName = Runner;
+			productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		97C146E61CF9000F007C117D /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 1020;
+				ORGANIZATIONNAME = "";
+				TargetAttributes = {
+					97C146ED1CF9000F007C117D = {
+						CreatedOnToolsVersion = 7.3.1;
+						LastSwiftMigration = 1100;
+					};
+				};
+			};
+			buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
+			compatibilityVersion = "Xcode 9.3";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 97C146E51CF9000F007C117D;
+			productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				97C146ED1CF9000F007C117D /* Runner */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		97C146EC1CF9000F007C117D /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
+				3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
+				97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
+				97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Thin Binary";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
+		};
+		9740EEB61CF901F6004384FC /* Run Script */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Run Script";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		97C146EA1CF9000F007C117D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
+				1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		97C146FA1CF9000F007C117D /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C146FB1CF9000F007C117D /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C147001CF9000F007C117D /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		249021D3217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Profile;
+		};
+		249021D4217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.example.mobileApps;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_VERSION = 5.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Profile;
+		};
+		97C147031CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		97C147041CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		97C147061CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.example.mobileApps;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+				SWIFT_VERSION = 5.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Debug;
+		};
+		97C147071CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.example.mobileApps;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_VERSION = 5.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147031CF9000F007C117D /* Debug */,
+				97C147041CF9000F007C117D /* Release */,
+				249021D3217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147061CF9000F007C117D /* Debug */,
+				97C147071CF9000F007C117D /* Release */,
+				249021D4217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 97C146E61CF9000F007C117D /* Project object */;
+}
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..1d526a1
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..f9b0d7c
--- /dev/null
+++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>PreviewsEnabled</key>
+	<false/>
+</dict>
+</plist>
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
new file mode 100644
index 0000000..a28140c
--- /dev/null
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1020"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+               BuildableName = "Runner.app"
+               BlueprintName = "Runner"
+               ReferencedContainer = "container:Runner.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Profile"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..1d526a1
--- /dev/null
+++ b/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>
diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..f9b0d7c
--- /dev/null
+++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>PreviewsEnabled</key>
+	<false/>
+</dict>
+</plist>
diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift
new file mode 100644
index 0000000..70693e4
--- /dev/null
+++ b/ios/Runner/AppDelegate.swift
@@ -0,0 +1,13 @@
+import UIKit
+import Flutter
+
+@UIApplicationMain
+@objc class AppDelegate: FlutterAppDelegate {
+  override func application(
+    _ application: UIApplication,
+    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
+  ) -> Bool {
+    GeneratedPluginRegistrant.register(with: self)
+    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+  }
+}
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..d36b1fa
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,122 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-83.5x83.5@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "Icon-App-1024x1024@1x.png",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332
GIT binary patch
literal 10932
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
QlAxuUp00i_>zopr0K8b=b^rhX

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..28c6bf03016f6c994b70f38d1b7346e5831b531f
GIT binary patch
literal 564
zcmeAS@N?(olHy`uVBq!ia0y~yU=RUe4mJh`hTcwDUIqpR#^NA%Cx&(BWL`2bFuwD2
zaSX8#TsvjAw@jeOvGY5>_q|>h+1u6fBdexi<)tM8-3iJOH-6e{csS^|t`^`h%M4z^
zvrUsp%yCUni-1dr!HteCeu1-6sf(@4&z-gOX8TrnJhnM~hPD2_`!&xEoBNpM46ZP5
z>RM6Fs4Du%wQt&V4?nF#Au;N4dCxlR<XldO9-6?g%eZUVFOxLhq?If5795yX*H)3r
zcr-L!Dsz*&v#QSl(?&xbdB=-h`NEg}1Tfsq{4(uywXxqq5w)$a&)ne^j#c_lpTP8G
z*_&ovJMIUWi|u_Gk1ED$Xa95SQ_5@D^>EhFOs+Q*8UNIXwA$#oIyO8|+tqV&R#9*$
zUnSd|Hw&5HJe<YZ<N71*xK-Ib1>-|^3yuFWnr2?uxcNuK(*U^*-n;k6AAGamV&=3x
zQTjVJM+cmBEL?H-jDy2s*;QO>QThRLANE|lxz@Sy?+%4F#V^}4%*``0mhkR1xTsnd
zsl4K{bVpgeu!#g~y%YEC?D&;me>Lr&{KSK$>&ee#llSpUG=!hMOnEB&rtbEo$NBpo
ze0#XwfU{CPz~%7UQ+uQ}ChR*S%%W*wac<_u>)Jc^mA`9MySCxd!B^Kd#zy?>WBq3t
zA?<j7a@z02UrV#jFFU2SH1ENFaf?TqF86c<HRj3ddVAgxk5KwL|Js^`@zZL)>x*4_
W$LnK$#EXG}fx*+&&t;ucLK6TGg!*^@

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b
GIT binary patch
literal 1283
zcmeAS@N?(olHy`uVBq!ia0y~yV9)?z4mJh`hMs>rav2y{PI<aGhE&WsI>R?dBvs;g
z{d;TUyFpPJ%eF4Kv7n|^zp=ULn1t;EM$XP7lUeld*i<WYMHn1eEM+Rk!LA?E!ztJy
zD8yIC>OAGhrAO=?vmAmpT<U+jYxid3dVb^0cemaCn{#@yPnp^KJ?}ry{%?H#%xAl{
z8!DE^W+>R*XMV$8#$?-Y`cDL-1XCS@pJejB8Rvppy6eq7etCUAujg?q<WvaP_dQE4
z{y3yycZjut%lnV#r5Q_NT~$>j6J!e{Uv#AAYb{|~a_aH522J@Q@fi&BOpfuWHHbGp
zf5x@0=W&%z;t#%xYZ_i1#tsY?XV=JR1*ru$Xe%q8GYMi`*I43cb15zIa$ef*g)OP`
zxn+8uo27Eb>{9r}R#PV@sJksCu`zk^$I#qqi)ZJWE@$GC^4#7iY9ct-)8d8n31bVb
zX;lK#VjdrPy!sZ;@og0)Rhw5$KOp&F-NcXuofoDxM?Z25Q1Tbd+xYNCT0eV~Php(s
z<cV5Oqt_M$Mm(3`W4LW2^O=pEcVCd0)6OHW!U}d3U4JIHF7H4Q=S9Q*f&ljpaicX$
z!zMRzPZfB&W>r(KmiUp+T6+&?C9dbVk>SLWbgX<w;Owuib8E8IxITQlYSWzjwe_o?
zU#jS)hV?5lUU-G>@7~0v#&fvx<GF_OUrTZeT5o(*zs?;a!Ie>}_S)%a@u$R+v$Lgb
zcLiOYf4R$3h^y$~8P-z=e?C;X^D^2|@K|_BOOua4qui|r8!K13nyLg|73lx<s9^v3
zvz!;@UdMXwyu6)h+Ey2blZUP~$h(=BrA$6PZRxgW&$lFPoN%IEU%xNr>rZXr*ju;F
zgx|erIDfsIxhjhHXMvIP?8enx7P6mu>*fc1c=y;ahGSjp;lGuBcQh{SzH#ApT49dK
z`Ang8Y6pT&Jlr#3(Hn0W*>~S9f3}}*)^yfuapkkQmiJL7h52FRWrLWr4F+59@QKX*
z&iiA|j)#}$b~)uf+UVL>vE{JpQwhGc<u`8Kl#sa+s53)ilYsTF7rV~0@BgWj-}_+F
z>;jIHlKqXlCF80s&R_HEmS6Euygc@5k7ASXhVP2g(|73{u6(F=?yx`%zx0!xh0k=>
z@2~H(ejI6YT%e^_^d0ZiKSyPK{bY7bNiOgy*`?Sx*{Rj0zP_&O%zjCcZ5wK1&7b$b
zS-4u+Re)>xxmODx+IoKSah(vkF4bmQOJ?4@n*L71#9h^eYmdsG-&9-ce|Um#?yRl}
zHz)kP-&6SUG5^IIEML~BMqVrRQjA}+dhu305AQAA`6pzU9W{1E>(0+>-l`ogtQT#4
zv{I4dqgB+-Pp<{^Wvq|eKaP}%{%owt&7)o~)wHF}A<4B|UA%w)kz-Te{&=aQJFhvL
zcU`h$Qee7tc-{WP?;gh+O*;8F!nyT<D)aZAC7TcAEpl@>Ed4_zXS=)6n^)GSALu(@
zFj_mOP`4*Na%-LC^ZU2XzIy6y&|qkMNLIl0d(*@(Mjs@LFW7h~w7dO(eCMgX;W}ey
z)$1FVT(;b{_T{serM4|X+iVsv?@3bGd0_hizGsX6s!a`EBIo^}j%A+F$3@YdzmBZj
z*|cUF%e7fvr+yyrOFrYjRQJK&Nt+6#ztwGP_&n*`Q6J-9SNuJG)iEwe+w485%%@SC
z)0^p~ht+}=x9!*b3^nYjoiqK*szo(3n7-R@emEuiR&Q1|0|Nttr>mdKI;Vst04OMA
Ap8x;=

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c
GIT binary patch
literal 1588
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
KKbLh*2~7ZftovC2

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4cde12118dda48d71e01fcb589a74d069c5d7cb5
GIT binary patch
literal 1025
zcmeAS@N?(olHy`uVBq!ia0y~yV2}l24mJh`hOo)${0t1tCp=voLn`KMo$i|v6Do4N
z{`<b~Ml(xh`LD=b>FK#DR4OpQeBF{oZd^@ytAg%E#Qb2~b^X?|T}6qm0$PzPyj`7G
zy_Gu?Tvy63oEqf4uq)x$(ur!5kEj^Gzq`Ntx7tjVxiiC8v%gDvxBLB{bJyoo%T4N0
zVODtQ=;^K!J27NZ$iBu<udg*~FCT{NPxs`yB%kkH^y~kVxl@EEL=|Y%PVng3d}#8q
z<uOzJJgdYHcvLY+uqG)m@JPD6bPRpZxu$Va^MN0sr8bOC2?so^*lbvKh};Sgs%$+h
z%z0c-{RwkH(}6=il6kTD6)&fCJPV0F<;TF?Bk39J5G@vA`r&eC%fk5NqHDVarDk-x
z#vd$NV4viCPRBKQ>KQ4|sNM5<Z%F-|(6+L@mi2H#y-Rk8FvrT>|D|4BlJT3qaC^dy
z`Al<PiMy#~=q4m2sI}#?9&Y^C@l7N{dP<V>i+Wy`_(SF_GH?1bcJn2~W`yzIR&v&n
zHwq7(^p$5v+Sf3x^?C*FF4e(q*QF|>HkSQxN`4T-liuBTV8bK*O%EQdEA!sxwmOn=
z?UScxwmjbZIdxYN+ghe~{*9XrWo&{UU72!%^|WrmE}d^*TJBs<%zjqs`ZenD!Q0Wg
z)z!{jsrNI}RyWA{w*5T9?C;-wPVEGH0LQ{N4|eXGuy?QG!nJd+n?Brnto>zY-v1XL
z^bO0mMaTI!UQYe^r=s(u>x)yB0SOPXB<H>3tXO586LHe?cEZ!6=k?X@+|Imt;Z5WD
zy7))8PqyglPMaOg!<eMimcFg+%}dVdtM<*i@^<glqlSk1ah8#fj-)uHpW86uz%GZJ
zw`Vq2PrkAD=<^FRj+H0h?MwOaQ24{w`J9WV3-2mw+thra!*cfH?eczx7q&g<onjPw
zjQ4gzN^Pp$O<AJ~_apM$N(OAR^An%#UT;yE(la-|=fm|kN{yx}>(U-fn|rcqYiLo;
zi<r*s=eT9%pIz!-&S{>jtaq;Xd#<$P&F$UmocfM*F7Q)L-FK^}@kZzL?dBhoKEIE#
zDxCIWncWkao!4w0KVN51@IfQ|xfjc|2d{o4sfadyjXc04r0&GMzV4H7e%%jVlkmGw
zj<WvBzklLH_U;>ZE<P&GxmID5uF}h7ebPdivmo=ww_2NX?D2nmX7ukdOgxZNIPZ5^
z&a=hh@6uz7I}T1L(l)+SsQgm!fyQ-9UMtRQp6;h9NB3=Q+b^CRHOpyHfoAp9%MTXU
zxm(RSx3th|dD^5SsnY$cpWR!?W#DoBcVyz#M|0+{2w$IlV#1PuNwNR-ePFXu%k;VA
q^R|5R?a8lx23>mWT{!KG{qOgR*SIgbw=gg;FnGH9xvX<aXaWFyM)8~g

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658
GIT binary patch
literal 1716
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
V&a^duV_;xl@O1TaS?83{1OVHl_EP`=

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcdc2306c28505ebc0b6c3a359c4d252bf626b9f
GIT binary patch
literal 1920
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b
GIT binary patch
literal 1283
zcmeAS@N?(olHy`uVBq!ia0y~yV9)?z4mJh`hMs>rav2y{PI<aGhE&WsI>R?dBvs;g
z{d;TUyFpPJ%eF4Kv7n|^zp=ULn1t;EM$XP7lUeld*i<WYMHn1eEM+Rk!LA?E!ztJy
zD8yIC>OAGhrAO=?vmAmpT<U+jYxid3dVb^0cemaCn{#@yPnp^KJ?}ry{%?H#%xAl{
z8!DE^W+>R*XMV$8#$?-Y`cDL-1XCS@pJejB8Rvppy6eq7etCUAujg?q<WvaP_dQE4
z{y3yycZjut%lnV#r5Q_NT~$>j6J!e{Uv#AAYb{|~a_aH522J@Q@fi&BOpfuWHHbGp
zf5x@0=W&%z;t#%xYZ_i1#tsY?XV=JR1*ru$Xe%q8GYMi`*I43cb15zIa$ef*g)OP`
zxn+8uo27Eb>{9r}R#PV@sJksCu`zk^$I#qqi)ZJWE@$GC^4#7iY9ct-)8d8n31bVb
zX;lK#VjdrPy!sZ;@og0)Rhw5$KOp&F-NcXuofoDxM?Z25Q1Tbd+xYNCT0eV~Php(s
z<cV5Oqt_M$Mm(3`W4LW2^O=pEcVCd0)6OHW!U}d3U4JIHF7H4Q=S9Q*f&ljpaicX$
z!zMRzPZfB&W>r(KmiUp+T6+&?C9dbVk>SLWbgX<w;Owuib8E8IxITQlYSWzjwe_o?
zU#jS)hV?5lUU-G>@7~0v#&fvx<GF_OUrTZeT5o(*zs?;a!Ie>}_S)%a@u$R+v$Lgb
zcLiOYf4R$3h^y$~8P-z=e?C;X^D^2|@K|_BOOua4qui|r8!K13nyLg|73lx<s9^v3
zvz!;@UdMXwyu6)h+Ey2blZUP~$h(=BrA$6PZRxgW&$lFPoN%IEU%xNr>rZXr*ju;F
zgx|erIDfsIxhjhHXMvIP?8enx7P6mu>*fc1c=y;ahGSjp;lGuBcQh{SzH#ApT49dK
z`Ang8Y6pT&Jlr#3(Hn0W*>~S9f3}}*)^yfuapkkQmiJL7h52FRWrLWr4F+59@QKX*
z&iiA|j)#}$b~)uf+UVL>vE{JpQwhGc<u`8Kl#sa+s53)ilYsTF7rV~0@BgWj-}_+F
z>;jIHlKqXlCF80s&R_HEmS6Euygc@5k7ASXhVP2g(|73{u6(F=?yx`%zx0!xh0k=>
z@2~H(ejI6YT%e^_^d0ZiKSyPK{bY7bNiOgy*`?Sx*{Rj0zP_&O%zjCcZ5wK1&7b$b
zS-4u+Re)>xxmODx+IoKSah(vkF4bmQOJ?4@n*L71#9h^eYmdsG-&9-ce|Um#?yRl}
zHz)kP-&6SUG5^IIEML~BMqVrRQjA}+dhu305AQAA`6pzU9W{1E>(0+>-l`ogtQT#4
zv{I4dqgB+-Pp<{^Wvq|eKaP}%{%owt&7)o~)wHF}A<4B|UA%w)kz-Te{&=aQJFhvL
zcU`h$Qee7tc-{WP?;gh+O*;8F!nyT<D)aZAC7TcAEpl@>Ed4_zXS=)6n^)GSALu(@
zFj_mOP`4*Na%-LC^ZU2XzIy6y&|qkMNLIl0d(*@(Mjs@LFW7h~w7dO(eCMgX;W}ey
z)$1FVT(;b{_T{serM4|X+iVsv?@3bGd0_hizGsX6s!a`EBIo^}j%A+F$3@YdzmBZj
z*|cUF%e7fvr+yyrOFrYjRQJK&Nt+6#ztwGP_&n*`Q6J-9SNuJG)iEwe+w485%%@SC
z)0^p~ht+}=x9!*b3^nYjoiqK*szo(3n7-R@emEuiR&Q1|0|Nttr>mdKI;Vst04OMA
Ap8x;=

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2
GIT binary patch
literal 1895
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
OVDNPHb6Mw<&;$VbO<Vi`

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22
GIT binary patch
literal 2665
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22
GIT binary patch
literal 2665
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680
GIT binary patch
literal 3831
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
U*#tT>FfcH9y85}Sb4q9e0QKHA1^@s6

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d
GIT binary patch
literal 1888
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
O7(8A5T-G@yGywok=Zg*i

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a84f41e14e27f4b11f16f9ee39279ac98f8d5ac
GIT binary patch
literal 3294
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0e1f58536026aebc4f1f70e481f6993c9ff088d
GIT binary patch
literal 3612
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

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
new file mode 100644
index 0000000..0bedcf2
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v
Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q*

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v
Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q*

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v
Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q*

literal 0
HcmV?d00001

diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
new file mode 100644
index 0000000..89c2725
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
@@ -0,0 +1,5 @@
+# Launch Screen Assets
+
+You can customize the launch screen with your own desired assets by replacing the image files in this directory.
+
+You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..f2e259c
--- /dev/null
+++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
+                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
+                            </imageView>
+                        </subviews>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="LaunchImage" width="168" height="185"/>
+    </resources>
+</document>
diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..f3c2851
--- /dev/null
+++ b/ios/Runner/Base.lproj/Main.storyboard
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+    </dependencies>
+    <scenes>
+        <!--Flutter View Controller-->
+        <scene sceneID="tne-QT-ifu">
+            <objects>
+                <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
+                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+            </objects>
+        </scene>
+    </scenes>
+</document>
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
new file mode 100644
index 0000000..c72e714
--- /dev/null
+++ b/ios/Runner/Info.plist
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>mobile_apps</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>$(FLUTTER_BUILD_NAME)</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>$(FLUTTER_BUILD_NUMBER)</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIMainStoryboardFile</key>
+	<string>Main</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UIViewControllerBasedStatusBarAppearance</key>
+	<false/>
+</dict>
+</plist>
diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 0000000..308a2a5
--- /dev/null
+++ b/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
diff --git a/lib/main.dart b/lib/main.dart
new file mode 100644
index 0000000..26c981e
--- /dev/null
+++ b/lib/main.dart
@@ -0,0 +1,6 @@
+import 'package:flutter/material.dart';
+import 'package:mobile_apps/src/app.dart';
+
+void main() {
+  runApp(App());
+}
diff --git a/lib/src/app.dart b/lib/src/app.dart
new file mode 100644
index 0000000..aaa1041
--- /dev/null
+++ b/lib/src/app.dart
@@ -0,0 +1,25 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
+import 'package:mobile_apps/src/services/auth_service.dart';
+import 'package:provider/provider.dart';
+
+import 'routes.dart';
+import 'theme.dart';
+
+class App extends StatelessWidget {
+  @override
+  Widget build(BuildContext context) {
+    return MultiProvider(
+      providers: [
+        // Add service that can be accessed globally here
+        Provider<AuthService>(create: (_) => AuthService()),
+      ],
+      child: MaterialApp(
+        theme: AppTheme.light(),
+        darkTheme: AppTheme.dark(),
+        initialRoute: AppRoutes.login.route,
+        routes: AppRoutes.routes,
+      ),
+    );
+  }
+}
diff --git a/lib/src/common/constants.dart b/lib/src/common/constants.dart
new file mode 100644
index 0000000..6d1c74e
--- /dev/null
+++ b/lib/src/common/constants.dart
@@ -0,0 +1,4 @@
+class MarginConstants {
+  static double horizontalFromScreen = 16.0;
+  static double verticalFromScreen = 16.0;
+}
diff --git a/lib/src/extensions/scaffold_extension.dart b/lib/src/extensions/scaffold_extension.dart
new file mode 100644
index 0000000..0273b66
--- /dev/null
+++ b/lib/src/extensions/scaffold_extension.dart
@@ -0,0 +1,16 @@
+import 'package:flutter/material.dart';
+import 'package:dartx/dartx.dart';
+
+extension ScaffoldExtension on ScaffoldState {
+  ScaffoldFeatureController<SnackBar, SnackBarClosedReason> showErrorSnackBar(
+    String text,
+  ) {
+    return showSnackBar(
+      SnackBar(
+        content: Text(text),
+        backgroundColor: Colors.redAccent,
+        duration: 5.seconds,
+      ),
+    );
+  }
+}
diff --git a/lib/src/models/inventory.dart b/lib/src/models/inventory.dart
new file mode 100644
index 0000000..847aa6e
--- /dev/null
+++ b/lib/src/models/inventory.dart
@@ -0,0 +1,31 @@
+import 'package:equatable/equatable.dart';
+import 'package:json_annotation/json_annotation.dart';
+import 'package:to_string/to_string.dart';
+
+part 'inventory.g.dart';
+
+@JsonSerializable()
+@ToString()
+class Inventory extends Equatable {
+  final String name;
+  final String imageUrl;
+  final int availableStock;
+  final int totalStock;
+
+  Inventory({
+    this.name,
+    this.imageUrl,
+    this.availableStock,
+    this.totalStock,
+  });
+
+  factory Inventory.fromJson(Map<String, dynamic> json) => _$InventoryFromJson(json);
+
+  Map<String, dynamic> toJson() => _$InventoryToJson(this);
+
+  @override
+  List<Object> get props => [name, imageUrl];
+
+  @override
+  String toString() => _$InventoryToString(this);
+}
diff --git a/lib/src/models/inventory.g.dart b/lib/src/models/inventory.g.dart
new file mode 100644
index 0000000..92cf8cc
--- /dev/null
+++ b/lib/src/models/inventory.g.dart
@@ -0,0 +1,31 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'inventory.dart';
+
+// **************************************************************************
+// JsonSerializableGenerator
+// **************************************************************************
+
+Inventory _$InventoryFromJson(Map<String, dynamic> json) {
+  return Inventory(
+    name: json['name'] as String,
+    imageUrl: json['imageUrl'] as String,
+    availableStock: json['availableStock'] as int,
+    totalStock: json['totalStock'] as int,
+  );
+}
+
+Map<String, dynamic> _$InventoryToJson(Inventory instance) => <String, dynamic>{
+      'name': instance.name,
+      'imageUrl': instance.imageUrl,
+      'availableStock': instance.availableStock,
+      'totalStock': instance.totalStock,
+    };
+
+// **************************************************************************
+// ToStringGenerator
+// **************************************************************************
+
+String _$InventoryToString(Inventory o) {
+  return '''Inventory{name: ${o.name}, imageUrl: ${o.imageUrl}, availableStock: ${o.availableStock}, totalStock: ${o.totalStock}}''';
+}
diff --git a/lib/src/repositories/inventory_repository.dart b/lib/src/repositories/inventory_repository.dart
new file mode 100644
index 0000000..58a5c04
--- /dev/null
+++ b/lib/src/repositories/inventory_repository.dart
@@ -0,0 +1,14 @@
+import 'package:cloud_firestore/cloud_firestore.dart';
+import 'package:flutter/widgets.dart';
+import 'package:mobile_apps/src/models/inventory.dart';
+
+class InventoryRepository {
+  CollectionReference get inventoriesCollections => Firestore.instance.collection('inventories');
+
+  Stream<QuerySnapshot> get inventoriesSnapshots => inventoriesCollections.snapshots();
+
+  List<Inventory> inventories(AsyncSnapshot<QuerySnapshot> snapshot) {
+    if (!snapshot.hasData || snapshot.hasError) return [];
+    return snapshot.data.documents.map<Inventory>((document) => Inventory.fromJson(document.data)).toList();
+  }
+}
diff --git a/lib/src/routes.dart b/lib/src/routes.dart
new file mode 100644
index 0000000..a23b36e
--- /dev/null
+++ b/lib/src/routes.dart
@@ -0,0 +1,37 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
+
+import 'screens/home/home_screen.dart';
+import 'screens/login/login_screen.dart';
+
+class AppRoute {
+  final String route;
+  final WidgetBuilder widgetBuilder;
+
+  AppRoute(this.route, this.widgetBuilder) : assert(route.startsWith('/')), assert(widgetBuilder != null);
+}
+
+class AppRoutes {
+  // Add known registered routes in this variable
+  static final List<AppRoute> _registeredRoutes = [
+    AppRoutes.home,
+    AppRoutes.login,
+  ];
+
+  static Map<String, WidgetBuilder> get routes => Map.fromEntries(
+        _registeredRoutes.map(
+          (route) =>
+              MapEntry<String, WidgetBuilder>(route.route, route.widgetBuilder),
+        ),
+      );
+
+  // Route for Home Screen
+  static final AppRoute home = AppRoute('/home', (_) => HomeScreen());
+
+  // Route for Login Screen
+  static final AppRoute login = AppRoute('/login', (_) => LoginScreen());
+
+  /** 
+   * Add new Route definition below here and add it to [AppRoutes._registeredRoutes]
+   */
+}
diff --git a/lib/src/screens/home/home_screen.dart b/lib/src/screens/home/home_screen.dart
new file mode 100644
index 0000000..3bd8bfc
--- /dev/null
+++ b/lib/src/screens/home/home_screen.dart
@@ -0,0 +1,65 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/scheduler.dart';
+import 'package:flutter/widgets.dart';
+import 'package:mobile_apps/src/common/constants.dart';
+import 'package:mobile_apps/src/screens/home/inventories/inventories.dart';
+import 'package:mobile_apps/src/services/auth_service.dart';
+import 'package:provider/provider.dart';
+
+import '../../routes.dart';
+
+class HomeScreen extends StatelessWidget {
+  @override
+  Widget build(BuildContext context) {
+    final authService = Provider.of<AuthService>(context);
+    if (!authService.isAuthenticated) {
+      SchedulerBinding.instance.addPostFrameCallback((_) {
+        Navigator.of(context).pushReplacementNamed(AppRoutes.login.route);
+      });
+      return Container();
+    }
+    final account = authService.account;
+    return Scaffold(
+      body: ListView(
+        children: <Widget>[
+          Container(
+            margin: EdgeInsets.symmetric(
+              horizontal: MarginConstants.horizontalFromScreen,
+              vertical: MarginConstants.verticalFromScreen,
+            ),
+            child: Column(
+              crossAxisAlignment: CrossAxisAlignment.start,
+              children: <Widget>[
+                Text(
+                  'Halo,\n${account.displayName}!',
+                  style: Theme.of(context).textTheme.subtitle1,
+                  textAlign: TextAlign.left,
+                ),
+                Padding(
+                  padding: EdgeInsets.only(top: 24.0),
+                  child: InventoriesWidget(),
+                ),
+              ],
+            ),
+          ),
+        ],
+      ),
+      appBar: AppBar(
+        title:
+            Text('Siaga Wabah', style: TextStyle(fontWeight: FontWeight.bold)),
+        actions: <Widget>[
+          Container(
+            child: Icon(Icons.share),
+            margin: EdgeInsets.only(right: 8.0),
+          ),
+          Container(
+            margin:
+                EdgeInsets.only(right: MarginConstants.horizontalFromScreen * 2),
+            child: Icon(Icons.notifications),
+          ),
+        ],
+        centerTitle: true,
+      ),
+    );
+  }
+}
diff --git a/lib/src/screens/home/inventories/inventories.dart b/lib/src/screens/home/inventories/inventories.dart
new file mode 100644
index 0000000..4b5cfb4
--- /dev/null
+++ b/lib/src/screens/home/inventories/inventories.dart
@@ -0,0 +1,48 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/scheduler.dart';
+import 'package:flutter/widgets.dart';
+import 'package:mobile_apps/src/repositories/inventory_repository.dart';
+
+// Extension import
+import 'package:mobile_apps/src/extensions/scaffold_extension.dart';
+
+import 'inventory.dart';
+
+class InventoriesWidget extends StatelessWidget {
+  @override
+  Widget build(BuildContext context) {
+    final repository = InventoryRepository();
+    return Column(
+      crossAxisAlignment: CrossAxisAlignment.start,
+      children: <Widget>[
+        Text(
+          'Persediaan Siaga Wabah',
+          style: Theme.of(context).textTheme.headline5,
+        ),
+        StreamBuilder(
+          stream: repository.inventoriesCollections.snapshots(),
+          builder: (_, snapshot) {
+            if (snapshot.hasError) {
+              SchedulerBinding.instance.addPostFrameCallback((_) {
+                Scaffold.of(context).showErrorSnackBar(
+                    'Oops! Ada sesuatu yang salah, mohon coba lagi ya.');
+              });
+            }
+            if (snapshot.connectionState == ConnectionState.waiting) {
+              return Center(child: CircularProgressIndicator());
+            }
+            final inventories = repository.inventories(snapshot).take(5);
+            return Column(
+              children: [
+                ...inventories
+                    .map((inventory) => InventoryWidget(inventory))
+                    .toList(),
+                FlatButton(child: Text('Lihat Semua'), onPressed: () {},),    
+              ],
+            );
+          },
+        )
+      ],
+    );
+  }
+}
diff --git a/lib/src/screens/home/inventories/inventory.dart b/lib/src/screens/home/inventories/inventory.dart
new file mode 100644
index 0000000..7e52872
--- /dev/null
+++ b/lib/src/screens/home/inventories/inventory.dart
@@ -0,0 +1,26 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
+import 'package:mobile_apps/src/models/inventory.dart';
+
+extension ImageStringExtension on String {
+  NetworkImage get networkImage => NetworkImage(this);
+}
+
+class InventoryWidget extends StatelessWidget {
+  final Inventory inventory;
+
+  const InventoryWidget(this.inventory, {Key key}) : super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
+    return Card(
+      child: ListTile(
+        trailing: CircleAvatar(
+          backgroundImage: inventory.imageUrl?.networkImage,
+        ),
+        title: Text(inventory.name),
+        subtitle: Text('${inventory.availableStock}/${inventory.totalStock}'),
+      ),
+    );
+  }
+}
diff --git a/lib/src/screens/login/login_screen.dart b/lib/src/screens/login/login_screen.dart
new file mode 100644
index 0000000..a647a59
--- /dev/null
+++ b/lib/src/screens/login/login_screen.dart
@@ -0,0 +1,89 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
+import 'package:google_sign_in/google_sign_in.dart';
+import 'package:provider/provider.dart';
+
+import '../../routes.dart';
+import '../../services/auth_service.dart';
+
+class LoginScreen extends StatefulWidget {
+  @override
+  _LoginScreenState createState() => _LoginScreenState();
+}
+
+class _LoginScreenState extends State<LoginScreen> {
+  bool isLoading = false;
+
+  void onGoogleSignInButtonPressed(
+      BuildContext context, AuthService authService) async {
+    final googleSignIn = GoogleSignIn();
+    try {
+      setState(() => isLoading = true);
+      if (await googleSignIn.isSignedIn()) await googleSignIn.disconnect();
+      final account = await googleSignIn.signIn();
+      if (account == null) throw 'Mohon masuk menggunakan Akun Google';
+      await authService.authenticate(account);
+      setState(() => isLoading = false);
+    } catch (e) {
+      Scaffold.of(context).showSnackBar(
+        SnackBar(
+          content: Text('Terjadi kesalahan, mohon masuk menggunakan Akun Google'),
+        ),
+      );
+      setState(() => isLoading = false);
+    }
+    if (authService.isAuthenticated) {
+      await Navigator.of(context).pushNamedAndRemoveUntil(AppRoutes.home.route, (_) => false);
+    }
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    final authService = Provider.of<AuthService>(context);
+    return Scaffold(
+      body: Builder(
+        builder: (BuildContext context) => Center(
+          child: Column(
+            mainAxisAlignment: MainAxisAlignment.center,
+            children: <Widget>[
+              Container(
+                margin: EdgeInsets.symmetric(vertical: 8.0),
+                child: Text('Siaga Wabah',
+                    style: Theme.of(context).textTheme.headline3),
+              ),
+              OutlineButton(
+                onPressed: isLoading
+                    ? null
+                    : () => onGoogleSignInButtonPressed(context, authService),
+                color: Colors.pink,
+                highlightColor: Colors.blue,
+                child: Padding(
+                  padding: EdgeInsets.all(16.0),
+                  child: Row(
+                    mainAxisSize: MainAxisSize.min,
+                    mainAxisAlignment: MainAxisAlignment.center,
+                    children: <Widget>[
+                      isLoading
+                          ? CircularProgressIndicator()
+                          : Image(
+                              image:
+                                  AssetImage('assets/images/google_logo.png'),
+                              height: 24.0,
+                            ),
+                      Container(
+                        margin: const EdgeInsets.only(left: 10),
+                        child: Text(
+                          'Sign in with Google',
+                        ),
+                      )
+                    ],
+                  ),
+                ),
+              ),
+            ],
+          ),
+        ),
+      ),
+    );
+  }
+}
diff --git a/lib/src/services/auth_service.dart b/lib/src/services/auth_service.dart
new file mode 100644
index 0000000..3fd1888
--- /dev/null
+++ b/lib/src/services/auth_service.dart
@@ -0,0 +1,11 @@
+import 'package:google_sign_in/google_sign_in.dart';
+
+class AuthService {
+  GoogleSignInAccount account;
+
+  Future<void> authenticate(GoogleSignInAccount account) async {
+    this.account = account;
+  }
+
+  bool get isAuthenticated => account != null;
+}
\ No newline at end of file
diff --git a/lib/src/theme.dart b/lib/src/theme.dart
new file mode 100644
index 0000000..29f383c
--- /dev/null
+++ b/lib/src/theme.dart
@@ -0,0 +1,44 @@
+import 'package:flutter/material.dart';
+import 'package:google_fonts/google_fonts.dart';
+
+class AppColors {
+  static const Color indigo = Color(0xFF096B91);
+  static const Color pink = Color(0xFFEDD7D7);
+  static const Color bluePrimary = Color(0xFF007AFF);
+  static const Color blueAlternative = Color(0xFF82C5E6);
+}
+
+class AppTheme {
+  static final TextTheme textTheme = GoogleFonts.poppinsTextTheme().apply(
+    bodyColor: Colors.black,
+    displayColor: Colors.black,
+  );
+
+  static ThemeData _customThemeData(ThemeData base) {
+    final colorScheme = ColorScheme.light().copyWith(
+      primary: AppColors.bluePrimary,
+      primaryVariant: AppColors.blueAlternative,
+      secondary: AppColors.pink,
+    );
+    return base.copyWith(
+      primaryColor: AppColors.bluePrimary,
+      primaryColorLight: AppColors.blueAlternative,
+      primaryColorDark: AppColors.bluePrimary,
+      primaryTextTheme: textTheme,
+      textTheme: textTheme,
+      accentColor: AppColors.pink,
+      colorScheme: colorScheme,
+      appBarTheme: AppBarTheme().copyWith(
+        color: Colors.white,
+        iconTheme: IconThemeData().copyWith(color: Colors.black),
+      ),
+      iconTheme: IconThemeData().copyWith(
+        color: Colors.black12,
+      ),
+    );
+  }
+
+  static ThemeData light() => _customThemeData(ThemeData.light());
+
+  static ThemeData dark() => _customThemeData(ThemeData.dark());
+}
diff --git a/pubspec.lock b/pubspec.lock
new file mode 100644
index 0000000..6a66e8a
--- /dev/null
+++ b/pubspec.lock
@@ -0,0 +1,691 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+  _fe_analyzer_shared:
+    dependency: transitive
+    description:
+      name: _fe_analyzer_shared
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.3"
+  analyzer:
+    dependency: transitive
+    description:
+      name: analyzer
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.39.4"
+  archive:
+    dependency: transitive
+    description:
+      name: archive
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.11"
+  args:
+    dependency: transitive
+    description:
+      name: args
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.5.2"
+  async:
+    dependency: transitive
+    description:
+      name: async
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.4.0"
+  boolean_selector:
+    dependency: transitive
+    description:
+      name: boolean_selector
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.5"
+  build:
+    dependency: transitive
+    description:
+      name: build
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.2"
+  build_config:
+    dependency: transitive
+    description:
+      name: build_config
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.4.2"
+  build_daemon:
+    dependency: transitive
+    description:
+      name: build_daemon
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.3"
+  build_resolvers:
+    dependency: transitive
+    description:
+      name: build_resolvers
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.3.3"
+  build_runner:
+    dependency: "direct dev"
+    description:
+      name: build_runner
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.8.0"
+  build_runner_core:
+    dependency: transitive
+    description:
+      name: build_runner_core
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "4.5.2"
+  built_collection:
+    dependency: transitive
+    description:
+      name: built_collection
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "4.3.2"
+  built_value:
+    dependency: transitive
+    description:
+      name: built_value
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "7.0.9"
+  characters:
+    dependency: transitive
+    description:
+      name: characters
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.3.1"
+  charcode:
+    dependency: transitive
+    description:
+      name: charcode
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.2"
+  checked_yaml:
+    dependency: transitive
+    description:
+      name: checked_yaml
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.2"
+  cloud_firestore:
+    dependency: "direct main"
+    description:
+      name: cloud_firestore
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.13.4+2"
+  cloud_firestore_platform_interface:
+    dependency: transitive
+    description:
+      name: cloud_firestore_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.0"
+  cloud_firestore_web:
+    dependency: transitive
+    description:
+      name: cloud_firestore_web
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.1.1+2"
+  code_builder:
+    dependency: transitive
+    description:
+      name: code_builder
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.2.1"
+  collection:
+    dependency: transitive
+    description:
+      name: collection
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.14.11"
+  convert:
+    dependency: transitive
+    description:
+      name: convert
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.1"
+  crypto:
+    dependency: transitive
+    description:
+      name: crypto
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.3"
+  csslib:
+    dependency: transitive
+    description:
+      name: csslib
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.16.1"
+  cupertino_icons:
+    dependency: "direct main"
+    description:
+      name: cupertino_icons
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.1.3"
+  dart_style:
+    dependency: transitive
+    description:
+      name: dart_style
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.3.3"
+  dartx:
+    dependency: "direct main"
+    description:
+      name: dartx
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.3.0"
+  dio:
+    dependency: "direct main"
+    description:
+      name: dio
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.0.9"
+  equatable:
+    dependency: "direct main"
+    description:
+      name: equatable
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.1"
+  firebase:
+    dependency: transitive
+    description:
+      name: firebase
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "7.2.1"
+  firebase_auth:
+    dependency: "direct main"
+    description:
+      name: firebase_auth
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.15.5+3"
+  firebase_auth_platform_interface:
+    dependency: transitive
+    description:
+      name: firebase_auth_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.7"
+  firebase_auth_web:
+    dependency: transitive
+    description:
+      name: firebase_auth_web
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.1.2"
+  firebase_core:
+    dependency: "direct main"
+    description:
+      name: firebase_core
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.4.4+3"
+  firebase_core_platform_interface:
+    dependency: transitive
+    description:
+      name: firebase_core_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.4"
+  firebase_core_web:
+    dependency: transitive
+    description:
+      name: firebase_core_web
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.1.1+2"
+  fixnum:
+    dependency: transitive
+    description:
+      name: fixnum
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.10.11"
+  flutter:
+    dependency: "direct main"
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  flutter_test:
+    dependency: "direct dev"
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  flutter_web_plugins:
+    dependency: transitive
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  glob:
+    dependency: transitive
+    description:
+      name: glob
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.0"
+  google_fonts:
+    dependency: "direct main"
+    description:
+      name: google_fonts
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.3.10"
+  google_sign_in:
+    dependency: "direct main"
+    description:
+      name: google_sign_in
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "4.2.0"
+  google_sign_in_platform_interface:
+    dependency: transitive
+    description:
+      name: google_sign_in_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.0"
+  google_sign_in_web:
+    dependency: transitive
+    description:
+      name: google_sign_in_web
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.8.4"
+  graphs:
+    dependency: transitive
+    description:
+      name: graphs
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.2.0"
+  html:
+    dependency: transitive
+    description:
+      name: html
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.14.0+3"
+  http:
+    dependency: transitive
+    description:
+      name: http
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.12.0+4"
+  http_multi_server:
+    dependency: transitive
+    description:
+      name: http_multi_server
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.2.0"
+  http_parser:
+    dependency: transitive
+    description:
+      name: http_parser
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.1.3"
+  image:
+    dependency: transitive
+    description:
+      name: image
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.1.4"
+  io:
+    dependency: transitive
+    description:
+      name: io
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.3.3"
+  js:
+    dependency: transitive
+    description:
+      name: js
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.6.1+1"
+  json_annotation:
+    dependency: "direct main"
+    description:
+      name: json_annotation
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.0.1"
+  json_serializable:
+    dependency: "direct dev"
+    description:
+      name: json_serializable
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.2.5"
+  logging:
+    dependency: transitive
+    description:
+      name: logging
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.11.4"
+  matcher:
+    dependency: transitive
+    description:
+      name: matcher
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.12.6"
+  meta:
+    dependency: transitive
+    description:
+      name: meta
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.8"
+  mime:
+    dependency: transitive
+    description:
+      name: mime
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.9.6+3"
+  nested:
+    dependency: transitive
+    description:
+      name: nested
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.0.4"
+  node_interop:
+    dependency: transitive
+    description:
+      name: node_interop
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.3"
+  node_io:
+    dependency: transitive
+    description:
+      name: node_io
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.1+2"
+  package_config:
+    dependency: transitive
+    description:
+      name: package_config
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.9.2"
+  package_resolver:
+    dependency: transitive
+    description:
+      name: package_resolver
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.10"
+  path:
+    dependency: transitive
+    description:
+      name: path
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.6.4"
+  path_provider:
+    dependency: transitive
+    description:
+      name: path_provider
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.6.5"
+  path_provider_macos:
+    dependency: transitive
+    description:
+      name: path_provider_macos
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.0.4"
+  path_provider_platform_interface:
+    dependency: transitive
+    description:
+      name: path_provider_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.1"
+  pedantic:
+    dependency: "direct dev"
+    description:
+      name: pedantic
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.9.0"
+  petitparser:
+    dependency: transitive
+    description:
+      name: petitparser
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.4.0"
+  platform:
+    dependency: transitive
+    description:
+      name: platform
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.2.1"
+  plugin_platform_interface:
+    dependency: transitive
+    description:
+      name: plugin_platform_interface
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.2"
+  pool:
+    dependency: transitive
+    description:
+      name: pool
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.4.0"
+  provider:
+    dependency: "direct main"
+    description:
+      name: provider
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "4.0.4"
+  pub_semver:
+    dependency: transitive
+    description:
+      name: pub_semver
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.4.4"
+  pubspec_parse:
+    dependency: transitive
+    description:
+      name: pubspec_parse
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.1.5"
+  quiver:
+    dependency: transitive
+    description:
+      name: quiver
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.5"
+  shelf:
+    dependency: transitive
+    description:
+      name: shelf
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.7.5"
+  shelf_web_socket:
+    dependency: transitive
+    description:
+      name: shelf_web_socket
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.2.3"
+  sky_engine:
+    dependency: transitive
+    description: flutter
+    source: sdk
+    version: "0.0.99"
+  source_gen:
+    dependency: transitive
+    description:
+      name: source_gen
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.9.5"
+  source_span:
+    dependency: transitive
+    description:
+      name: source_span
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.5.5"
+  stack_trace:
+    dependency: transitive
+    description:
+      name: stack_trace
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.9.3"
+  stream_channel:
+    dependency: transitive
+    description:
+      name: stream_channel
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.0"
+  stream_transform:
+    dependency: transitive
+    description:
+      name: stream_transform
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.0"
+  string_scanner:
+    dependency: transitive
+    description:
+      name: string_scanner
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.0.5"
+  term_glyph:
+    dependency: transitive
+    description:
+      name: term_glyph
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.0"
+  test_api:
+    dependency: transitive
+    description:
+      name: test_api
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.2.15"
+  time:
+    dependency: transitive
+    description:
+      name: time
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.0"
+  timing:
+    dependency: transitive
+    description:
+      name: timing
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.1.1+2"
+  to_string:
+    dependency: "direct main"
+    description:
+      name: to_string
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.1"
+  to_string_generator:
+    dependency: "direct dev"
+    description:
+      name: to_string_generator
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.2.1"
+  typed_data:
+    dependency: transitive
+    description:
+      name: typed_data
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.6"
+  vector_math:
+    dependency: transitive
+    description:
+      name: vector_math
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.8"
+  watcher:
+    dependency: transitive
+    description:
+      name: watcher
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.9.7+14"
+  web_socket_channel:
+    dependency: transitive
+    description:
+      name: web_socket_channel
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.0"
+  xml:
+    dependency: transitive
+    description:
+      name: xml
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "3.5.0"
+  yaml:
+    dependency: transitive
+    description:
+      name: yaml
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.2.0"
+sdks:
+  dart: ">=2.7.0 <3.0.0"
+  flutter: ">=1.12.13+hotfix.4 <2.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
new file mode 100644
index 0000000..19f121e
--- /dev/null
+++ b/pubspec.yaml
@@ -0,0 +1,93 @@
+name: mobile_apps
+description: A health care equipment marketplace to help COVID-19 situation.
+
+# The following defines the version and build number for your application.
+# A version number is three numbers separated by dots, like 1.2.43
+# followed by an optional build number separated by a +.
+# Both the version and the builder number may be overridden in flutter
+# build by specifying --build-name and --build-number, respectively.
+# In Android, build-name is used as versionName while build-number used as versionCode.
+# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
+# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
+# Read more about iOS versioning at
+# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
+version: 1.0.0+1
+
+environment:
+  sdk: ">=2.7.0 <3.0.0"
+
+dependencies:
+  flutter:
+    sdk: flutter
+  # Firebase and Google Sign In Dependencies  
+  firebase_core: ^0.4.0+9
+  firebase_auth: ^0.15.5+3
+  cloud_firestore: ^0.13.3
+  google_sign_in: ^4.2.0
+
+  
+  # Other Flutter dependencies
+  google_fonts: ^0.3.10
+  provider: ^4.0.4
+
+  # Dart utils
+  equatable: ^1.1.1
+  dio: ^3.0.9
+  json_annotation: ^3.0.0
+  to_string: ^1.2.1
+  dartx: ^0.3.0
+
+
+  # The following adds the Cupertino Icons font to your application.
+  # Use with the CupertinoIcons class for iOS style icons.
+  cupertino_icons: ^0.1.3
+
+dev_dependencies:
+  flutter_test:
+    sdk: flutter
+  build_runner: ^1.0.0
+  json_serializable: ^3.2.0
+  to_string_generator: ^1.2.1
+  
+  # Linter dependency
+  pedantic: ^1.8.0 # The default Linter package used in Google
+
+# For information on the generic Dart part of this file, see the
+# following page: https://dart.dev/tools/pub/pubspec
+
+# The following section is specific to Flutter.
+flutter:
+
+  # The following line ensures that the Material Icons font is
+  # included with your application, so that you can use the icons in
+  # the material Icons class.
+  uses-material-design: true
+
+  assets:
+    - assets/images/google_logo.png
+
+  # An image asset can refer to one or more resolution-specific "variants", see
+  # https://flutter.dev/assets-and-images/#resolution-aware.
+
+  # For details regarding adding assets from package dependencies, see
+  # https://flutter.dev/assets-and-images/#from-packages
+
+  # To add custom fonts to your application, add a fonts section here,
+  # in this "flutter" section. Each entry in this list should have a
+  # "family" key with the font family name, and a "fonts" key with a
+  # list giving the asset and other descriptors for the font. For
+  # example:
+  # fonts:
+  #   - family: Schyler
+  #     fonts:
+  #       - asset: fonts/Schyler-Regular.ttf
+  #       - asset: fonts/Schyler-Italic.ttf
+  #         style: italic
+  #   - family: Trajan Pro
+  #     fonts:
+  #       - asset: fonts/TrajanPro.ttf
+  #       - asset: fonts/TrajanPro_Bold.ttf
+  #         weight: 700
+  #
+  # For details regarding fonts from package dependencies,
+  # see https://flutter.dev/custom-fonts/#from-packages
diff --git a/test/navigation_test.dart b/test/navigation_test.dart
new file mode 100644
index 0000000..2aae7b9
--- /dev/null
+++ b/test/navigation_test.dart
@@ -0,0 +1,10 @@
+import 'package:flutter_test/flutter_test.dart';
+import 'package:mobile_apps/src/app.dart';
+import 'package:mobile_apps/src/screens/login/login_screen.dart';
+
+void main() {
+  testWidgets('Initial route is Login', (WidgetTester tester) async {
+    await tester.pumpWidget(App());
+    expect(find.byType(LoginScreen), findsOneWidget);
+  });
+}
diff --git a/web/favicon.png b/web/favicon.png
new file mode 100644
index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1
GIT binary patch
literal 917
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`$AH
z5n0T@pr;JNj1^1m%NQ6KBQrxHN+NuHtdjF{^%7I^lT!66atjzhz^1~gBDWwnwIorY
zA~z?m*s8)-39P~@uh<GCtgoa1R#K8}s}$iIpx~Tel&WB=XQF4IWXGkTpkPy!l4cd;
z;s(`Tl#*tvlu=SrV5P5LUS6(OZmgGIl&)`RX=$l%V5Dzkq+67drdwQ@SCUwvn^&w1
zF$89gOKNd)QD#9&W`3Rm$lS!F{L&IzB_)tW3NQe1XGvxn!lt}psJD{ybM-+o`i6Q2
z`f#&B#)Cwy{EISE^GXsy=Gz(CfK{T1LG7{82U(8f7>G~7qCqZhc3d|4;4lG&j~$oK
zA@xWG2F9zNE{-7<g0;c6{?d*DwbkWz%`Qn?huRyIJUkyNsBkNLtyodm`{EO`fUnl9
zCB0MBRvzN_m}%w8WX9n>;ld7wO#(qnZWJZzI2E3_xA*Lsx!2?73+ET^w%+}I@67GR
zPL~gKB+lnDthp%7_f?t4uW8c8|3WP+WgZ_FE&TA=jOG3EO9#GP7O}Aw)>E_$k#Ij{
zy7GD-^V?e9l7~+mufGc|5hy!fsr=)zztlt_?dh+%eqZG?+EVFvYJGT3%B4l+c?Nxv
zA961J%WD)5K5(#z=Uq!-q}j6RjfU+9tC!e#p8CvEH~sU+6WhDDJxnp0o^W94eWCU1
zQd#DyR^MO$Yr>MKOsyrcjGjlI&9nHBnS0EEGw0Y$CX2WHmGZe!`~O@#c5SN5zDu26
zDI4BKt!FtLvCi9OcFDt_gv}BORd*bZl^1SM*<kdx(e>A_yFxrSX8ds2x$lS21HT;^
zTCIz7I(nCKmV|Unv7TVUR`#dH$H;AN(TuMbbG%<I39k9|LvpRXBg-;5gQ|}*vuFG$
zvwnK}seW&(xzxRA+wH|GvU|fy47XTio?u><%3CMZUe|J|QuJuIw1-!H;WNWB?$;ib
zdFQ+9g^uhz>as0SX1QKp$Jx0PS=bUhTs~c2!d=hEU?gX@B64~UD6e?B`njxgN@xNA
DfL3B_

literal 0
HcmV?d00001

diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png
new file mode 100644
index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa
GIT binary patch
literal 5292
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
L>gTe~DWM4f2kRIC

literal 0
HcmV?d00001

diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png
new file mode 100644
index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6
GIT binary patch
literal 8252
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

literal 0
HcmV?d00001

diff --git a/web/index.html b/web/index.html
new file mode 100644
index 0000000..be87cca
--- /dev/null
+++ b/web/index.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8" />
+    <meta content="IE=Edge" http-equiv="X-UA-Compatible" />
+    <meta name="description" content="A new Flutter project." />
+
+    <!-- iOS meta tags & icons -->
+    <meta name="apple-mobile-web-app-capable" content="yes" />
+    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+    <meta name="apple-mobile-web-app-title" content="mobile_apps" />
+    <link rel="apple-touch-icon" href="icons/Icon-192.png" />
+
+    <!-- Favicon -->
+    <link rel="shortcut icon" type="image/png" href="favicon.png" />
+
+    <title>COVID10HARI</title>
+    <link rel="manifest" href="manifest.json" />
+
+    <meta name="google-signin-client_id" content="341221363005-ev5ijn7e8vn3qnrgjtmfjci5an4mtjij.apps.googleusercontent.com" /> 
+  </head>
+  <body>
+    <!-- Firebase dependencies begin here-->
+    <!-- The core Firebase JS SDK is always required and must be listed first -->
+    <script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-app.js"></script>
+
+    <!-- TODO: Add SDKs here if we use more Firebase products
+    https://firebase.google.com/docs/web/setup#available-libraries -->
+    <script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-analytics.js"></script>
+    <script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-auth.js"></script>
+    <script src="https://www.gstatic.com/firebasejs/7.12.0/firebase-firestore.js"></script>
+
+    <script>
+      // Your web app's Firebase configuration
+      var firebaseConfig = {
+        apiKey: "AIzaSyDpDw0CC0N2J-vRIS8mkUbSSyCQFZ58Htg",
+        authDomain: "corona-fasilkom.firebaseapp.com",
+        databaseURL: "https://corona-fasilkom.firebaseio.com",
+        projectId: "corona-fasilkom",
+        storageBucket: "corona-fasilkom.appspot.com",
+        messagingSenderId: "341221363005",
+        appId: "1:341221363005:web:56f1eb3c7f6c522da7c954",
+        measurementId: "G-TRYY6NYS5Z"
+      };
+      // Initialize Firebase
+      firebase.initializeApp(firebaseConfig);
+      firebase.analytics();
+    </script>
+    <!-- Firebase dependencies end-->
+    
+    <!-- This script installs service_worker.js to provide PWA functionality to
+       application. For more information, see:
+       https://developers.google.com/web/fundamentals/primers/service-workers -->
+    <script>
+      if ("serviceWorker" in navigator) {
+        window.addEventListener("load", function() {
+          navigator.serviceWorker.register("/flutter_service_worker.js");
+        });
+      }
+    </script>
+
+    <script src="main.dart.js" type="application/javascript"></script>
+  </body>
+</html>
diff --git a/web/manifest.json b/web/manifest.json
new file mode 100644
index 0000000..01d824d
--- /dev/null
+++ b/web/manifest.json
@@ -0,0 +1,23 @@
+{
+    "name": "mobile_apps",
+    "short_name": "mobile_apps",
+    "start_url": ".",
+    "display": "minimal-ui",
+    "background_color": "#0175C2",
+    "theme_color": "#0175C2",
+    "description": "A new Flutter project.",
+    "orientation": "portrait-primary",
+    "prefer_related_applications": false,
+    "icons": [
+        {
+            "src": "icons/Icon-192.png",
+            "sizes": "192x192",
+            "type": "image/png"
+        },
+        {
+            "src": "icons/Icon-512.png",
+            "sizes": "512x512",
+            "type": "image/png"
+        }
+    ]
+}
-- 
GitLab