diff --git a/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt b/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt
index 11a06b584859a4b205a2ed1d90d17c0279f8a76f..1d3779673f07b82b4a606adf69711f9114ecebbc 100644
--- a/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt
+++ b/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt
@@ -2,6 +2,8 @@ package com.example.bondoman.activities
 
 import android.Manifest
 import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
 import android.content.BroadcastReceiver
 import android.content.Context
 import android.content.Intent
@@ -58,7 +60,10 @@ class AddTransaction : AppCompatActivity() {
         }
         supportActionBar?.title = "Add Transaction"
 
+        val editTextTitle = findViewById<EditText>(R.id.editTextTitle)
         val spinnerCategory : Spinner = findViewById(R.id.spinnerCategory)
+        val editTextAmount = findViewById<EditText>(R.id.editTextAmount)
+        val editTextLocation = findViewById<EditText>(R.id.editTextLocation)
 
         val adapter = ArrayAdapter.createFromResource(
             this,
@@ -66,13 +71,19 @@ class AddTransaction : AppCompatActivity() {
             R.layout.spinner_dropdown
         )
 
+        editTextTitle.setText(intent.getStringExtra("TITLE"))
+        spinnerCategory.setSelection(intent.getIntExtra("TYPE", 0))
+        editTextAmount.setText(intent.getFloatExtra("AMOUNT", 0f).toString())
+
         spinnerCategory.adapter = adapter
 
         val submitButton : Button = findViewById(R.id.buttonSubmit)
         locationText = findViewById(R.id.editTextLocation)
         submitButton.setOnClickListener {
-            val title = findViewById<EditText>(R.id.editTextTitle).text.toString()
+            val title = editTextTitle.text.toString()
             val category = spinnerCategory.selectedItem.toString()
+            val amount = editTextAmount.text.toString().toFloatOrNull() ?: 0f
+            val location = editTextLocation.text.toString()
             val amount = findViewById<EditText>(R.id.editTextAmount).text.toString().toFloatOrNull() ?: 0f
             val location = locationText.text.toString()
 
diff --git a/app/src/main/java/com/example/bondoman/activities/MainActivity.kt b/app/src/main/java/com/example/bondoman/activities/MainActivity.kt
index a710b375f5c7476091b391e4d9a802e736d7ee3f..362f4d80ac01afe2260371c9d12f1515352a3642 100644
--- a/app/src/main/java/com/example/bondoman/activities/MainActivity.kt
+++ b/app/src/main/java/com/example/bondoman/activities/MainActivity.kt
@@ -15,6 +15,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView
 
 class MainActivity : AppCompatActivity() {
     private lateinit var tokenExpiredReceiver: BroadcastReceiver
+    private lateinit var randomizeReceiver: BroadcastReceiver
     private lateinit var tokenServiceIntent : Intent
     private var isReceiverRegistered = false
 
@@ -41,6 +42,16 @@ class MainActivity : AppCompatActivity() {
             }
 
         }
+
+        randomizeReceiver = object : BroadcastReceiver() {
+            override fun onReceive(context: Context?, intent: Intent?) {
+                if (intent?.action == "com.example.bondoman.RANDOMIZE_TRANSACTION") {
+                    val randomizeIntent = Intent(this@MainActivity, AddTransaction::class.java)
+                    randomizeIntent.putExtras(intent)
+                    startActivity(randomizeIntent)
+                }
+            }
+        }
         val bottomNavigationView = findViewById<BottomNavigationView
                 >(R.id.bottom_navigation_view)
         val navController = findNavController(R.id.nav_fragment)
@@ -54,8 +65,10 @@ class MainActivity : AppCompatActivity() {
 
     override fun onStart() {
         super.onStart()
-        val filter = IntentFilter("com.example.bondoman.TOKEN_EXPIRED")
-        registerReceiver(tokenExpiredReceiver, filter)
+        val tokenIntentFilter = IntentFilter("com.example.bondoman.TOKEN_EXPIRED")
+        registerReceiver(tokenExpiredReceiver, tokenIntentFilter)
+        val randomizeIntentFilter = IntentFilter("com.example.bondoman.RANDOMIZE_TRANSACTION")
+        registerReceiver(randomizeReceiver, randomizeIntentFilter)
         isReceiverRegistered = true
     }
 
diff --git a/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt b/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt
index 02b177ade5dfae0e5362742d42830177ffc67b20..b3fef09cf849add6a337c936ecb780d8c9d94ef6 100644
--- a/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt
+++ b/app/src/main/java/com/example/bondoman/fragments/SettingsFragment.kt
@@ -42,6 +42,7 @@ import java.io.FileOutputStream
 import java.text.SimpleDateFormat
 import java.util.Date
 import java.util.Locale
+import kotlin.random.Random
 
 class SettingsFragment : Fragment() {
     private var _binding: FragmentSettingsBinding? = null
@@ -95,6 +96,8 @@ class SettingsFragment : Fragment() {
         binding.sendButton.setOnClickListener {
             handleSendButtonClick()
         }
+        binding.randomizeButton.setOnClickListener {
+            broadcastRandomizeTransaction()
         binding.logoutButton.setOnClickListener{
             lifecycleScope.launch {
                 showLoading()
@@ -228,4 +231,39 @@ class SettingsFragment : Fragment() {
             FileProvider.getUriForFile(context, context.applicationContext.packageName + ".provider", file)
         )
     }
+
+    private fun broadcastRandomizeTransaction() {
+        val randomizeIntent = Intent()
+        randomizeIntent.action = "com.example.bondoman.RANDOMIZE_TRANSACTION"
+
+        val title = titleChoices.random()
+        val category = categoryChoices.random()
+        val amount = Random.nextInt(1, 1001)
+
+        randomizeIntent.putExtra("TITLE", title)
+        randomizeIntent.putExtra("TYPE", category)
+        randomizeIntent.putExtra("AMOUNT", amount)
+
+        requireActivity().sendBroadcast(randomizeIntent)
+    }
+
+    companion object {
+        private val titleChoices = arrayOf(
+            "Grocery Mart Purchase",
+            "Spring Wardrobe Update",
+            "Restaurant Dinner",
+            "Gas Station Refill",
+            "New Gadgets",
+            "Electricity Bill Payment",
+            "Local Farmer's Market Haul",
+            "Fitness Studio Membership Renewal",
+            "Home Essentials Restock",
+            "Coffee Shop Treat",
+        )
+
+        private val categoryChoices = arrayOf(
+            0,
+            1
+        )
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/receivers/RandomizeReceiver.kt b/app/src/main/java/com/example/bondoman/receivers/RandomizeReceiver.kt
new file mode 100644
index 0000000000000000000000000000000000000000..20118bfa498be80ceae4fed38015ef05aa389b22
--- /dev/null
+++ b/app/src/main/java/com/example/bondoman/receivers/RandomizeReceiver.kt
@@ -0,0 +1,14 @@
+package com.example.bondoman.receivers
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.util.Log
+
+class RandomizeReceiver: BroadcastReceiver() {
+    override fun onReceive(context: Context?, intent: Intent?) {
+        if (intent?.action == "com.example.bondoman.RANDOMIZE_TRANSACTION") {
+            Log.d("AddTransaction", "Received")
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/icon_randomize.png b/app/src/main/res/drawable/icon_randomize.png
new file mode 100644
index 0000000000000000000000000000000000000000..29c662674a66ae5dc44f9ceab1efccb67e160e63
Binary files /dev/null and b/app/src/main/res/drawable/icon_randomize.png differ
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
index 9e4852d26aebf883e0b805a90eb9872388fb3fa6..71114062d9e7c68054898799c702edb0300df9da 100644
--- a/app/src/main/res/layout/fragment_settings.xml
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -12,8 +12,9 @@
         android:layout_height="match_parent">
 
         <LinearLayout
+            android:id="@+id/settings_linear_layout"
             android:layout_width="329dp"
-            android:layout_height="452dp"
+            android:layout_height="wrap_content"
             android:orientation="vertical"
             android:background="@color/bg_color"
             app:layout_constraintBottom_toBottomOf="parent"
@@ -55,6 +56,22 @@
                 android:textSize="17sp"
                 android:textStyle="bold" />
 
+            <Button
+                android:id="@+id/randomize_button"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="24dp"
+                android:background="@drawable/button_background"
+                android:drawableStart="@drawable/ic_randomize"
+                android:drawablePadding="16dp"
+                android:paddingHorizontal="16dp"
+                android:paddingVertical="16dp"
+                android:text="Generate Random Transaction"
+                android:textAlignment="viewStart"
+                android:textAllCaps="false"
+                android:textSize="17sp"
+                android:textStyle="bold" />
+
             <Button
                 android:id="@+id/logout_button"
                 android:layout_width="match_parent"
@@ -70,19 +87,15 @@
                 android:textAllCaps="false"
                 android:textSize="17sp"
                 android:textStyle="bold" />
-        </LinearLayout>
 
-        <com.airbnb.lottie.LottieAnimationView
-            android:id="@+id/loadingAnimation"
-            android:layout_width="335dp"
-            android:layout_height="95dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:lottie_autoPlay="true"
-            app:lottie_loop="true"
-            app:lottie_rawRes="@raw/loading" />
+            <com.airbnb.lottie.LottieAnimationView
+                android:id="@+id/loadingAnimation"
+                android:layout_width="335dp"
+                android:layout_height="95dp"
+                app:lottie_autoPlay="true"
+                app:lottie_loop="true"
+                app:lottie_rawRes="@raw/loading" />
+        </LinearLayout>
 
         <androidx.coordinatorlayout.widget.CoordinatorLayout
             android:id="@+id/snackbarContainer"
@@ -91,9 +104,8 @@
             android:orientation="vertical"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHorizontal_bias="0.495"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/loadingAnimation"
-            app:layout_constraintVertical_bias="0.818" />
+            app:layout_constraintTop_toBottomOf="@id/settings_linear_layout"
+            app:layout_constraintVertical_bias="0.421" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0c3615a7a97471191cf041487b84eed409abb9cf..f76093b3d5e56939e774a24951dd146886cec5b6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,10 +2,10 @@
     <string name="app_name">BondoMan</string>
     <!-- TODO: Remove or change this placeholder text -->
     <string name="hello_blank_fragment">Hello blank fragment</string>
-    <string name="save_button_text">Simpan daftar transaksi</string>
-    <string name="send_button_text">Kirim daftar transaksi</string>
-    <string name="logout_button_text">Keluar</string>
-    <string name="data_transaksi_title">Data Transaksi</string>
-    <string name="randomize_buton_text">Randomize transaksi</string>
+    <string name="save_button_text">Export transaction list</string>
+    <string name="send_button_text">Send transaction to email</string>
+    <string name="logout_button_text">Logout</string>
+    <string name="data_transaksi_title">Transaction Data</string>
+    <string name="randomize_buton_text">Randomize transaction</string>
     <string name="items">Items</string>
 </resources>
\ No newline at end of file