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 54afb4784a32cdb5d4aeef6ac96587edf31df83a..34f4459c4f7e4a0b55e887102e2f29110fd3aefb 100644
--- a/app/src/main/java/com/example/bondoman/activities/MainActivity.kt
+++ b/app/src/main/java/com/example/bondoman/activities/MainActivity.kt
@@ -1,5 +1,6 @@
 package com.example.bondoman.activities
 
+import android.app.Activity
 import android.content.BroadcastReceiver
 import android.content.Context
 import android.content.Intent
@@ -11,16 +12,27 @@ import android.util.Log
 import android.view.MenuItem
 import android.view.View
 import android.widget.LinearLayout
+import androidx.activity.viewModels
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
 import androidx.navigation.findNavController
 import androidx.navigation.fragment.NavHostFragment
 import androidx.navigation.ui.onNavDestinationSelected
 import androidx.viewpager2.adapter.FragmentViewHolder
 import com.example.bondoman.R
+import com.example.bondoman.database.TransactionDatabase
+import com.example.bondoman.entities.Transaction
+import com.example.bondoman.lib.SecurePreferences
+import com.example.bondoman.repositories.TransactionRepository
 import com.example.bondoman.services.TokenCheckService
+import com.example.bondoman.viewModels.TransactionViewModelFactory
+import com.example.bondoman.viewModels.TransactionsViewModel
 import com.google.android.material.bottomnavigation.BottomNavigationView
 import com.google.android.material.navigation.NavigationView
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.SupervisorJob
+import java.util.Date
 
 class MainActivity : AppCompatActivity() {
     private lateinit var tokenExpiredReceiver: BroadcastReceiver
@@ -30,12 +42,27 @@ class MainActivity : AppCompatActivity() {
     private lateinit var bottomNavigationView: BottomNavigationView;
     private lateinit var navigationView: NavigationView;
     private lateinit var fragment: NavHostFragment;
+    private lateinit var securePreferences: SecurePreferences
+    private val newTransactionRequestCode = 1
+    private val editTransactionRequestCode = 2
+    private var isAddTransactionActivityRunning = false
+    private val wordViewModel: TransactionsViewModel by viewModels {
+        TransactionViewModelFactory(
+            TransactionRepository(
+                TransactionDatabase.getInstance(this, CoroutineScope(
+                    SupervisorJob()
+                )
+                ).transactionDao(), securePreferences)
+        )
+    }
 
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
 
+        securePreferences = SecurePreferences(this)
+
         tokenServiceIntent= Intent(this, TokenCheckService::class.java)
         startService(tokenServiceIntent)
 
@@ -58,10 +85,11 @@ class MainActivity : AppCompatActivity() {
 
         randomizeReceiver = object : BroadcastReceiver() {
             override fun onReceive(context: Context?, intent: Intent?) {
-                if (intent?.action == "com.example.bondoman.RANDOMIZE_TRANSACTION") {
+                if (intent?.action == "com.example.bondoman.RANDOMIZE_TRANSACTION" && !isAddTransactionActivityRunning) {
+                    isAddTransactionActivityRunning = true
                     val randomizeIntent = Intent(this@MainActivity, AddTransaction::class.java)
                     randomizeIntent.putExtras(intent)
-                    startActivity(randomizeIntent)
+                    startActivityForResult(randomizeIntent, newTransactionRequestCode)
                 }
             }
         }
@@ -138,4 +166,27 @@ class MainActivity : AppCompatActivity() {
             isReceiverRegistered = false
         }
     }
+
+    override fun onActivityResult(requestCode: Int, resultCode: Int, intentData: Intent?) {
+        super.onActivityResult(requestCode, resultCode, intentData)
+
+        if (requestCode == newTransactionRequestCode && resultCode == Activity.RESULT_OK) {
+            val title = intentData?.getStringExtra(AddTransaction.TITLE) ?: ""
+            val amount = intentData?.getFloatExtra(AddTransaction.AMOUNT, 0.0f) ?: 0.0f
+            val type = intentData?.getStringExtra(AddTransaction.TYPE) ?: ""
+            val location = intentData?.getStringExtra(AddTransaction.LOCATION) ?: ""
+
+            val transaction = Transaction(
+                id = 0,
+                title = title,
+                category = type,
+                amount = amount,
+                location = location,
+                date = Date(),
+                userEmail = securePreferences.getEmail() ?: ""
+            )
+            wordViewModel.insert(transaction)
+            isAddTransactionActivityRunning = false
+        }
+    }
 }
\ No newline at end of file