diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java
index 6654f82d31e569f0f92739c40ef1eaf0061f8e6f..dfabbafc4d4778ae07bb8b279f5d556481e93586 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java
@@ -3,6 +3,7 @@ package be.lepl1509group13.workoutwarrior;
 import androidx.appcompat.app.AppCompatActivity;
 
 import android.annotation.SuppressLint;
+import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;
 import android.util.Log;
@@ -27,6 +28,7 @@ import com.google.firebase.database.ValueEventListener;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 public class AccountActivity extends AppCompatActivity {
 
@@ -46,10 +48,16 @@ public class AccountActivity extends AppCompatActivity {
         FirebaseUser currentUser = mAuth.getCurrentUser();
 
         if(currentUser != null){
+            //get which button is clicked in the navigation
+            Intent intent = this.getIntent();
+            String item = intent.getStringExtra("item");
+            if(Objects.equals(item, "Mon compte")){
+                //todo
+            } else if (Objects.equals(item, "Mes amis")) {
+                //todo
+            }
             setContentView(R.layout.activity_account);
 
-            //Log.d("LOGIN", "onStart: LOGED");
-
             db = firebaseDb.getReference("Account_pseudo");
             getPseudo(currentUser);
         }else{
diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java
index 649792cf9db4cd283f4230e1362536dbd8b55e0f..78804c5b4d3d23d1d7e5cad6689e1d85dba47b54 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java
@@ -1,32 +1,18 @@
 package be.lepl1509group13.workoutwarrior;
 
-import static android.content.ContentValues.TAG;
-
 import android.content.Context;
-import android.content.Intent;
 import android.graphics.drawable.Drawable;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.EditText;
 import android.widget.ImageView;
-import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;
 
-import androidx.appcompat.app.AlertDialog;
-
-import com.google.firebase.database.DataSnapshot;
-import com.google.firebase.database.DatabaseError;
-import com.google.firebase.database.Query;
-import com.google.firebase.database.ValueEventListener;
-
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Objects;
+import java.util.Iterator;
+import java.util.Map;
 
 public class ListExercicesAdapter extends ArrayAdapter<String> {
 
@@ -34,7 +20,7 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
     private ArrayList<String> values;
 
     public ListExercicesAdapter(Context context, ArrayList<String> values) {
-        super(context, R.layout.exercice, values);
+        super(context, R.layout.exercises_list_row, values);
         this.context = context;
         this.values = values;
     }
@@ -42,30 +28,50 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
         LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        View rowView = inflater.inflate(R.layout.exercice, parent, false);
+        View rowView = inflater.inflate(R.layout.exercises_list_row, parent, false);
 
         ImageView delete_button = rowView.findViewById(R.id.delete_button);
         ImageView edit_button = rowView.findViewById(R.id.edit_button);
-        TextView exercice_name = rowView.findViewById(R.id.exercice_name);
+        TextView exercise_name = rowView.findViewById(R.id.exercise_name);
+        TextView training_daysView = rowView.findViewById(R.id.training_days);
 
-        // Récupérez l'image et le texte pour chaque élément de la liste en fonction de la position
+        // Récupérer l'image et le texte pour chaque élément de la liste en fonction de la position
         if (this.values.size() > 0) {
+
+            ProgramCreationActivity activity = (ProgramCreationActivity) context;
+
             System.out.println("values : " + values);
             String exercise = values.get(position);
+            String training_days = "";
             Drawable delete_cross = context.getResources().getDrawable(R.drawable.cross_mark);
             Drawable pen = context.getResources().getDrawable(R.drawable.edit);
-            // Afficher l'image et le texte dans les vues correspondantes
+
+            // Get training days for this exercise
+            for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
+                System.out.println(set.getKey().name);
+                if (set.getKey().name == exercise) {
+                    training_days = "";
+                    for (String day : set.getValue()) {
+                        training_days += getShortDayName(day) + ", ";
+                    }
+                }
+            }
+            training_days = training_days.substring(0, training_days.length() - 2);
+
+            System.out.println("training days : " + training_days);
+
+            // Display texts and images in Views
             delete_button.setImageDrawable(delete_cross);
             edit_button.setImageDrawable(pen);
-            exercice_name.setText(exercise);
-
-            ProgramCreationActivity activity = (ProgramCreationActivity) context;
+            exercise_name.setText(exercise);
+            training_daysView.setText(training_days);
 
 
 
             // Ecouteur de clics pour chaque élément de la ListView
             edit_button.setOnClickListener(view -> {
-                System.out.println("details : " + activity.exoDetailsForEachDay);
+                /*
+                System.out.println("details : " + activity.program);
                 AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
                 View dialogView = inflater.inflate(R.layout.edit_workout, null);
                 builder.setView(dialogView);
@@ -119,6 +125,8 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
                     System.out.println("details : " + activity.exoDetailsForEachDay);
                     Toast.makeText(context, "Modifications sauvegardées", Toast.LENGTH_SHORT).show();
                     dialog.dismiss();
+
+
                 });
 
                 ImageView closeButton = dialogView.findViewById(R.id.close_btn);
@@ -126,6 +134,8 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
                     // Fermer la pop-up
                     dialog.dismiss();
                 });
+                */
+
             });
 
             // Ajouter un OnClickListener à l'image
@@ -133,13 +143,23 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
                 // Code à exécuter lors du clic
                 Toast.makeText(context, exercise + " supprimé", Toast.LENGTH_SHORT).show();
 
-                activity.exoDetailsForEachDay.get(activity.current_day_displayed).remove(position);
+                Iterator<Map.Entry<Exercise, ArrayList<String>>> iterator = activity.program.entrySet().iterator();
+                while (iterator.hasNext()) {
+                    Map.Entry<Exercise, ArrayList<String>> entry = iterator.next();
+                    Exercise key = entry.getKey();
+                    if (key.name.equals(exercise)) {
+                        iterator.remove();
+                    }
+                }
 
-                ArrayList<String> exosDisplay = new ArrayList<>();
-                for (Exercise exo : activity.exoDetailsForEachDay.get(activity.current_day_displayed)) {
-                    exosDisplay.add(exo.name);
+
+
+                ArrayList<String> updatedExercicesList = new ArrayList<>();
+                for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
+                    updatedExercicesList.add(set.getKey().name);
                 }
-                updateValues(exosDisplay);
+
+                updateValues(updatedExercicesList);
                 notifyDataSetChanged();
             });
         }
@@ -158,6 +178,17 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
 
     }
 
