diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d5df3c05c5c719ea7e646e892b520d138135fd98..dec08962cd350dc3b3f34143222c704e3824535e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,24 +11,26 @@
     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
     <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
 
-    <uses-permission android:name="android.permission.CAMERA"/>
+    <uses-permission android:name="android.permission.CAMERA" />
+
     <uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
+
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 
     <uses-feature
         android:name="android.hardware.camera"
-        android:required="false"/>
+        android:required="false" />
 
 
     <application
         android:name=".BondowowoApp"
         android:allowBackup="true"
-        android:requestLegacyExternalStorage="true"
         android:dataExtractionRules="@xml/data_extraction_rules"
         android:fullBackupContent="@xml/backup_rules"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
+        android:requestLegacyExternalStorage="true"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/Theme.BondowosoATM"
@@ -42,7 +44,7 @@
             android:exported="false"
             android:theme="@style/AppTheme.NoActionBar" />
         <activity
-            android:name=".LoginActivity"
+            android:name=".ui.login.LoginActivity"
             android:exported="true"
             android:theme="@style/AppTheme.NoActionBar">
             <intent-filter>
@@ -51,11 +53,9 @@
             </intent-filter>
         </activity>
         <activity
-            android:name="com.journeyapps.barcodescanner.CaptureActivity"
-            android:screenOrientation="fullSensor"
-            tools:replace="screenOrientation" />
-        <activity android:name=".ui.settings.ExportToFileActivity" />
-        <activity android:name=".ui.settings.SendEmailActivity" />
+            android:name=".ui.twibbon.TwibbonActivity"
+            android:exported="false"
+            android:theme="@style/AppTheme.NoActionBar" />
 
         <provider
             android:name="androidx.core.content.FileProvider"
@@ -68,8 +68,6 @@
         </provider>
 
 
-
-
     </application>
 
     <queries>
diff --git a/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt b/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt
index 415865581a1f17ee8855bb59a55ae2c186a6c9b1..5dc20acc2da7fd59529eb391d63e88e20917ae91 100644
--- a/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt
+++ b/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt
@@ -4,6 +4,7 @@ import android.app.Activity
 import android.app.Application
 import android.content.Context
 import android.content.Intent
+import com.atm.bondowowo.ui.login.LoginActivity
 import com.atm.bondowowo.utils.BackgroundJWTChecker
 import com.atm.bondowowo.utils.UserPreferencesUtil
 
diff --git a/app/src/main/java/com/atm/bondowowo/MainActivity.kt b/app/src/main/java/com/atm/bondowowo/MainActivity.kt
index 13fd9a1e61652d4c73eb00ec1bf34df5468cdc56..f916c79933f5a4bd88624d866e566e20a05f3ed4 100644
--- a/app/src/main/java/com/atm/bondowowo/MainActivity.kt
+++ b/app/src/main/java/com/atm/bondowowo/MainActivity.kt
@@ -4,13 +4,12 @@ import android.content.Intent
 import android.os.Bundle
 import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
-import androidx.lifecycle.Observer
 import androidx.navigation.findNavController
 import androidx.navigation.fragment.NavHostFragment
 import androidx.navigation.ui.setupWithNavController
 import com.atm.bondowowo.databinding.ActivityMainBinding
+import com.atm.bondowowo.ui.login.LoginActivity
 import com.atm.bondowowo.utils.DialogHelper
-import com.atm.bondowowo.utils.NetworkHelper
 import com.atm.bondowowo.utils.NetworkStateLiveData
 import com.atm.bondowowo.utils.NetworkUtils
 import kotlinx.coroutines.CoroutineScope
diff --git a/app/src/main/java/com/atm/bondowowo/LoginActivity.kt b/app/src/main/java/com/atm/bondowowo/ui/login/LoginActivity.kt
similarity index 97%
rename from app/src/main/java/com/atm/bondowowo/LoginActivity.kt
rename to app/src/main/java/com/atm/bondowowo/ui/login/LoginActivity.kt
index 02fa599ad0987f5469b6b9ac88c8e03125cf6d42..479537a5dff6eedf3b1283844b12694b1eaa4281 100644
--- a/app/src/main/java/com/atm/bondowowo/LoginActivity.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/login/LoginActivity.kt
@@ -1,4 +1,4 @@
-package com.atm.bondowowo
+package com.atm.bondowowo.ui.login
 
 import android.content.Context
 import android.content.Intent
