diff --git a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt
index be27dae07578b6b13268fd7200efd5e887e30e09..cd11db38e2c06dd0beecf0dd8fbd3046c01acaea 100644
--- a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt
+++ b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt
@@ -1,9 +1,11 @@
 package com.example.nerbos.fragments.transaction
 
 import android.Manifest
+import android.annotation.SuppressLint
 import android.app.Dialog
 import android.content.ActivityNotFoundException
 import android.content.Intent
+import android.content.IntentFilter
 import android.content.pm.PackageManager
 import android.content.pm.ResolveInfo
 import android.location.Geocoder
@@ -49,7 +51,8 @@ import java.util.Locale
 
 class TransactionFragment : Fragment() {
 
-    private  lateinit var transactionViewModel: TransactionViewModel
+    private lateinit var transactionViewModel: TransactionViewModel
+    private lateinit var transactionReceiver: TransactionReceiver
     private lateinit var authentication: Authentication
     private var currentLocation: Location? = null
     private var networkManagerService: NetworkManagerService = NetworkManagerService()
@@ -162,9 +165,27 @@ class TransactionFragment : Fragment() {
             xlsxSend.visibility = View.GONE
         }
 
+        // Randomize Transactionq
+        view.findViewById<ImageView>(R.id.randomizeTransactionButton).setOnClickListener {
+            val intent = Intent("ACTION_RANDOMIZE_TRANSACTION")
+            requireContext().sendBroadcast(intent)
+        }
+
         return view
     }
 
