diff --git a/.firebaserc b/.firebaserc
index 29400fde069967fff8980018c7ad06ae19c3d7de..42207977c3fb6fd37cf98872c535b9e5ce0f162f 100644
--- a/.firebaserc
+++ b/.firebaserc
@@ -1,6 +1,7 @@
 {
   "projects": {
     "default": "waspadabencana-staging",
-    "prod": "waspadabencana-prod"
+    "prod": "waspadabencana-prod",
+    "release": "sigapcsui"
   }
 }
\ No newline at end of file
diff --git a/README.md b/README.md
index cefe6abdce747698604b0cda06a1d86c569b58c2..0144f87e114893be8704a2ebd0e78b47521c154e 100644
--- a/README.md
+++ b/README.md
@@ -1,76 +1,152 @@
-# Fasilkom COVID-19 Project
-A health care equipment marketplace to help COVID-19 situation.
-
-## Table of Contents
-
-1. Getting Started
-2. Using Text Editor or IDE
-3. Setting up different Firebase App
-4. Style Guide
-5. Generate JSON Model (Serializer/Deserializer) Class using pub runner
-6. Architecture/State Management Guide
-7. Git Flow
-8. Database Usage
-
-## 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
+# Aplikasi SigapCS untuk **Mobile**
+
+## Daftar Isi
+
+1. [Setup Environment](#setup-environment)
+2. [Penggunaan Text Editor atau IDE](#penggunaan-text-editor-atau-ide)
+3. [Konfigurasi Firebase App](#konfigurasi-firebase-app)
+4. [Panduan Code Style](#panduan-code-style)
+5. [Generate JSON Model](#generate-json-model)
+6. [State Management](#state-management)
+7. [Git Flow](#git-flow)
+8. [Penggunaan Database](#penggunaan-database)
+
+## Setup Environment
+1. Install Flutter dan seluruh komponen pendukung dengan mengikuti instruksi [Flutter.dev documentation](https://flutter.dev/docs/get-started/install)
+2. Codebase ini menggunakan Flutter v1.15.17. Untuk saat ini versi tersebut berada pada `channel beta`. Gunakan perintah dibawah ini untuk pindah ke channel tersebut:
+
 ```bash
-flutter channel beta && flutter upgrade`
+flutter channel beta && flutter upgrade
 ```
-4. Run this command to enable compiling to Web
-```bash
-flutter config --enable-web
+
+Bilamana versi Flutter anda saat ini sudah v1.15.17, anda tidak perlu melakukan perintah tersebut.
+
+3. Tambahkan flutter kedalam $PATH supaya bisa digunakan melalui terminal/command prompt
+4. Sebagai tambahan, gunakan perintah dibawah ini supaya flutter bisa menghasil aplikasi web:
+
 ```
-5. Run this application in Chrome by running
-```bash
-flutter run -d chrome
+flutter config --enable-web
 ```
-> Note: if you're using Chromium, you may need to set `CHROME_EXECUTABLE` to point to your Chromium executable.
 
-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
+5. Anda siap memulai.
+
+## Penggunaan Text Editor or IDE
+
+Pengembangan flutter bisa menggunakan bermacam - macam editor. Disini kami menyarankan kalian menggunakan
+VSCode atau Intellij IDEA.
+
+## Konfigurasi Firebase App
+
+Codebase saat ini sudah terhubung dengan database Cloud Firestore versi *staging* milik tim SigapCS tanpa harus melakukan konfigurasi tambahan.
+Hal ini bertujuan untuk mempercepat **setup environment** para ***contributor*** pada ***development environment*** masing - masing.
+Bilamana kontributor ingin terlebih dahulu menggunakan Firebase App milik sendiri, silahkan lakukan perubahan berikut ini:
 
-## 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.
+- Android: Ganti berkas `android/app/google-services.json` dengan berkas `google-services.json` milik kontributor.
+- Web: Ganti potongan kode `firebaseConfig` dalam berkas `web/index.html` dengan milik kontributor.
+- iOS: Ganti berkas `ios/Runner/GoogleService-Info.plist` dengan berkas `GoogleService-Info.plist` milik kontributor
 
-## 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: Change `ios/Runner/GoogleService-Info.plist` with your own `GoogleService-Info.plist` file
+Semua berkas atau potongan kode pengganti dapat diambil dari Firebase Console milik kontributor.
+Selengkapnya dapat dibaca pada [Firebase Setup Page](https://firebase.google.com/docs/ios/setup).
 
-Currently, all these configurations set for Staging Environment prepared by SigapCS Team
+Keterangan lebih lanjut mengenai database Cloud Firestore yang dipakai pada Codebase ini, dapat dilihat
+lebih jauh pada **section** [Penggunaan Database](penggunaan-database).
 
-## 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`
+## Panduan Code Style
 
+Untuk menjaga konsistensi dan kualitas dari kode, Codebase ini akan menggunakan panduan penulisan kode [Effective Dart](https://dart.dev/guides/language/effective-dart) yang menjadi dasar perangkat *linter*.
+Selain itu, Codebase ini juga menggunakan [pedantic](https://pub.dev/packages/pedantic) sebagai `package` tambahan untuk menjaga konsistensi dan penulisan kode.
+Bilamana terjadi perubahan gaya penulisan kode, silahkan ubah berkas `analysis_options.yaml` untuk menyesuaikan *linter* codebase ini.
 
-## 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.
+## Generate JSON Model
+Melakukan Serializing dan Deserializing dalam Flutter dipermudah dengan penggunaan **package** `dart:convert`.
+Penggunaan **package** ini mengharuskan **kontributor** untuk membuat ***boilerplate code*** sebagai spesifikasi pemetaan atribut terhadap **key** dari berkas JSON.
+Pendekatan ini bukan sebuah solusi yang **scalable** untuk pembuatan aplikasi skala besar.
 
-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:
+Pembuatan JSON model sebagai bagian dari Serializing dan Deserializing cukup dengan melakukan **import** `json_annotations` dan deklarasikan pada sebuah **class** dengan `@JsonSerializable()` sebagai acuan pemetaan (Contoh dapat dilihat pada direktori `models/` directory).
+Selanjutnya, jalankan perintah berikut dalam terminal/command prompt untuk menghasilkan kode pemetaan secara otomatis:
 ```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:
+Perintah diatas hanya berlaku satu kali saja. Bilamana ada perubahan pada model, maka perintah diatas harus dijalankan ulang. Untuk menghindari hal tersebut, kita dapat menggunakan perintah berikut:
 ```bash
 flutter pub run build_runner watch
 ```
+Informasi lebih lanjut terkait *JSON serialization* dapat dilihat pada [dokumentasi ini](https://flutter.dev/docs/development/data-and-backend/json).
+
+## State Management
+
+Codebase ini menggunakan *library* [provider](https://pub.dev/packages/provider) untuk melakukan **state management**. *Provider* dianggap sebagai
+konsep yang relatif lebih mudah untuk dipelajari dibandingkan dengan Redux, Mobx, dan lainnya. Informasi lebih lanjut dapat dilihat
+pada [tautan ini](https://flutter.dev/docs/development/data-and-backend/state-mgmt/simple)
+
+## Git Flow
+
+Standarisasi **workflow** kontribusi kode perlu disepakati untuk memudahkan melakukan **tracking** dan **merging source code** oleh kontributor.
+Pola kerja secara umum mengacu pada standard **Gitlab Workflow** dengan menerapkan ***long-lived protected branch*** pada *Master* dan *Release*.
+Pada *Staging branch* diterapkan Trunk-based (**Staging branch** sebagai Trunk). Berikut penjelasan masing - masing **branch**:
+
+* Release
+
+Merupakan **protected branch** yang menyimpan **source code** siap deploy ke dalam **production environment**.
+Setiap versi *release* pada **branch** ini akan diberikan `tag` untuk melakukan **tracking** terhadap **source code** setiap versi.
+Akses pada **branch** ini hanya diberikan kepada tim inti SigapCS.
+
+* Master
+
+Merupakan **protected branch** berisi **source code** siap pakai yang menunggu persetujuan tim QA dan Operasional
+sebelum sebelum masuk ke dalam **production environment**. Akses pada **branch** ini hanya diberikan kepada tim inti SigapCS, QA, dan Operasional.
+
+* Staging
+
+Merupakan **branch** untuk implementasi sebuah fitur yang diambil pada suatu tahapan.
+Kontributor dapat langsung mengimplementasikan fitur yang diambil pada **branch ini**
+(mengikuti pola **trunk-based** dengan **trunk**-nya adalah **staging branch**).
+Akses pada **branch** ini diberikan kepada *kontributor yang sudah terdaftar*. Bagi yang ingin
+ikut berkontribusi silahkan hubungi email [sigap@cs.ui.ac.id](mailto:sigap@cs.ui.ac.id).
+
+* **Branch** lainnya
+
+Kontributor bisa membuat branch baru untuk melakukan implementasi pada **branch** ini.
+Kontributor yang membuat bertanggung jawab sepenuhnya pada **branch** ini. Bilamana ada *kontributor yang belum terdaftar* dan
+ingin memasukan hasil implementasi dari *branch* ini kedalam **staging**, maka dipersilahkan buat ***Merge Request*** terlebih dahulu dan tunggu hasil *review* dari tim.
+Hubungi email [sigap@cs.ui.ac.id](mailto:sigap@cs.ui.ac.id) untuk informasi lebih lanjut.
+
+Berikut ilustrasi penggunaan masing - masing *branch*
+
+![Git Flow](documentation/devguide.png)
+
+Ada beberapa hal yang harus diperhatikan:
+
+1. *Semua kontributor* mulai bekerja di **staging branch**. Lakukan implementasi sesuai fitur yang diambil (Terapkan Best practice, pull dulu sebelum push).
+Sebagai Kontributor, sepantasnya kita menjaga agar pipeline di staging selalu hijau.
+2. Setelah melakukan *setup environment*, kontributor dapat langsung melakukan *build* codebase dan menjalankan aplikasi. *Database* yang disediakan adalah
+Cloud Firestore versi *Staging* milik SigapCS dan sudah terhubung dengan codebase.
+3. Codebase ini sudah dilengkapi dengan **script** Gitlab CI/CD. Konfigurasi dan *Environment Key* untuk melakukan **build** aplikasi pada **branch** *Master* dan *Release* sudah tersedia.
+Bilamana ada *Environment Key* yang harus ditambahkan, silahkan hubungi tim secara langsung atau melalui email [sigap@cs.ui.ac.id](mailto:sigap@cs.ui.ac.id)
+4. *Semua kontributor* dimohon untuk tidak mengubah standarisasi *Styling* dan *Layouting* dari aplikasi tanpa mendiskusikan terlebih dahulu dengan tim inti, QA, dan operasional.
+
+## Penggunaan Database
+
+Terdapat 3 jenis database yang digunakan pada Codebase ini:
+
+1. Staging Database
+
+*Database* ini digunakan untuk mengimplementasikan struktur data baru sesuai dengan fitur yang diambil. Kontributor dapat menyesuaikan atau menambahkan
+data **dummy** pada **database** ini. Codebase sudah secara otomatis mengacu kepada *database* ini. Akses kepada *console* dari *database*
+hanya diberikan kepada kontributor yang sudah *terdaftar*.
+
+2. Master Database
+
+*Database* ini digunakan untuk oleh tim inti, operasional, dan QA untuk melakukan pengujian *source code* hasil implementasi dari *staging branch*.
+Aplikasi (Web/Android/iOS) yang dihasilkan oleh Gitlab CI/CD pada branch *master* sudah secara otomatis mengacu kepada *database* ini. Akses hanya diberikan kepada
+tim inti, operasional, dan QA. Penyesuaian yang harus dilakukan pada *database* ini akan dilakukan oleh tim inti, operasional, dan QA dengan melihat
+***staging database*** sebagai acuan.
 
-And voila! Flutter will generate the model code for us.
+3. Release Database
 
-For more info about JSON serialization head over to [this documentation](https://flutter.dev/docs/development/data-and-backend/json).
+*Database* ini digunakan untuk ***production environment***.
+Aplikasi (Web/Android/iOS) yang dihasilkan oleh Gitlab CI/CD pada branch *release* sudah secara otomatis mengacu kepada *database* ini. Akses hanya diberikan kepada
+tim inti, dan operasional. Penyesuaian yang harus dilakukan pada *database* ini akan dilakukan oleh tim inti, dan operasional dengan melihat
+***master database*** sebagai acuan.
 
-## 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).
+Informasi lebih lanjut silahkan hubungi tim secara langsung atau melalui email [sigap@cs.ui.ac.id](mailto:sigap@cs.ui.ac.id)
\ No newline at end of file
diff --git a/documentation/dbguide.png b/documentation/dbguide.png
new file mode 100644
index 0000000000000000000000000000000000000000..061711f1338c7b79d6f129c418da4dac98e99011
Binary files /dev/null and b/documentation/dbguide.png differ
diff --git a/documentation/devguide.png b/documentation/devguide.png
new file mode 100644
index 0000000000000000000000000000000000000000..e08a93cd7fc8e1906972705e64fab973eb490383
Binary files /dev/null and b/documentation/devguide.png differ