+    String getShortDayName(String day) {
+        if (day == "lundi") return "LU";
+        if (day == "mardi") return "MA";
+        if (day == "mercredi") return "ME";
+        if (day == "jeudi") return "JE";
+        if (day == "vendredi") return "VE";
+        if (day == "samedi") return "SA";
+        if (day == "dimanche") return "DI";
+        else throw new IllegalArgumentException();
+    }
+
 
 }
 
diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java
index d261242f4f7836fe16b5de5bc73a944edb7dd51d..c1ee501e4ee30b16f5c9dd32adc808e3da514158 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java
@@ -4,16 +4,24 @@ import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.view.GravityCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageButton;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.google.android.material.navigation.NavigationView;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.auth.FirebaseUser;
 import com.google.firebase.database.DataSnapshot;
 import com.google.firebase.database.DatabaseError;
 import com.google.firebase.database.DatabaseReference;
@@ -40,6 +48,7 @@ public class MainActivity extends AppCompatActivity implements MainAdapter.OnIte
     private Integer numberOfProgramsToDisplay = 0, totalNumberOfCustomPrograms = 0;
     private boolean needsRefresh = false;
 
+    @SuppressLint({"SetTextI18n"})
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -52,8 +61,36 @@ public class MainActivity extends AppCompatActivity implements MainAdapter.OnIte
         TextView open_program_creation_btn = findViewById(R.id.program_creation_button);
         open_program_creation_btn.setOnClickListener(this::open_program_creation);
 
