diff --git a/app/src/main/java/com/example/myapplication/ui/dashboard/DashboardFragment.kt b/app/src/main/java/com/example/myapplication/ui/dashboard/DashboardFragment.kt
index 726258a1c4bec83b6c05dbb4e559ab3072dcee56..6f76c1de370b8a3066c387f65be8f8a5b889162f 100644
--- a/app/src/main/java/com/example/myapplication/ui/dashboard/DashboardFragment.kt
+++ b/app/src/main/java/com/example/myapplication/ui/dashboard/DashboardFragment.kt
@@ -1,6 +1,7 @@
 package com.example.myapplication.ui.dashboard
 
 import android.Manifest
+import android.app.Activity.MODE_PRIVATE
 import android.app.Activity.RESULT_OK
 import android.content.ContentValues.TAG
 import android.content.DialogInterface
@@ -34,8 +35,18 @@ import androidx.lifecycle.ViewModelProvider
 import com.example.myapplication.databinding.FragmentDashboardBinding
 import com.example.myapplication.utils.appSettingOpen
 import com.example.myapplication.utils.warningPermissionDialog
+import okhttp3.MediaType.Companion.toMediaTypeOrNull
+import okhttp3.MultipartBody
+import okhttp3.RequestBody.Companion.toRequestBody
 import java.util.concurrent.ExecutorService
 import java.util.concurrent.Executors
+import android.content.Context
+import okhttp3.Call
+import okhttp3.OkHttpClient
+import okhttp3.Request
+import okhttp3.Response
+import org.json.JSONObject
+import java.io.IOException
 
 class DashboardFragment : Fragment() {
 
@@ -90,6 +101,9 @@ class DashboardFragment : Fragment() {
         binding.retakebtn.setOnClickListener{
             displayCamera()
         }
+        binding.uploadbtn.setOnClickListener{
+            uploadPict()
+        }
         cameraExecutor = Executors.newSingleThreadExecutor()
         return root
     }
@@ -168,6 +182,43 @@ class DashboardFragment : Fragment() {
         )
     }
 
+    private fun uploadPict() {
+        val requestFile = bitmap.toString().toRequestBody("image/jpg".toMediaTypeOrNull())
+//        val body = MultipartBody.Part.createFormData("file", "image.jpg",requestFile)
+        val body = MultipartBody.Builder()
+            .setType(MultipartBody.FORM)
+            .addPart(MultipartBody.Part.createFormData("file", "image.jpg", requestFile))
+            .build()
+
+        val sharedPreferences = requireContext().getSharedPreferences("token", MODE_PRIVATE)
+        val token = sharedPreferences.getString("token", null)
+        val client = OkHttpClient()
+        val url = "https://pbd-backend-2024.vercel.app/api/bill/upload"
+
+        val request = Request.Builder()
+            .url(url)
+            .post(body)
+//            .addHeader("Authorization", "Bearer ${token}")
+            .addHeader("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuaW0iOiIxMzUyMTAwMSIsImlhdCI6MTcxMTk4NTUwOSwiZXhwIjoxNzExOTg1ODA5fQ.g0gH2VM6E361jLjdkyfINN1d3yh2HG9z_js0LuShuf0")
+            .build()
+
+        client.newCall(request).enqueue(object : okhttp3.Callback{
+            override fun onFailure(call: Call, e: IOException) {
+                Log.d("Service Error", e.toString())
+            }
+
+            override fun onResponse(call: Call, response: Response) {
+                if(response.isSuccessful){
+                    val jsonResponse = JSONObject(response.body!!.string())
+
+                    Log.d("asd", jsonResponse.toString())
+                }
+            }
+
+        })
+
+    }
+
 
     private fun displayPhoto() {
         binding.imagePreview.visibility = View.VISIBLE