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 a710b375f5c7476091b391e4d9a802e736d7ee3f..eb54ef4d61233829b4f8e15f9dd769f6b04e38fb 100644
--- a/app/src/main/java/com/example/bondoman/activities/MainActivity.kt
+++ b/app/src/main/java/com/example/bondoman/activities/MainActivity.kt
@@ -4,19 +4,30 @@ import android.content.BroadcastReceiver
 import android.content.Context
 import android.content.Intent
 import android.content.IntentFilter
+import android.content.res.Configuration
 import androidx.appcompat.app.AppCompatActivity
 import android.os.Bundle
 import android.util.Log
+import android.view.MenuItem
+import android.view.View
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.fragment.app.Fragment
 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.services.TokenCheckService
 import com.google.android.material.bottomnavigation.BottomNavigationView
+import com.google.android.material.navigation.NavigationView
 
 class MainActivity : AppCompatActivity() {
     private lateinit var tokenExpiredReceiver: BroadcastReceiver
     private lateinit var tokenServiceIntent : Intent
     private var isReceiverRegistered = false
+    private lateinit var bottomNavigationView: BottomNavigationView;
+    private lateinit var navigationView: NavigationView;
+    private lateinit var fragment: NavHostFragment;
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -41,9 +52,33 @@ class MainActivity : AppCompatActivity() {
             }
 
         }
-        val bottomNavigationView = findViewById<BottomNavigationView
+        bottomNavigationView = findViewById<BottomNavigationView
                 >(R.id.bottom_navigation_view)
         val navController = findNavController(R.id.nav_fragment)
+        navigationView = findViewById<NavigationView>(R.id.navigation_view)
+        fragment = supportFragmentManager.findFragmentById(R.id.nav_fragment) as NavHostFragment
+        val navFragmentLayoutParams = fragment.view?.layoutParams as ConstraintLayout.LayoutParams
+
+        val orientation = resources.configuration.orientation
+        if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
+            // Change layout to show left navigation
+            bottomNavigationView.visibility = View.GONE
+            navigationView.visibility = View.VISIBLE
+            navFragmentLayoutParams.leftToRight = R.id.navigation_view
+            fragment.view?.layoutParams = navFragmentLayoutParams
+        } else {
+            // Set up bottom navigation bar
+            bottomNavigationView.visibility = View.VISIBLE
+            navigationView.visibility = View.GONE
+            navFragmentLayoutParams.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID
+            fragment.view?.layoutParams = navFragmentLayoutParams
+        }
+
+        navigationView.setNavigationItemSelectedListener { menuItem : MenuItem ->
+            supportActionBar?.title = menuItem.title
+            menuItem.onNavDestinationSelected(navController)
+            true
+        }
 
         bottomNavigationView.setOnItemSelectedListener { menuItem ->
             supportActionBar?.title = menuItem.title
@@ -52,6 +87,26 @@ class MainActivity : AppCompatActivity() {
         }
     }
 
+    override fun onConfigurationChanged(newConfig: Configuration) {
+        super.onConfigurationChanged(newConfig)
+        val orientation = newConfig.orientation
+
+        val navFragmentLayoutParams = fragment.view?.layoutParams as ConstraintLayout.LayoutParams
+        if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
+            // Change layout to show left navigation
+            bottomNavigationView.visibility = View.GONE
+            navigationView.visibility = View.VISIBLE
+            navFragmentLayoutParams.leftToRight = R.id.navigation_view
+            fragment.view?.layoutParams = navFragmentLayoutParams
+        } else {
+            // Change layout to show bottom navigation bar
+            bottomNavigationView.visibility = View.VISIBLE
+            navigationView.visibility = View.GONE
+            navFragmentLayoutParams.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID
+            fragment.view?.layoutParams = navFragmentLayoutParams
+        }
+    }
+
     override fun onStart() {
         super.onStart()
         val filter = IntentFilter("com.example.bondoman.TOKEN_EXPIRED")
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index f3b90c2bdba1cbe770d7ca7589e7a5cac39cd0cb..7d24c5d4bc2228d9f5a47daef3c53dae760b786d 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -19,6 +19,19 @@
         app:layout_constraintTop_toTopOf="parent"
         app:navGraph="@navigation/nav_graph"/>
 
+    <com.google.android.material.navigation.NavigationView
+        android:id="@+id/navigation_view"
+        android:layout_width="70dp"
+        android:layout_height="match_parent"
+        android:layout_gravity="left"
+        app:itemIconTint="@color/menu_color"
+        app:itemTextColor="@color/green"
+        app:itemBackground="@color/brown_1"
+        android:background="?android:attr/windowBackground"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:menu="@menu/menu_nav"/>
+
     <com.google.android.material.bottomnavigation.BottomNavigationView
         android:id="@+id/bottom_navigation_view"
         android:layout_width="0dp"