-        ImageButton open_account = findViewById(R.id.account);
-        open_account.setOnClickListener(this::open_account);
+        ImageButton open_nav = findViewById(R.id.account);
+        DrawerLayout drawerLayout = findViewById(R.id.drawer_layout);
+        NavigationView navigationView = findViewById(R.id.navigation_view);
+
+        //open the navigation
+        open_nav.setOnClickListener(view -> {
+            if (!drawerLayout.isDrawerOpen(GravityCompat.START)) {
+                FirebaseAuth mAuth = FirebaseAuth.getInstance();
+                FirebaseUser currentUser = mAuth.getCurrentUser();
+
+                LayoutInflater inflater = getLayoutInflater();
+                View menu_header = inflater.inflate(R.layout.menu_header, null);
+                TextView text_header_menu = menu_header.findViewById(R.id.menu_text);
+
+                if(currentUser != null){
+                    //todo
+                    text_header_menu.setText("Vous êtes connecté !");
+                }else{
+                    text_header_menu.setText("Vous n'êtes pas connecté. Rendez-vous dans la section Mon compte pour vous connecter.");
+                }
+                drawerLayout.openDrawer(GravityCompat.START);
+            }
+        });
+
+        //check when a button is clicked in the navigation
+        navigationView.setNavigationItemSelectedListener(item -> {
+            open_account((String) item.getTitle());
+            drawerLayout.closeDrawer(GravityCompat.START);
+            return false;
+        });
     }
 
     @Override
@@ -78,15 +115,14 @@ public class MainActivity extends AppCompatActivity implements MainAdapter.OnIte
             result -> {
                 if (result.getResultCode() == 1) {
                     //Update the page if a program is added or deleted
-                    //Log.d("TAG", ": " + Activity.RESULT_OK );
-                    //Log.d("TAG", ": " + result.getResultCode() );
                     needsRefresh = true;
                 }
             }
     );
 