@@ -8,6 +8,8 @@ import android.widget.EditText
 import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.Observer
+import com.atm.bondowowo.MainActivity
+import com.atm.bondowowo.R
 import com.atm.bondowowo.data.model.LoginRequest
 import com.atm.bondowowo.utils.DialogHelper
 import com.atm.bondowowo.utils.NetworkStateLiveData
diff --git a/app/src/main/java/com/atm/bondowowo/ui/scan/ScanFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/scan/ScanFragment.kt
index ce83385dda48152622b0ff4d94614de1d10680f6..760f78a17a8c9f837a714d41f0a7a558ecd9f047 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/scan/ScanFragment.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/scan/ScanFragment.kt
@@ -22,6 +22,7 @@ import androidx.core.app.ActivityCompat
 import androidx.core.content.ContextCompat
 import androidx.fragment.app.Fragment
 import com.atm.bondowowo.R
+import com.atm.bondowowo.ui.twibbon.TwibbonActivity
 import com.budiyev.android.codescanner.CodeScanner
 import com.budiyev.android.codescanner.CodeScannerView
 import com.budiyev.android.codescanner.DecodeCallback
@@ -47,7 +48,11 @@ class ScanFragment : Fragment() {
     private val CAMERA_PERMISSION_REQUEST_CODE = 100
     private lateinit var codeScanner: CodeScanner
 
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
         return inflater.inflate(R.layout.fragment_scan, container, false)
     }
 
@@ -61,21 +66,43 @@ class ScanFragment : Fragment() {
             openGallery()
         }
 
+        val btnTwibbon = view.findViewById<Button>(R.id.btn_filter)
+        btnTwibbon.setOnClickListener {
+            val intent = Intent(requireContext(), TwibbonActivity::class.java)
+            startActivity(intent)
+        }
+
         // Check camera permission
-        if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
-            ActivityCompat.requestPermissions(requireActivity(), arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION_REQUEST_CODE)
+        if (ContextCompat.checkSelfPermission(
+                requireContext(),
+                Manifest.permission.CAMERA
+            ) != PackageManager.PERMISSION_GRANTED
+        ) {
+            ActivityCompat.requestPermissions(
+                requireActivity(),
+                arrayOf(Manifest.permission.CAMERA),
+                CAMERA_PERMISSION_REQUEST_CODE
+            )
         } else {
             initializeCodeScanner(scannerView)
         }
 
         // for file
