diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index fdf8d994a6599dd8b64a341af14c598069a10022..fe63bb677dc7c018519fa0fb0fecb445e5256c67 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="KotlinJpsPluginSettings">
-    <option name="version" value="1.9.0" />
+    <option name="version" value="1.9.23" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 0ad17cbd33a2f389d524bc4bfef9c52e1f7ab490..8978d23db569daa721cb26dde7923f4c673d1fc9 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
   <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 33277ad0d3f61afe7bc371bec3ca0fc467a40cd9..303188db52402fdc2f088dfc5aeaaa1a834dfea4 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,6 +1,7 @@
 plugins {
     alias(libs.plugins.androidApplication)
     alias(libs.plugins.jetbrainsKotlinAndroid)
+    alias(libs.plugins.jetbrainsKotlinKapt)
 }
 
 android {
@@ -45,12 +46,15 @@ dependencies {
     implementation(libs.androidx.lifecycle.viewmodel.ktx)
     implementation(libs.androidx.navigation.fragment.ktx)
     implementation(libs.androidx.navigation.ui.ktx)
-    implementation(libs.room.runtime)
-    implementation(libs.room.compiler)
-    implementation(libs.room.ktx)
-    implementation(libs.room.common)
     testImplementation(libs.junit)
     androidTestImplementation(libs.androidx.junit)
     androidTestImplementation(libs.androidx.espresso.core)
 
+    // Room
+    implementation(libs.room.runtime)
+    implementation(libs.room.compiler)
+    implementation(libs.room.ktx)
+    implementation(libs.room.common)
+    annotationProcessor(libs.room.compiler)
+    kapt(libs.room.compiler)
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/repository/TransactionRepository.kt b/app/src/main/java/com/onionsquad/bondoman/repository/TransactionRepository.kt
new file mode 100644
index 0000000000000000000000000000000000000000..6d31c4ab7d591d2cb2a82a8c5af4fcd690fbeee8
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/repository/TransactionRepository.kt
@@ -0,0 +1,20 @@
+package com.onionsquad.bondoman.repository
+
+import com.onionsquad.bondoman.room.*
+import androidx.lifecycle.LiveData
+
+class TransactionRepository(private val transactionDao: TransactionDao) {
+    val listTransactions: LiveData<List<TransactionEntity>> = transactionDao.getAllTransactions()
+
+    suspend fun insertTransaction(transaction: TransactionEntity) {
+        transactionDao.insertTransaction(transaction)
+    }
+
+    suspend fun updateTransaction(transaction: TransactionEntity) {
+        transactionDao.updateTransaction(transaction)
+    }
+
+    suspend fun deleteTransaction(transaction: TransactionEntity) {
+        transactionDao.deleteTransaction(transaction)
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt
index bb883eaad8241e46f1cb31cf707403419df2b22b..a4e10ab1aec043dd0fcbbe484520f06cc3bd08fe 100644
--- a/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt
@@ -1,13 +1,24 @@
 package com.onionsquad.bondoman.ui.transaction
 
 import androidx.lifecycle.LiveData
-import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import kotlinx.coroutines.launch
+import com.onionsquad.bondoman.room.*
+import com.onionsquad.bondoman.repository.TransactionRepository
 
-class TransactionViewModel : ViewModel() {
+class TransactionViewModel(private val repository : TransactionRepository) : ViewModel() {
+    var listTransactions: LiveData<List<TransactionEntity>> = repository.listTransactions
 
-    private val _text = MutableLiveData<String>().apply {
-        value = "This is dashboard Fragment"
+    fun insertTransaction(transaction: TransactionEntity) = viewModelScope.launch {
+        repository.insertTransaction(transaction)
+    }
+
+    fun updateTransaction(transaction: TransactionEntity) = viewModelScope.launch {
+        repository.updateTransaction(transaction)
+    }
+
+    fun deleteTransaction(transaction: TransactionEntity) = viewModelScope.launch {
+        repository.deleteTransaction(transaction)
     }
-    val text: LiveData<String> = _text
 }
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index a0985efc88dec705956b74f5d6e9ac23c8daebb8..56ccaddfbd0ae102cf1b1f8b9a4ea0727d5445c6 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,4 +2,5 @@
 plugins {
     alias(libs.plugins.androidApplication) apply false
     alias(libs.plugins.jetbrainsKotlinAndroid) apply false
+    alias(libs.plugins.jetbrainsKotlinKapt) apply false
 }
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 20e2a01520742aff4ec9ce578ed4fe5f3a76fe77..68c91aec313598d3039f3466d1eca131beb5f553 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,6 +15,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
 # Android operating system, and which are packaged with your app's APK
 # https://developer.android.com/topic/libraries/support-library/androidx-rn
 android.useAndroidX=true
+android.enableJetifier=true
 # Kotlin code style for this project: "official" or "obsolete":
 kotlin.code.style=official
 # Enables namespacing of each library's R class so that its R class includes only the
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 15e4421badb4e472990662dffc110ea64118aa97..0dfe940829217bb3bb2bc0c9fc798b9c09b68ff3 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -13,6 +13,7 @@ lifecycleViewmodelKtx = "2.6.1"
 navigationFragmentKtx = "2.6.0"
 navigationUiKtx = "2.6.0"
 room = "2.6.1"
+kapt = "1.9.23"
 
 [libraries]
 androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@@ -34,5 +35,5 @@ room-common = { group = "androidx.room", name = "room-common", version.ref = "ro
 [plugins]
 androidApplication = { id = "com.android.application", version.ref = "agp" }
 jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
-kotlinKapt = { id = "kotlin-kapt", version.ref = "kotlin" }
+jetbrainsKotlinKapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kapt" }