+    @SuppressLint("UnspecifiedRegisterReceiverFlag")
+    override fun onResume() {
+        super.onResume()
+        transactionReceiver = TransactionReceiver(this)
+        requireContext().registerReceiver(transactionReceiver, IntentFilter("ACTION_RANDOMIZE_TRANSACTION"))
+    }
+
+    override fun onPause() {
+        super.onPause()
+        requireContext().unregisterReceiver(transactionReceiver)
+    }
+
     private fun createExcelFile(transactions : List<Transaction>, extension: String) : Workbook{
         val workbook : Workbook
         val sheet : Sheet
@@ -306,6 +327,65 @@ class TransactionFragment : Fragment() {
         dialog.window!!.setBackgroundDrawableResource(R.drawable.round_corner_transparent)
         dialog.window!!.attributes = layoutParams
     }
+
+    internal fun showRandomAddTransactionDialog() {
+        val dialog = Dialog(requireContext())
+
+        dialog.setContentView(R.layout.add_transaction)
+        dialog.setCancelable(true)
+
+        val layoutParams = WindowManager.LayoutParams()
+        layoutParams.copyFrom(dialog.window!!.attributes)
+        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT
+        layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT
+
+        // Getting reference from elements in the dialog
+        val nameInput = dialog.findViewById<EditText>(R.id.nameInput)
+        val nominalInput = dialog.findViewById<EditText>(R.id.nominalInput)
+        val locationInput = dialog.findViewById<EditText>(R.id.locationInput)
+        val incomeRadioButton = dialog.findViewById<RadioButton>(R.id.incomeInput)
+        val outcomeRadioButton = dialog.findViewById<RadioButton>(R.id.outcomeInput)
+
+        // Randomize
+        val randomName = "Transaction " + (1..1000).random()
+        val randomNominal = (1..1000000).random().toFloat()
+        val randomLocation = "Location " + (1..1000).random()
+        val randomCategory = (0..1).random() // 0 for income, 1 for outcome
+
+        // Setting the random content
+        nameInput.setText(randomName)
+        nominalInput.setText(randomNominal.toString())
+        locationInput.setText(randomLocation)
+
+        if (randomCategory == 0) {
+            incomeRadioButton.isChecked = true
+        } else {
+            outcomeRadioButton.isChecked = true
+        }
+
+        dialog.findViewById<Button>(R.id.addButton).setOnClickListener {
+            if (insertDataToDatabase(dialog)) {
+                dialog.dismiss()
+            }
+        }
+
+        dialog.findViewById<Button>(R.id.cancelButton).setOnClickListener {
+            dialog.dismiss()
+        }
+
+        dialog.findViewById<ImageView>(R.id.autoFillLocationButton).setOnClickListener {
+            if (!networkManagerService.isNetworkAvailable(requireContext())) {
+                Toast.makeText(requireContext(), "No internet connection, this feature requires internet connection", Toast.LENGTH_SHORT).show()
+            } else {
+                locationInput.setText(getAddressName())
+            }
+        }
+
+        dialog.show()
+        dialog.window!!.setBackgroundDrawableResource(R.drawable.round_corner_transparent)
+        dialog.window!!.attributes = layoutParams
+    }
+
     private fun showModifyTransactionDialog(transaction: Transaction) {
         val dialog = Dialog(requireContext())
 
diff --git a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionReceiver.kt b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionReceiver.kt
new file mode 100644
index 0000000000000000000000000000000000000000..81e9924344e5e0769889708f0aa112d4c49b69a4
--- /dev/null
+++ b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionReceiver.kt
@@ -0,0 +1,15 @@
+package com.example.nerbos.fragments.transaction
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.widget.Toast
+
+class TransactionReceiver(private val fragment: TransactionFragment) : BroadcastReceiver() {
+    override fun onReceive(context: Context?, intent: Intent?) {
+        if (intent?.action == "ACTION_RANDOMIZE_TRANSACTION") {
+            fragment.showRandomAddTransactionDialog()
+            Toast.makeText(context, "Broadcast Received: Randomize Transaction", Toast.LENGTH_SHORT).show()
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/random.png b/app/src/main/res/drawable/random.png
new file mode 100644
index 0000000000000000000000000000000000000000..8442456fd33c9e24ae3f6db98b31de51d7420c38
Binary files /dev/null and b/app/src/main/res/drawable/random.png differ
diff --git a/app/src/main/res/layout/fragment_transaction.xml b/app/src/main/res/layout/fragment_transaction.xml
index 10f6f89ddcf185f2a21e3e14a69b5a0a5a7aa234..5958b058e46b416ad179ff50e61af2eb36c81ef4 100644
--- a/app/src/main/res/layout/fragment_transaction.xml
+++ b/app/src/main/res/layout/fragment_transaction.xml
@@ -49,6 +49,17 @@
             app:layout_constraintTop_toBottomOf="@+id/saveTransactionsButton"
         />
 
+        <ImageView
+            android:id="@+id/randomizeTransactionButton"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="30dp"
+            android:layout_marginEnd="50dp"
+            android:background="@drawable/random"
+            android:contentDescription="@string/randomize_transaction_button"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/sendTransactionsButton" />
+
         <ImageView
             android:id="@+id/addTransactionButton"
             android:layout_width="wrap_content"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index cc66f87f61f9e12f668d8f4a13303c42204bc2ea..ebab2ec94a85baefa1fdfb70130d6d4f05b6f469 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,4 @@
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
     <string name="app_name">NerbOS</string>
     <string name="hello_blank_fragment">Hello blank fragment</string>
     <string name="navbar_transaction">Transactions</string>
@@ -17,7 +17,7 @@
     <string name="password">password</string>
     <string name="token">token</string>
     <string name="key_alias">key13521000</string>
-    <string name="cipher_transformation">RSA/ECB/PKCS1Padding</string>
+    <string name="cipher_transformation" tools:ignore="Typos">RSA/ECB/PKCS1Padding</string>
     <string name="android_key_store">AndroidKeyStore</string>
     <string name="authorization">Authorization</string>
     <string name="bearer">Bearer</string>
@@ -69,5 +69,6 @@
     <string name="logo">Logo</string>
     <string name="back_button">Back Button</string>
     <string name="autofill_location_button">AutoFill Location Button</string>
+    <string name="randomize_transaction_button">Randomize Transaction Button</string>
 
 </resources>
\ No newline at end of file