diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index ca5df445a52388c9d83cb80c05d09a5edf4ea87e..6c05b572ac319727dd3510f1b9d8c0bedf5c9278 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -103,7 +103,7 @@ dependencies {
     api ("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
 
     // POI: excel
-    implementation ("org.apache.poi:poi:5.0.0")
+    implementation ("org.apache.poi:poi:5.2.3")
     implementation ("org.apache.poi:poi-ooxml:5.2.3")
 
     //DataBinding
diff --git a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt
index 59629187d9c6e7c7d9348b03ba4d46e0b890c170..ed2a20fef4bfa240321c5695349f046bcd3744a3 100644
--- a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt
+++ b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt
@@ -2,7 +2,6 @@ package com.example.nerbos.fragments.transaction
 
 import android.annotation.SuppressLint
 import android.graphics.Color
-import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
@@ -12,12 +11,10 @@ import com.example.nerbos.R
 import com.example.nerbos.model.Transaction
 import com.example.nerbos.model.TransactionCategory
 import com.example.nerbos.service.Utils
-import java.time.LocalDate
-import java.time.format.DateTimeFormatter
 
-class TransactionAdapter() : RecyclerView.Adapter<TransactionAdapter.TransactionViewHolder>(){
+class TransactionAdapter : RecyclerView.Adapter<TransactionAdapter.TransactionViewHolder>(){
     // Create ViewHolder Class
-    private var transactionList : List<Transaction> = emptyList<Transaction>()
+    private var transactionList : List<Transaction> = emptyList()
     var onItemClick: ((Transaction) -> Unit)? = null
     var onLocationClick: ((String) -> Unit)? = null
     class TransactionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
@@ -44,10 +41,16 @@ class TransactionAdapter() : RecyclerView.Adapter<TransactionAdapter.Transaction
         holder.date.text = Utils.formatDate(dateString)
         holder.location.text = currentItem.location
         if (currentItem.category == TransactionCategory.INCOME){
-            holder.nominal.text = "+ IDR " + currentItem.nominal.toString()
+            holder.nominal.text = buildString {
+                append("+ IDR ")
+                append(currentItem.nominal.toString())
+            }
             holder.nominal.setTextColor(Color.parseColor("#61de70")) //green
         } else {
-            holder.nominal.text = "- IDR " + currentItem.nominal.toString()
+            holder.nominal.text = buildString {
+                append("- IDR ")
+                append(currentItem.nominal.toString())
+            }
             holder.nominal.setTextColor(Color.parseColor("#FF474D")) //red
         }
 
diff --git a/app/src/main/java/com/example/nerbos/fragments/user/UserFragment.kt b/app/src/main/java/com/example/nerbos/fragments/user/UserFragment.kt
index fb994fcdffdde0bfb6d671902c97ab098faf3e10..bbc5e1b7e75c37bf20a284073e8872c3c4be92c9 100644
--- a/app/src/main/java/com/example/nerbos/fragments/user/UserFragment.kt
+++ b/app/src/main/java/com/example/nerbos/fragments/user/UserFragment.kt
@@ -10,12 +10,6 @@ import com.example.nerbos.databinding.FragmentUserBinding
 import com.example.nerbos.service.AuthCallback
 import com.example.nerbos.service.Authentication
 
-
-/**
- * A simple [Fragment] subclass.
- * Use the [UserFragment.newInstance] factory method to
- * create an instance of this fragment.
- */
 class UserFragment : Fragment(), AuthCallback {
     private lateinit var authentication: Authentication
 
diff --git a/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt b/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt
index e98414fcb27871c393616626711cf0f9c3eaac44..d32f68034634eaf497a055dc774b2bc0332828ed 100644
--- a/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt
+++ b/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt
@@ -1,8 +1,8 @@
 package com.example.nerbos.repository
 
 import androidx.lifecycle.LiveData
-import com.example.nerbos.model.Transaction
 import com.example.nerbos.data.TransactionDao
+import com.example.nerbos.model.Transaction
 import com.example.nerbos.model.TransactionCategory
 
 class TransactionRepository(private val transactionDao: TransactionDao) {
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index c737e34961527e1308abf444e6b296c546028464..0e2f7acae30887ed87cc5deb1cfc47bc6477702a 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -1,13 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@color/primary_bg">
 
-    <!--    add image logo -->
-
     <ImageView
         android:id="@+id/imageView"
         android:layout_width="352dp"
@@ -17,7 +14,8 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        app:layout_constraintTop_toTopOf="parent"
+        android:contentDescription="@string/logo" />
 
     <androidx.cardview.widget.CardView
         android:id="@+id/loginCard"
diff --git a/app/src/main/res/layout/activity_maps.xml b/app/src/main/res/layout/activity_maps.xml
index 827f664a41139e37d9f993860a71e7afeac921b6..0b747601e89149335c41b9ace303b1ca02ab6dfa 100644
--- a/app/src/main/res/layout/activity_maps.xml
+++ b/app/src/main/res/layout/activity_maps.xml
@@ -9,7 +9,7 @@
     tools:context=".MapsActivity"
     >
 
-    <fragment
+    <androidx.fragment.app.FragmentContainerView
         xmlns:map="http://schemas.android.com/apk/res-auto"
         android:id="@+id/map"
         android:name="com.google.android.gms.maps.SupportMapFragment"
@@ -42,5 +42,6 @@
         android:src="@drawable/ic_back"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        />
-</androidx.constraintlayout.widget.ConstraintLayout>
+        android:contentDescription="@string/back_button" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/add_transaction.xml b/app/src/main/res/layout/add_transaction.xml
index 447142c441571cb8d778f56d13415ff98a62d1d3..819700876885041d8decb506e2fcb13beb6307cc 100644
--- a/app/src/main/res/layout/add_transaction.xml
+++ b/app/src/main/res/layout/add_transaction.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_marginStart="20dp"
@@ -37,7 +36,6 @@
         app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/addTransactionTitle" />
-    />
 
     <EditText
         android:id="@+id/nameInput"
@@ -58,8 +56,8 @@
         android:textSize="18sp"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/addTransactionSubTitle" />
-    />
+        app:layout_constraintTop_toBottomOf="@+id/addTransactionSubTitle"
+        android:autofillHints="Name Input" />
 
 
     <RadioGroup
@@ -89,8 +87,7 @@
             android:textSize="18sp"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/nameInput"
-            />
+            app:layout_constraintTop_toBottomOf="@+id/nameInput" />
 
         <RadioButton
             android:id="@+id/outcomeInput"
@@ -125,8 +122,8 @@
         android:background="@drawable/round_corner_input_transaction"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-
-        app:layout_constraintTop_toBottomOf="@+id/categoryInput" />
+        app:layout_constraintTop_toBottomOf="@+id/categoryInput"
+        android:autofillHints="Nominal Input" />
 
     <EditText
         android:id="@+id/locationInput"
@@ -147,7 +144,8 @@
         android:textColorHint="@color/base_blur"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/nominalInput" />
+        app:layout_constraintTop_toBottomOf="@+id/nominalInput"
+        android:autofillHints="Location Input" />
 
     <Button
         android:id="@+id/cancelButton"
@@ -160,11 +158,9 @@
         android:layout_marginBottom="20dp"
         android:layout_marginStart="20dp"
         android:background="@drawable/round_corner_button_weak"
-
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/locationInput"
-        app:layout_constraintBottom_toBottomOf="parent"
-         />
+        app:layout_constraintBottom_toBottomOf="parent" />
 
     <Button
         android:id="@+id/addButton"
@@ -179,8 +175,6 @@
         android:background="@drawable/round_corner_button_strong"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/locationInput"
-        app:layout_constraintBottom_toBottomOf="parent"
-        />
-
+        app:layout_constraintBottom_toBottomOf="parent" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/modify_transaction.xml b/app/src/main/res/layout/modify_transaction.xml
index ce837fe98add87038e240bacfb094c3008c94319..677185feb58b1eef42d3ba11aacb66512584ed2c 100644
--- a/app/src/main/res/layout/modify_transaction.xml
+++ b/app/src/main/res/layout/modify_transaction.xml
@@ -36,7 +36,6 @@
         app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/addTransactionTitle" />
-    />
 
     <EditText
         android:id="@+id/nameInput"
@@ -57,9 +56,8 @@
         android:textSize="18sp"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/addTransactionSubTitle" />
-    />
-
+        app:layout_constraintTop_toBottomOf="@+id/addTransactionSubTitle"
+        android:autofillHints="Name Input" />
 
     <RadioGroup
         android:id="@+id/categoryInput"
@@ -71,8 +69,7 @@
         android:orientation="horizontal"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/nameInput"
-        >
+        app:layout_constraintTop_toBottomOf="@+id/nameInput" >
 
         <RadioButton
             android:id="@+id/incomeInput"
@@ -87,8 +84,7 @@
             android:background="@drawable/round_corner_input_category_income"
             android:textSize="18sp"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/nameInput"
-            />
+            app:layout_constraintTop_toBottomOf="@+id/nameInput" />
 
         <RadioButton
             android:id="@+id/outcomeInput"
@@ -104,8 +100,7 @@
             android:text="@string/outcome"
             android:textSize="18sp"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/nameInput"
-            />
+            app:layout_constraintTop_toBottomOf="@+id/nameInput" />
     </RadioGroup>
 
     <EditText
@@ -127,8 +122,8 @@
         android:background="@drawable/round_corner_input_transaction"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-
-        app:layout_constraintTop_toBottomOf="@+id/categoryInput" />
+        app:layout_constraintTop_toBottomOf="@+id/categoryInput"
+        android:autofillHints="Nominal Input" />
 
     <EditText
         android:id="@+id/locationInput"
@@ -149,7 +144,8 @@
         android:textColorHint="@color/base_blur"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/nominalInput" />
+        app:layout_constraintTop_toBottomOf="@+id/nominalInput"
+        android:autofillHints="Location Input" />
 
     <TextView
         android:id="@+id/transactionDateDialog"
@@ -181,11 +177,9 @@
         android:layout_marginBottom="20dp"
         android:layout_marginStart="20dp"
         android:background="@drawable/round_corner_input_category_outcome"
-
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/transactionDateDialog"
-        app:layout_constraintBottom_toBottomOf="parent"
-         />
+        app:layout_constraintBottom_toBottomOf="parent" />
 
     <Button
         android:id="@+id/saveButton"
@@ -200,8 +194,6 @@
         android:background="@drawable/round_corner_button_strong"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/transactionDateDialog"
-        app:layout_constraintBottom_toBottomOf="parent"
-        />
-
+        app:layout_constraintBottom_toBottomOf="parent" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/transaction_item.xml b/app/src/main/res/layout/transaction_item.xml
index 8f6041f57ab54782d18a5e8f675d7e4ac056ef9a..a622e44d0e75a1205e64fb00a502f21c654f9c63 100644
--- a/app/src/main/res/layout/transaction_item.xml
+++ b/app/src/main/res/layout/transaction_item.xml
@@ -17,7 +17,6 @@
         android:maxWidth="130dp"
         android:maxLines="1"
         android:ellipsize="end"
-        android:text="Amazon Web Service"
         android:textColor="@color/white"
         android:textSize="18sp"
         android:textStyle="bold"
@@ -32,7 +31,6 @@
         android:maxWidth="130dp"
         android:maxLines="1"
         android:ellipsize="end"
-        android:text="May 24, 2024"
         android:textColor="@color/date_text"
         android:textSize="16sp"
         android:textStyle="normal"
@@ -40,6 +38,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@id/transactionName"
     />
+
     <TextView
         android:id="@+id/transactionLocation"
         android:layout_width="wrap_content"
@@ -47,7 +46,6 @@
         android:maxWidth="130dp"
         android:maxLines="1"
         android:ellipsize="end"
-        android:text="SMAN 10 Padang Panjang"
         android:textColor="@color/white"
         android:textSize="16sp"
         android:textStyle="normal"
@@ -55,6 +53,7 @@
         app:layout_constraintTop_toTopOf="parent"
         app:drawableStartCompat="@drawable/ic_location"
         />
+
     <TextView
         android:id="@+id/transactionNominal"
         android:layout_width="0dp"
@@ -62,7 +61,6 @@
         android:ellipsize="end"
         android:maxWidth="130dp"
         android:maxLines="1"
-        android:text="- IDR 50.000"
         android:textColor="@color/red"
         android:textSize="16sp"
         android:textStyle="normal"
@@ -70,4 +68,5 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toBottomOf="@id/transactionLocation"
         />
-</androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index e702056a76d75222618a58d672ef2d14ae8feead..98a6cde54da0a651171a80f1cd7fcdf536b6855f 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -20,7 +20,6 @@
     <color name="strong_blue_button">#0DA6C2</color>
     <color name="weak_blue_button">#800DA6C2</color>
     <color name="transparent">#00FFFFFF</color>
-
     <color name="purple_200">#0F9D58</color>
     <color name="purple_500">#0F9D58</color>
     <color name="purple_700">#0F9D58</color>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 891f9fa2132678e79ff4dad7c11e5aed1d8996ce..4581d8e0758b7459fcc034c819f0fc3c2a63d1df 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,13 +1,11 @@
 <resources>
     <string name="app_name">NerbOS</string>
-    <!-- TODO: Remove or change this placeholder text -->
     <string name="hello_blank_fragment">Hello blank fragment</string>
     <string name="navbar_transaction">Transactions</string>
     <string name="navbar_scan">Scan</string>
     <string name="navbar_statistic">Statistics</string>
     <string name="navbar_user">User</string>
     <string name="selected_item_id">selectedItemId</string>
-
     <string name="login_title">Login</string>
     <string name="login_description">Insert login details</string>
     <string name="login_email_placeholder">Email</string>
@@ -24,20 +22,14 @@
     <string name="default_email">13521000@std.stei.itb.ac.id</string>
     <string name="authorization">Authorization</string>
     <string name="bearer">Bearer</string>
-
     <string name="preferences">NosPreferences</string>
-
-
     <string name="backend_api_login">https://pbd-backend-2024.vercel.app/api/auth/login</string>
     <string name="backend_api_token">https://pbd-backend-2024.vercel.app/api/auth/token</string>
     <string name="backend_api_scan">https://pbd-backend-2024.vercel.app/api/bill/upload</string>
-
     <string name="ok">OK</string>
     <string name="welcome">Welcome!</string>
     <string name="app_name_full">NerbOS - NOS</string>
-
     <string name="logout_title">Logout</string>
-
     <string name="new_transaction">New Transaction</string>
     <string name="modify_transaction">Modify Transaction</string>
     <string name="insert_trans_details">Insert transaction details</string>
@@ -71,8 +63,9 @@
     <string name="country_code">ID</string>
     <string name="capture_button">Capture Button</string>
     <string name="gallery_button">Gallery Button</string>
-
     <string name="email_subject">NerbOS - Transaction Report</string>
     <string name="email_message">Here is your transaction report</string>
+    <string name="logo">Logo</string>
+    <string name="back_button">Back Button</string>
 
 </resources>
\ No newline at end of file