diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 0cb11ad6abb1668f5c6c8d4830f123c6b8f76d0c..a52dfd9b03bc09e4f2c6f545527cf47a2ed5631a 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -73,5 +73,11 @@ dependencies {
     implementation("com.squareup.okhttp3:logging-interceptor:4.9.3")
     implementation("androidx.navigation:navigation-fragment-ktx:2.7.7")
     implementation("androidx.navigation:navigation-ui-ktx:2.7.7")
+    val roomVersion = "2.6.1"
+
+    implementation("androidx.room:room-runtime:$roomVersion")
+    annotationProcessor("androidx.room:room-compiler:$roomVersion")
+    implementation("androidx.room:room-ktx:$roomVersion")
+    kapt("androidx.room:room-compiler:$roomVersion")
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/pbd/psi/MainActivity.kt b/app/src/main/java/com/pbd/psi/MainActivity.kt
index b7e2754f4277ad6b726b0e2fe2cc86027cd5a51b..f8af57e8bdc137c09643762ba5b439d9e0de92da 100644
--- a/app/src/main/java/com/pbd/psi/MainActivity.kt
+++ b/app/src/main/java/com/pbd/psi/MainActivity.kt
@@ -19,10 +19,6 @@ import android.content.res.ColorStateList
 
 import android.graphics.Color
 
-
-
-
-
 class MainActivity : AppCompatActivity() {
     companion object {
         const val SHARED_PREFS = "shared_prefs"
diff --git a/app/src/main/java/com/pbd/psi/repository/TransactionRepository.kt b/app/src/main/java/com/pbd/psi/repository/TransactionRepository.kt
new file mode 100644
index 0000000000000000000000000000000000000000..42656257b886c6e9f8a1555efeee5a60e1c6cfd3
--- /dev/null
+++ b/app/src/main/java/com/pbd/psi/repository/TransactionRepository.kt
@@ -0,0 +1,22 @@
+package com.pbd.psi.repository
+
+import androidx.lifecycle.LiveData
+import com.pbd.psi.room.AppDatabase
+import com.pbd.psi.room.TransactionEntity
+
+class TransactionRepository(private val database: AppDatabase) {
+
+    val transactionList: LiveData<List<TransactionEntity>> = database.transactionDao().getAllTrans()
+
+    suspend fun insertTransaction(transaction: TransactionEntity) {
+        database.transactionDao().insertTransaction(transaction)
+    }
+
+    suspend fun updateTransaction(transaction: TransactionEntity) {
+        database.transactionDao().updateTransaction(transaction)
+    }
+
+    suspend fun deleteTransaction(transaction: TransactionEntity) {
+        database.transactionDao().deleteTransaction(transaction)
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/pbd/psi/room/AppDatabase.kt b/app/src/main/java/com/pbd/psi/room/AppDatabase.kt
new file mode 100644
index 0000000000000000000000000000000000000000..04d804a612f177eccb6647906f9348cfc4b4b626
--- /dev/null
+++ b/app/src/main/java/com/pbd/psi/room/AppDatabase.kt
@@ -0,0 +1,36 @@
+package com.pbd.psi.room
+
+import androidx.room.Database
+import androidx.room.Room
+import androidx.room.RoomDatabase
+import android.content.Context
+import androidx.room.TypeConverters
+
+@Database(entities = [TransactionEntity::class], version = 1)
+@TypeConverters(Converters::class)
+abstract class AppDatabase() : RoomDatabase() {
+
+    abstract fun transactionDao(): TransactionDao
+
+    companion object {
+        @Volatile
+        private  var Instance: AppDatabase? = null
+
+        fun getDatabase(context: Context): AppDatabase{
+            synchronized(this){
+                var instance = Instance
+
+                if (instance == null) {
+                    instance = Room.databaseBuilder(
+                        context.applicationContext,
+                        AppDatabase::class.java,
+                        "app_database"
+                    ).build()
+                    Instance = instance
+                }
+
+                return instance
+            }
+        }
+    }
+}
diff --git a/app/src/main/java/com/pbd/psi/room/Converters.kt b/app/src/main/java/com/pbd/psi/room/Converters.kt
new file mode 100644
index 0000000000000000000000000000000000000000..dee6eeb59ff0d2ab4d2c4c24d36001166e70fc86
--- /dev/null
+++ b/app/src/main/java/com/pbd/psi/room/Converters.kt
@@ -0,0 +1,19 @@
+package com.pbd.psi.room
+
+import androidx.room.TypeConverter
+import java.text.SimpleDateFormat
+import java.util.*
+
+class Converters {
+    private val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
+
+    @TypeConverter
+    fun toDate(value: String?): Date? {
+        return value?.let { dateFormat.parse(it) }
+    }
+
+    @TypeConverter
+    fun fromDate(date: Date?): String? {
+        return date?.let { dateFormat.format(it) }
+    }
+}
diff --git a/app/src/main/java/com/pbd/psi/room/TransactionDao.kt b/app/src/main/java/com/pbd/psi/room/TransactionDao.kt
new file mode 100644
index 0000000000000000000000000000000000000000..15a0b2f2bd1751dee70353a0820521983b523f9b
--- /dev/null
+++ b/app/src/main/java/com/pbd/psi/room/TransactionDao.kt
@@ -0,0 +1,18 @@
+package com.pbd.psi.room
+
+import androidx.lifecycle.LiveData
+import androidx.room.*
+@Dao
+interface TransactionDao {
+    @Query("SELECT * FROM `transaction`")
+    fun getAllTrans(): LiveData<List<TransactionEntity>>
+
+    @Insert(onConflict = OnConflictStrategy.FAIL)
+    suspend fun insertTransaction(trans: TransactionEntity)
+
+    @Update(onConflict = OnConflictStrategy.FAIL)
+    suspend fun updateTransaction(trans: TransactionEntity)
+
+    @Delete
+    suspend fun deleteTransaction(trans: TransactionEntity)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/pbd/psi/room/TransactionEntity.kt b/app/src/main/java/com/pbd/psi/room/TransactionEntity.kt
new file mode 100644
index 0000000000000000000000000000000000000000..e7a721a54a9aa8db1df8d3fda0fbf90f21a389b9
--- /dev/null
+++ b/app/src/main/java/com/pbd/psi/room/TransactionEntity.kt
@@ -0,0 +1,17 @@
+package com.pbd.psi.room
+
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+import java.util.Date
+
+@Entity(tableName = "transaction")
+data class TransactionEntity(
+    @PrimaryKey(autoGenerate = true)
+    val id: Int = 0,
+    val name: String = "",
+    val category: Int = 0,
+    val price: Int = 0,
+    val date: Date = Date(),
+    val longitude: Double = 0.0,
+    val latitude: Double = 0.0,
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/pbd/psi/ui/transaction/TransactionViewModel.kt b/app/src/main/java/com/pbd/psi/ui/transaction/TransactionViewModel.kt
new file mode 100644
index 0000000000000000000000000000000000000000..670bbb2de3172db0eeb9843b3e48ba6202105787
--- /dev/null
+++ b/app/src/main/java/com/pbd/psi/ui/transaction/TransactionViewModel.kt
@@ -0,0 +1,4 @@
+package com.pbd.psi.ui.transaction
+
+class TransactionViewModel {
+}
\ No newline at end of file