-    private void open_account(View v) {
+    private void open_account(String item) {
         Intent intent = new Intent(MainActivity.this, AccountActivity.class);
+        intent.putExtra("item", item);
         startActivity(intent);
     }
 
diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java
index d569d10aaad24460a24fcc1c3d4712f078e2c9ea..cac6ea9931410f9bc3cde055fe8ecb8704737aef 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java
@@ -3,6 +3,7 @@ package be.lepl1509group13.workoutwarrior;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.graphics.Color;
 import android.graphics.Typeface;
 import android.os.Bundle;
 import android.provider.ContactsContract;
@@ -19,6 +20,8 @@ import android.widget.EditText;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.ListView;
+import android.widget.TableLayout;
+import android.widget.TableRow;
 import android.widget.TextView;
 import android.widget.Toast;
 import android.view.View;
@@ -27,6 +30,8 @@ import android.widget.AutoCompleteTextView;
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.google.firebase.database.DataSnapshot;
 import com.google.firebase.database.DatabaseError;
@@ -67,20 +72,17 @@ public class ProgramCreationActivity extends AppCompatActivity {
     private static ArrayList<String> EXOS = new ArrayList<>(); // Liste des exercices de la base de données
     CheckBox cb_lundi, cb_mardi, cb_mercredi, cb_jeudi, cb_vendredi, cb_samedi, cb_dimanche;
     private ArrayList<CheckBox> cb_list = new ArrayList<>();
-    public String current_day_displayed = "lundi";
+
     private ArrayList<String> current_days_checked = new ArrayList<>();
-    public ListView exos_current_day; // ListView des exercices pour le jour courant
 
+    public ListView exercisesView; // ListView des exercices pour le jour courant
     private ImageButton help_creation_program;
 
-    HashMap<String, ArrayList<Exercise>> exoDetailsForEachDay = new HashMap<>();
+    HashMap<String, ArrayList<Exercise>> programByDay = new HashMap<>();
+    HashMap<Exercise, ArrayList<String>> program = new HashMap<>();
 
     ListExercicesAdapter exercisesListAdapter;
-    public static int lastCheckedPosition = -1;
 
-    ArrayList<String> currentExoList = new ArrayList<>();
-    ArrayList<TextView> days_TextView = new ArrayList<>();
-    HashMap<Exercise, ArrayList<String>> program = new HashMap<>();
 
 
     @Override
@@ -92,16 +94,17 @@ public class ProgramCreationActivity extends AppCompatActivity {
         //init_days_TextView();
 
 
+
         db = firebaseDb.getReference("Workouts");
         get_DB_Exercices();
 
-        init_day_lists(); // initialisation des listes pour stocker les exercices choisis
+        //init_day_lists(); // initialisation des listes pour stocker les exercices choisis
         //init_checkboxes(); // initialisation des checkbox des jours
 
         input_exo = findViewById(R.id.input_new_exo); // champ de recherche des exercices
-        exos_current_day = findViewById(R.id.exos_current_day_ListView); // liste des exercices choisis pour le jour courant
+        exercisesView = findViewById(R.id.exercisesView); // liste des exercices choisis pour le jour courant
         exercisesListAdapter = new ListExercicesAdapter(this, new ArrayList<>());
-        exos_current_day.setAdapter(exercisesListAdapter);
+        exercisesView.setAdapter(exercisesListAdapter);
 
         ImageButton return_btn = findViewById(R.id.return_btn2);
         return_btn.setOnClickListener(view -> finish());
@@ -151,6 +154,7 @@ public class ProgramCreationActivity extends AppCompatActivity {
     private void saveProgramListener(){
         Button save_btn = findViewById((R.id.save_button));
         save_btn.setOnClickListener(v -> {
+            convertToProgramByDay();
 
             try {
                 // recup le nom de programme comme nom de fichier -> nomdeprogramme.ser
@@ -159,7 +163,7 @@ public class ProgramCreationActivity extends AppCompatActivity {
                 String programpath = programName + ".ser";
 
                 // place le HashMap du programme dans nomdeprogramme.ser
-                HashMap<String, ArrayList<Exercise>> entry = exoDetailsForEachDay;
+                HashMap<String, ArrayList<Exercise>> entry = programByDay;
                 ExerciseEntry exerciseEntry = new ExerciseEntry(entry);
                 FileOutputStream fileOutputStream = openFileOutput(programpath, Context.MODE_PRIVATE);
                 ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
@@ -178,38 +182,16 @@ public class ProgramCreationActivity extends AppCompatActivity {
 
     }
 
-    private void init_day_lists() {
-        exoDetailsForEachDay.put("lundi", new ArrayList<>());
-        exoDetailsForEachDay.put("mardi", new ArrayList<>());
-        exoDetailsForEachDay.put("mercredi", new ArrayList<>());
-        exoDetailsForEachDay.put("jeudi", new ArrayList<>());
-        exoDetailsForEachDay.put("vendredi", new ArrayList<>());
-        exoDetailsForEachDay.put("samedi", new ArrayList<>());
-        exoDetailsForEachDay.put("dimanche", new ArrayList<>());
-    }
-/**
-    void init_days_TextView() {
-        /**
-         * Ajoute à days_TextView tous les TextView des jours
-
-        days_TextView.add(findViewById(R.id.textview_monday));
-        days_TextView.add(findViewById(R.id.textview_tuesday));
-        days_TextView.add(findViewById(R.id.textview_wednesday));
-        days_TextView.add(findViewById(R.id.textview_thursday));
-        days_TextView.add(findViewById(R.id.textview_friday));
-        days_TextView.add(findViewById(R.id.textview_saturday));
-        days_TextView.add(findViewById(R.id.textview_sunday));
-    }
- */
 
 
 
     private void addExerciceListener() {
         /**
-         * Ajoute un exercice au jour courant dans la HashMap exoDetailsForEachDay et dans la ListView exos_current_day
+         * Ajoute un exercice au jour courant dans la HashMap programByDay et dans la ListView exos_current_day
          */
         Button add_exo_button = findViewById(R.id.add_exo_button);
         add_exo_button.setOnClickListener(v -> {
+            current_days_checked.clear();
 
             // Récupérer la valeur du champ de texte AutoCompleteTextView
             String exercise_searched = input_exo.getText().toString();
@@ -239,7 +221,6 @@ public class ProgramCreationActivity extends AppCompatActivity {
                 cb_list.add(cb_dimanche);
 
                 for (CheckBox cb : cb_list) cb.setOnCheckedChangeListener(myCheckBoxListener);
-                System.out.println(exoDetailsForEachDay);
 
                 DatabaseReference workoutsDb = firebaseDb.getReference("Workouts");
                 Query query = workoutsDb.orderByChild("name").equalTo(exercise_searched);
@@ -307,7 +288,7 @@ public class ProgramCreationActivity extends AppCompatActivity {
                         Integer timer_int = Integer.parseInt(string_timer);
                         actual_exo = new Exercise(exercise_searched, description_str, break_time, "@drawable/developpe_couche_barre", timer_int);
                     }
-                    addToProgram(actual_exo, current_days_checked);
+                    addToProgram(actual_exo, new ArrayList<>(current_days_checked));
                     dialog.dismiss();
                 });
 
@@ -394,14 +375,19 @@ public class ProgramCreationActivity extends AppCompatActivity {
         });
     }
 
-    private void addToProgram(Exercise exercise, ArrayList<String> workingDays) {
+    private void addToProgram(Exercise exercise, ArrayList<String> trainingDays) {
         /**
          * Add the new exercise to the program
          */
-        if (exoInProgram(exercise)) popUpExerciseAlreadyInProgram();
-        else program.put(exercise, workingDays);
-        System.out.println(program);
+        if (exoInProgram(exercise)) {
+            Toast.makeText(this, "Exercice déjà dans le programme !",
+                    Toast.LENGTH_SHORT).show();
+        } else {
+            program.put(exercise, trainingDays);
+            exercisesListAdapter.add(exercise.name);
+        }
     }
+
     private boolean exoInProgram(Exercise exercise) {
         /**
          * Check if exercise is already in program
@@ -411,10 +397,27 @@ public class ProgramCreationActivity extends AppCompatActivity {
         }
         return false;
     }
-    private void popUpExerciseAlreadyInProgram() {
+
+    void convertToProgramByDay() {
         /**
-         * Display pop up "Exercise already in program"
+         * Convert program (HashMap<Exercise, ArrayList<String>>) to programByDay (HashMap<String, ArrayList<Exercise>>)
          */
+        programByDay.put("lundi", new ArrayList<>());
+        programByDay.put("mardi", new ArrayList<>());
+        programByDay.put("mercredi", new ArrayList<>());
+        programByDay.put("jeudi", new ArrayList<>());
+        programByDay.put("vendredi", new ArrayList<>());
+        programByDay.put("samedi", new ArrayList<>());
+        programByDay.put("dimanche", new ArrayList<>());
+
+        for (Map.Entry<Exercise, ArrayList<String>> set : program.entrySet()) {
+            for (String day : set.getValue()) {
+                programByDay.get(day).add(set.getKey());
+            }
+        }
+
+        System.out.println("program : " + program);
+        System.out.println("programByDay : " + programByDay);
     }
 }
 
@@ -438,7 +441,7 @@ class Exercise implements Serializable {
     @NonNull
     @Override
     public String toString() {
-        return name + ", " + description + ", temps de pause : " + breakVal + ", image_url : " + image_url + ", timer : " + timer;
+        return name;
     }
 }
 
diff --git a/app/src/main/res/drawable/check.png b/app/src/main/res/drawable/check.png
new file mode 100644
index 0000000000000000000000000000000000000000..441557fe2ec43b86742df99c22085e71107c0468
Binary files /dev/null and b/app/src/main/res/drawable/check.png differ
diff --git a/app/src/main/res/drawable/menu.png b/app/src/main/res/drawable/menu.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8f355e0e25f19438a9c7684e24dd29d809b43e1
Binary files /dev/null and b/app/src/main/res/drawable/menu.png differ
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 6e83f1921b6a96538cc4af0a7b40c3906be0d4ce..7c8bf82de008aa805854b5daa2c16a19628cb6d7 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,107 +1,123 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.drawerlayout.widget.DrawerLayout 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"
-    tools:context=".MainActivity">
+    tools:context=".MainActivity"
+    tools:openDrawer="start"
+    android:id="@+id/drawer_layout">
 
     <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/top"
-        android:layout_width="376dp"
-        android:layout_height="90dp"
-        android:padding="16dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.542"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.04">
-
-
-        <ImageView
-            android:id="@+id/imageView"
-            android:layout_width="56dp"
-            android:layout_height="56dp"
-            android:adjustViewBounds="false"
-            android:background="@drawable/homepage_activities_border"
-            android:clipToOutline="true"
-            android:fadingEdgeLength="10dp"
-            android:scaleType="centerCrop"
-            android:src="@drawable/logo"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/top"
+            android:layout_width="376dp"
+            android:layout_height="90dp"
+            android:padding="16dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHorizontal_bias="0.0"
+            app:layout_constraintHorizontal_bias="0.542"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintVertical_bias="0.0" />
+            app:layout_constraintVertical_bias="0.04">
 
-        <TextView
-            android:id="@+id/welcomebacktxt"
-            android:layout_width="wrap_content"
-            android:layout_height="65dp"
-            android:fontFamily="@font/poppins_semibold"
-            android:gravity="center"
-            android:text="@string/bienvenue_message"
-            android:textSize="29sp"
-            app:layout_constraintBottom_toBottomOf="parent"
+
+            <ImageView
+                android:id="@+id/imageView"
+                android:layout_width="56dp"
+                android:layout_height="56dp"
+                android:adjustViewBounds="false"
+                android:background="@drawable/homepage_activities_border"
+                android:clipToOutline="true"
+                android:fadingEdgeLength="10dp"
+                android:scaleType="centerCrop"
+                android:src="@drawable/logo"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintHorizontal_bias="0.0"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                app:layout_constraintVertical_bias="0.0" />
+
+            <TextView
+                android:id="@+id/welcomebacktxt"
+                android:layout_width="wrap_content"
+                android:layout_height="65dp"
+                android:fontFamily="@font/poppins_semibold"
+                android:gravity="center"
+                android:text="@string/bienvenue_message"
+                android:textSize="29sp"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintHorizontal_bias="0.054"
+                app:layout_constraintStart_toEndOf="@+id/imageView"
+                app:layout_constraintTop_toTopOf="parent"
+                app:layout_constraintVertical_bias="0.0"
+                tools:text="Bienvenue" />
+
+            <ImageButton
+                android:id="@+id/account"
+                android:layout_width="32dp"
+                android:layout_height="32dp"
+                android:adjustViewBounds="false"
+                android:background="@drawable/homepage_activities_border"
+                android:clipToOutline="true"
+                android:scaleType="centerCrop"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                android:src="@drawable/menu"
+                app:tint="@color/orange" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+        <ScrollView
+            android:id="@+id/scrollView2"
+            android:layout_width="377dp"
+            android:layout_height="450dp"
+            android:fillViewport="true"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHorizontal_bias="0.054"
-            app:layout_constraintStart_toEndOf="@+id/imageView"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintVertical_bias="0.0"
-            tools:text="Bienvenue" />
-
-        <ImageButton
-            android:id="@+id/account"
-            android:layout_width="32dp"
-            android:layout_height="32dp"
-            android:adjustViewBounds="false"
-            android:background="@drawable/homepage_activities_border"
-            android:clipToOutline="true"
-            android:scaleType="centerCrop"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/top"
+            android:layout_marginTop="20dp" >
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/homepage_recycler"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
+
+        </ScrollView>
+
+        <RelativeLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            android:src="@drawable/user"
-            app:tint="@color/orange" />
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/scrollView2">
+
+            <Button
+                android:id="@+id/program_creation_button"
+                android:layout_width="318dp"
+                android:layout_height="37dp"
+                android:backgroundTint="@color/orange"
+                android:clipToOutline="true"
+                android:text="Créer un programme" />
+
+        </RelativeLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
-    <ScrollView
-        android:id="@+id/scrollView2"
-        android:layout_width="377dp"
-        android:layout_height="450dp"
-        android:fillViewport="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/top"
-        android:layout_marginTop="20dp" >
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/homepage_recycler"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
-
-    </ScrollView>
-
-    <RelativeLayout
+    <com.google.android.material.navigation.NavigationView
+        android:id="@+id/navigation_view"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/scrollView2">
-
-        <Button
-            android:id="@+id/program_creation_button"
-            android:layout_width="318dp"
-            android:layout_height="37dp"
-            android:backgroundTint="@color/orange"
-            android:clipToOutline="true"
-            android:text="Créer un programme" />
-
-    </RelativeLayout>
-
-</androidx.constraintlayout.widget.ConstraintLayout>
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        app:menu="@menu/menu_main"
+        app:headerLayout="@layout/menu_header"/>
+
+</androidx.drawerlayout.widget.DrawerLayout>
diff --git a/app/src/main/res/layout/exercice.xml b/app/src/main/res/layout/exercises_list_row.xml
similarity index 84%
rename from app/src/main/res/layout/exercice.xml
rename to app/src/main/res/layout/exercises_list_row.xml
index f8ecb5100452bed45b5b6036b5dd3288cd11ad25..bb4172f98827769a7aa909fe948cadd4cdc7ea54 100644
--- a/app/src/main/res/layout/exercice.xml
+++ b/app/src/main/res/layout/exercises_list_row.xml
@@ -14,39 +14,50 @@
         tools:ignore="MissingConstraints">
 
         <TextView
-            android:id="@+id/exercice_name"
+            android:id="@+id/exercise_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_toEndOf="@id/delete_button"
             android:text="Text"/>
 
+
+
         <LinearLayout
             android:id="@+id/buttons_layout"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentStart="true"
             android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/training_days"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_toEndOf="@id/delete_button"
+                android:paddingLeft="20dp"
+                android:text="Text"/>
+
             <ImageView
-                android:id="@+id/delete_button"
+                android:id="@+id/edit_button"
                 android:layout_marginLeft="30dp"
                 android:layout_alignParentStart="true"
                 android:clickable="true"
                 android:src="@drawable/ic_launcher_background"
-
                 android:focusable="true"
                 android:layout_width="20dp"
-                android:layout_height="20dp"/>
+                android:layout_height="20dp"
+                app:tint="@color/orange" />
 
             <ImageView
-                android:id="@+id/edit_button"
+                android:id="@+id/delete_button"
                 android:layout_marginLeft="30dp"
                 android:layout_alignParentStart="true"
                 android:clickable="true"
                 android:src="@drawable/ic_launcher_background"
+
                 android:focusable="true"
                 android:layout_width="20dp"
-                android:layout_height="20dp"
-                app:tint="@color/orange" />
+                android:layout_height="20dp"/>
         </LinearLayout>
 
     </LinearLayout>
diff --git a/app/src/main/res/layout/menu_header.xml b/app/src/main/res/layout/menu_header.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7e283f7810342a6a81b47142d11837f0be34d935
--- /dev/null
+++ b/app/src/main/res/layout/menu_header.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="120dp"
+    android:background="@color/orange">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/menu_layout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <ImageView
+            android:id="@+id/menu_image"
+            android:layout_width="50dp"
+            android:layout_height="50dp"
+            android:src="@drawable/user"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            android:layout_marginLeft="30dp"/>
+
+        <TextView
+            android:id="@+id/menu_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:layout_toEndOf="@+id/menu_image"
+            android:text="Paramètres"
+            android:textSize="30sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/menu_image"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/menu_text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Vous êtes connecté !"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/menu_title" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/program_creation.xml b/app/src/main/res/layout/program_creation.xml
index 755e35972bd4a2de7adc58a71f60829a284267ea..21d70e4d9af11241a5d6a70daa28c2ec1971ad8b 100644
--- a/app/src/main/res/layout/program_creation.xml
+++ b/app/src/main/res/layout/program_creation.xml
@@ -148,98 +148,10 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="14dp">
 
-            <LinearLayout
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/exercise_recycler_view"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center_horizontal">
-
-                <TableLayout
-                    android:id="@+id/program_table"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content">
-
-                    <TableRow
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content">
-
-                        <TextView
-                            android:text="L"
-                            android:textAlignment="center"
-                            android:textSize="20sp"
-                            android:layout_weight="1"/>
-
-                        <View
-                            android:layout_width="1dp"
-                            android:layout_height="match_parent"
-                            android:background="@android:color/black"/>
-
-                        <TextView
-                            android:text="M"
-                            android:textAlignment="center"
-                            android:textSize="20sp"
-                            android:layout_weight="1"/>
-
-                        <View
-                            android:layout_width="1dp"
-                            android:layout_height="match_parent"
-                            android:background="@android:color/black"/>
-
-                        <TextView
-                            android:text="M"
-                            android:textAlignment="center"
-                            android:textSize="20sp"
-                            android:layout_weight="1"/>
-
-                        <View
-                            android:layout_width="1dp"
-                            android:layout_height="match_parent"
-                            android:background="@android:color/black"/>
-
-                        <TextView
-                            android:text="J"
-                            android:textAlignment="center"
-                            android:textSize="20sp"
-                            android:layout_weight="1"/>
-
-                        <View
-                            android:layout_width="1dp"
-                            android:layout_height="match_parent"
-                            android:background="@android:color/black"/>
-
-                        <TextView
-                            android:text="V"
-                            android:textAlignment="center"
-                            android:textSize="20sp"
-                            android:layout_weight="1"/>
-
-                        <View
-                            android:layout_width="1dp"
-                            android:layout_height="match_parent"
-                            android:background="@android:color/black"/>
-
-                        <TextView
-                            android:text="S"
-                            android:textAlignment="center"
-                            android:textSize="20sp"
-                            android:layout_weight="1"/>
-
-                        <View
-                            android:layout_width="1dp"
-                            android:layout_height="match_parent"
-                            android:background="@android:color/black"/>
-
-                        <TextView
-                            android:text="D"
-                            android:textAlignment="center"
-                            android:textSize="20sp"
-                            android:layout_weight="1"/>
-
-                    </TableRow>
-
-                </TableLayout>
-
-
-            </LinearLayout>
+                android:layout_height="wrap_content" />
         </RelativeLayout>
     </LinearLayout>
 
@@ -255,7 +167,7 @@
             android:layout_height="match_parent">
 
             <ListView
-                android:id="@+id/exos_current_day_ListView"
+                android:id="@+id/exercisesView"
                 android:layout_width="match_parent"
                 android:layout_height="100dp" />
 
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
new file mode 100644
index 0000000000000000000000000000000000000000..427245be6e70a2aa3921361d85f2c70b6d91c46b
--- /dev/null
+++ b/app/src/main/res/menu/menu_main.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <group android:checkableBehavior="single">
+        <item
+            android:id="@+id/menu_item_1"
+            android:title="Mon compte" />
+        <item
+            android:id="@+id/menu_item_2"
+            android:title="Mes amis" />
+    </group>
+</menu>
\ No newline at end of file