-        if (ContextCompat.checkSelfPermission(requireContext(),Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
+        if (ContextCompat.checkSelfPermission(
+                requireContext(),
+                Manifest.permission.WRITE_EXTERNAL_STORAGE
+            ) == PackageManager.PERMISSION_DENIED
+        ) {
             ActivityCompat.requestPermissions(
                 requireActivity(),
                 arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
                 WRITE_EXTERNAL_STORAGE_PERMISSION_CODE
             )
-        } else if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
+        } else if (ContextCompat.checkSelfPermission(
+                requireContext(),
+                Manifest.permission.READ_EXTERNAL_STORAGE
+            ) == PackageManager.PERMISSION_DENIED
+        ) {
             ActivityCompat.requestPermissions(
                 requireActivity(),
                 arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
@@ -84,14 +111,19 @@ class ScanFragment : Fragment() {
         }
     }
 
-    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
+    override fun onRequestPermissionsResult(
+        requestCode: Int,
+        permissions: Array<out String>,
+        grantResults: IntArray
+    ) {
         super.onRequestPermissionsResult(requestCode, permissions, grantResults)
         if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
             if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                 val scannerView = requireView().findViewById<CodeScannerView>(R.id.scanner)
                 initializeCodeScanner(scannerView)
             } else {
-                Toast.makeText(requireContext(), "Camera permission denied", Toast.LENGTH_SHORT).show()
+                Toast.makeText(requireContext(), "Camera permission denied", Toast.LENGTH_SHORT)
+                    .show()
             }
         } else if (requestCode == WRITE_EXTERNAL_STORAGE_PERMISSION_CODE) {
             if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) {
@@ -120,17 +152,19 @@ class ScanFragment : Fragment() {
 
         codeScanner.decodeCallback = DecodeCallback {
             requireActivity().runOnUiThread {
-                val contents =  it.text
+                val contents = it.text
                 tvResult.text = contents
                 Toast.makeText(requireContext(), "Scanned: ${it.text}", Toast.LENGTH_LONG).show()
 
                 val scanOptions = arrayOf<String>("Ya", "Tidak")
                 AlertDialog.Builder(requireContext())
                     .setTitle("Scan Berhasil!\nApakah ingin mengulagi proses Scan?")
-                    .setItems(scanOptions) {_, which -> when (which) {
-                        0 -> codeScanner.startPreview()
-                        1 -> setToTransaction()
-                    } }
+                    .setItems(scanOptions) { _, which ->
+                        when (which) {
+                            0 -> codeScanner.startPreview()
+                            1 -> setToTransaction()
+                        }
+                    }
                     .create().show()
             }
         }
@@ -203,10 +237,12 @@ class ScanFragment : Fragment() {
             val scanOptions = arrayOf<String>("Ya", "Tidak")
             AlertDialog.Builder(requireContext())
                 .setTitle("Scan Berhasil!\nApakah ingin mengulagi proses Scan?")
-                .setItems(scanOptions) {_, which -> when (which) {
-                    0 -> codeScanner.startPreview()
-                    1 -> setToTransaction()
-                } }
+                .setItems(scanOptions) { _, which ->
+                    when (which) {
+                        0 -> codeScanner.startPreview()
+                        1 -> setToTransaction()
+                    }
+                }
                 .create().show()
 
         } catch (e: Exception) {
diff --git a/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt
index e8b872e867986ffc20a6c590754d210b4d74752e..39aeb2ee1e2c323f12e29671c4f2c98407aa7b34 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt
@@ -2,14 +2,13 @@ package com.atm.bondowowo.ui.settings
 
 import android.content.Intent
 import android.os.Bundle
-import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.Button
 import android.widget.LinearLayout
 import androidx.fragment.app.Fragment
-import com.atm.bondowowo.LoginActivity
+import com.atm.bondowowo.ui.login.LoginActivity
 import com.atm.bondowowo.R
 import com.atm.bondowowo.data.local.database.AppDatabase
 import com.atm.bondowowo.utils.ExportToFileUtil
diff --git a/app/src/main/java/com/atm/bondowowo/ui/twibbon/TwibbonActivity.kt b/app/src/main/java/com/atm/bondowowo/ui/twibbon/TwibbonActivity.kt
new file mode 100644
index 0000000000000000000000000000000000000000..491996834f03ddbe70d7928b933bd0d1acced234
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/ui/twibbon/TwibbonActivity.kt
@@ -0,0 +1,15 @@
+package com.atm.bondowowo.ui.twibbon
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import com.atm.bondowowo.databinding.ActivityTwibbonBinding
+
+class TwibbonActivity : AppCompatActivity() {
+
+    private lateinit var binding: ActivityTwibbonBinding
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        binding = ActivityTwibbonBinding.inflate(layoutInflater)
+        setContentView(binding.root)
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index f4c3510fa82e5c378fba2e78c7d49147ef853d83..59a22689342126baef6bac0b428e3a623097f074 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -36,7 +36,7 @@
     <EditText
         android:id="@+id/etPassword"
         android:layout_width="0dp"
-        android:layout_height="75dp"
+        android:layout_height="60dp"
         android:layout_marginTop="16dp"
         android:hint="Enter your password"
         android:inputType="textPassword"
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 4bfc45dad778a0f3d31a3eeceb4779c8b33424a7..b0448f68a450ea466b1092a4b7ee86444cd22b0b 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,21 +1,29 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:layout_height="match_parent">
 
     <androidx.fragment.app.FragmentContainerView
         android:id="@+id/nav_host_fragment"
         android:name="androidx.navigation.fragment.NavHostFragment"
-        android:layout_width="match_parent"
+        android:layout_width="0dp"
         android:layout_height="0dp"
-        android:layout_weight="1"
         app:defaultNavHost="true"
+        app:layout_constraintBottom_toTopOf="@+id/bottom_nav_layout"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
         app:navGraph="@navigation/nav_graph" />
 
     <include
         android:id="@+id/bottom_nav_layout"
-        layout="@layout/bottom_navigation_layout" />
+        layout="@layout/bottom_navigation_layout"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent" />
 
-</LinearLayout>
\ No newline at end of file
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_twibbon.xml b/app/src/main/res/layout/activity_twibbon.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f340509eba3d6a65692f904e10a6a85d05751e6
--- /dev/null
+++ b/app/src/main/res/layout/activity_twibbon.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.atm.bondowowo.ui.scan.ScanFragment">
+
+    <com.google.android.material.appbar.AppBarLayout
+        android:id="@+id/header"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginVertical="8dp"
+            android:text="@string/twibbon"
+            android:textColor="@color/black"
+            android:textSize="20sp"
+            android:textStyle="bold" />
+    </com.google.android.material.appbar.AppBarLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="40dp"
+        android:orientation="vertical"
+        tools:contex="com.atm.bondowowo.ui.scan.ScanFragment">
+
+        <com.budiyev.android.codescanner.CodeScannerView
+            android:id="@+id/scanner"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            app:autoFocusButtonVisible="true" />
+
+
+        <Button
+            android:id="@+id/btn_upload"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="Cekrek" />
+
+        <TextView
+            android:id="@+id/tv_result"
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:layout_marginTop="1dp"
+            android:text="..."
+            android:textAlignment="center"
+            android:textColor="#A92B"
+            android:textSize="20sp" />
+
+    </LinearLayout>
+
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/bottom_navigation_layout.xml b/app/src/main/res/layout/bottom_navigation_layout.xml
index ea6f4c7ba26a0a9950874998902286b23ffb6de9..0b990ca7fcc3206843173070732708f77b1a4bc8 100644
--- a/app/src/main/res/layout/bottom_navigation_layout.xml
+++ b/app/src/main/res/layout/bottom_navigation_layout.xml
@@ -3,7 +3,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/bottomNavigation"
     android:layout_width="match_parent"
-    android:layout_height="70dp"
+    android:layout_height="60dp"
     android:background="@color/white"
     app:itemIconTint="@color/bottom_nav_icon_color"
     app:itemTextColor="@color/bottom_nav_text_color"
diff --git a/app/src/main/res/layout/fragment_scan.xml b/app/src/main/res/layout/fragment_scan.xml
index b55566c2f84d7bbc7d926f81ab12fc799c37e21b..00efe4bac86b3c7fa24942af40dbc75d4ff221ed 100644
--- a/app/src/main/res/layout/fragment_scan.xml
+++ b/app/src/main/res/layout/fragment_scan.xml
@@ -24,45 +24,56 @@
             android:textStyle="bold" />
     </com.google.android.material.appbar.AppBarLayout>
 
-    <LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
-        android:layout_marginTop="40dp"
         android:layout_height="match_parent"
+        android:layout_marginTop="40dp"
         android:orientation="vertical"
         tools:contex="com.atm.bondowowo.ui.scan.ScanFragment">
 
         <com.budiyev.android.codescanner.CodeScannerView
             android:id="@+id/scanner"
             android:layout_width="match_parent"
-            android:layout_height="600dp"
-            app:autoFocusButtonVisible="true"/>
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            app:autoFocusButtonVisible="true" />
 
-        <Button
-            android:id="@+id/btn_upload"
-            android:layout_width="wrap_content"
+        <LinearLayout
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center"
             android:layout_marginTop="5dp"
+            android:gravity="center"
+            android:orientation="horizontal">
 
-            android:text="Upload File"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent" />
+            <Button
+                android:id="@+id/btn_upload"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="10dp"
+                android:text="@string/upload_file" />
+
+            <Button
+                android:id="@+id/btn_filter"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="10dp"
+                android:text="@string/use_filter" />
+
+        </LinearLayout>
 
         <TextView
             android:id="@+id/tv_result"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
+            android:layout_height="40dp"
             android:layout_marginTop="1dp"
             android:text="..."
             android:textAlignment="center"
-            android:textSize="20sp"
-            android:textColor="#A92B"/>
+            android:textColor="#A92B"
+            android:textSize="20sp" />
 
     </LinearLayout>
 
 
-
 </androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8f1fe466582ed06765f13edd885a7a4c34aba4bf..955d36d4a1dd24af1ad955727c7b75fa294f5501 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -7,6 +7,9 @@
     <string name="add">+</string>
     <string name="capture">Capture</string>
     <string name="no_data_to_display">Empty :( Please fill transaction</string>
+    <string name="upload_file">Upload File</string>
+    <string name="use_filter">Use Filter</string>
+    <string name="twibbon">Twibbon</string>
     <string-array name="transaction_option">
         <item>Edit</item>
         <item>Delete</item>