diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index b589d56e9f285d8cfdc6c270853a5d439021a278..b86273d9424b73937ca6ad7933f6b7eeb60f4a3d 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="CompilerConfiguration">
-    <bytecodeTargetLevel target="17" />
+    <bytecodeTargetLevel target="21" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index b268ef36cd2de3a14ddddf25aa9f5d4e95731e18..2159e853647dc794a0b2787150f89d2bdea8f8d1 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -2,7 +2,7 @@
 <project version="4">
   <component name="deploymentTargetSelector">
     <selectionStates>
-      <SelectionState runConfigName="app">
+      <SelectionState runConfigName="MainActivity">
         <option name="selectionMode" value="DROPDOWN" />
       </SelectionState>
     </selectionStates>
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index cb865f697f47f6843c977b82522f285cde326243..ecd50f02b65093c34f22e87f347bab2b30fa3eae 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,6 +4,7 @@
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
+        <option name="testRunner" value="CHOOSE_PER_TEST" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
         <option name="gradleJvm" value="jbr-17" />
         <option name="modules">
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8978d23db569daa721cb26dde7923f4c673d1fc9..b2c751a35c77d4f7b713fe3bfc2cfb693e4d984f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1a6e2b7d4941c358ca0ee90bd88e9572529179a1..b5d83a451fe03416d1a6e1fa58a10e06ff8ad0dd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -31,6 +31,7 @@
             </intent-filter>
         </activity>
         <activity android:name=".HomeActivity"/>
+        <activity android:name=".TutorialActivity"/>
         <activity
             android:name=".PublicActivity"
             android:exported="true" />
diff --git a/app/src/main/java/com/example/myapplication/HomeActivity.java b/app/src/main/java/com/example/myapplication/HomeActivity.java
index c6317af36f68aa8c2c8055df6149ab3e86c8e3e7..f24543c19298108c90b3048346803220478e769b 100644
--- a/app/src/main/java/com/example/myapplication/HomeActivity.java
+++ b/app/src/main/java/com/example/myapplication/HomeActivity.java
@@ -8,6 +8,24 @@ import android.widget.Button;
 import androidx.appcompat.app.AppCompatActivity;
 
 public class HomeActivity extends AppCompatActivity {
+    @Override
+    protected void onResume() {
+        super.onResume();
+        String tutorialKey = "FIRST_TIME_TUTORIAL";
+        boolean preferences = getIntent().getBooleanExtra("PREFERENCES",true);
+        if (!preferences) getPreferences(MODE_PRIVATE).edit().putBoolean(tutorialKey, false).apply();
+        boolean firstTime = getPreferences(MODE_PRIVATE).getBoolean(tutorialKey, true);
+        if (firstTime) {
+            runTutorial();
+        }
+    }
+
+    private void runTutorial() {
+        Intent intent = new Intent(HomeActivity.this, TutorialActivity.class);
+        startActivity(intent);
+        finish();
+    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/app/src/main/java/com/example/myapplication/PublicActivity.java b/app/src/main/java/com/example/myapplication/PublicActivity.java
index b26759c3326cf3298f8096d967619a9f4eb09484..f50330c8f816d14fb07c7a0b9e6c64e7009df43f 100644
--- a/app/src/main/java/com/example/myapplication/PublicActivity.java
+++ b/app/src/main/java/com/example/myapplication/PublicActivity.java
@@ -4,13 +4,11 @@ package com.example.myapplication;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.fragment.app.Fragment;
 
+import android.content.Intent;
 import android.os.Bundle;
-import android.view.MenuItem;
 
 import com.google.android.material.bottomnavigation.BottomNavigationView;
 
-import java.util.Objects;
-
 public class PublicActivity extends AppCompatActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -37,7 +35,7 @@ public class PublicActivity extends AppCompatActivity {
                 break;
             case "PhotoPage":
                 loadFragment(new PhotoPage());
-                bottomNavigationView.setSelectedItemId(R.id.navigation_documenter);
+                bottomNavigationView.setSelectedItemId(R.id.navigation_identifier);
                 break;
         }
 
@@ -52,8 +50,13 @@ public class PublicActivity extends AppCompatActivity {
                 selectedFragment = new StatsPage();
             } else if (item.getItemId() == R.id.navigation_parametres) {
                 selectedFragment = new SettingsPage();
-            } else {
+            } else if (item.getItemId() == R.id.navigation_identifier) {
                 selectedFragment = new PhotoPage();
+            } else {
+                selectedFragment=null;
+                Intent intent = new Intent(PublicActivity.this, HomeActivity.class);
+                startActivity(intent);
+                finish();
             }
             loadFragment(selectedFragment);
             return true;
diff --git a/app/src/main/java/com/example/myapplication/TutorialActivity.java b/app/src/main/java/com/example/myapplication/TutorialActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..924e1278a8b1447165bfeed94623b4adccc4631e
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/TutorialActivity.java
@@ -0,0 +1,83 @@
+package com.example.myapplication;
+
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.viewpager2.widget.ViewPager2;
+
+import com.google.android.material.tabs.TabLayout;
+import com.google.android.material.tabs.TabLayoutMediator;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class TutorialActivity extends AppCompatActivity {
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_tutorial);
+
+        ViewPager2 viewPager2=findViewById(R.id.tutorial_viewpager);
+
+        List<Integer> layouts = Arrays.asList(
+                R.layout.fragment_tutorial_page1,
+                R.layout.fragment_tutorial_page2,
+                R.layout.fragment_tutorial_page3
+        );
+        TutorialFragmentAdapter adapter = new TutorialFragmentAdapter(this, layouts);
+        viewPager2.setAdapter(adapter);
+        LinearLayout dotsLayout = findViewById(R.id.dots_layout);
+        Button tutoEndButton = findViewById(R.id.tuto_end_button);
+        View.OnClickListener lTutoEndButton = new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent intent = new Intent(TutorialActivity.this, HomeActivity.class);
+                intent.putExtra("PREFERENCES", false);
+                startActivity(intent);
+                finish();
+            }
+        };
+        tutoEndButton.setOnClickListener(lTutoEndButton);
+
+        // Add dots based on page count
+        int pageCount = layouts.size();
+        ImageView[] dots = new ImageView[pageCount];
+        for (int i = 0; i < pageCount; i++) {
+            dots[i] = new ImageView(this);
+            dots[i].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dot_inactive));
+            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
+                    LinearLayout.LayoutParams.WRAP_CONTENT,
+                    LinearLayout.LayoutParams.WRAP_CONTENT
+            );
+            params.setMargins(8, 0, 8, 0);
+            dots[i].setLayoutParams(params);
+            dotsLayout.addView(dots[i]);
+        }
+
+        // Highlight the first dot
+        dots[0].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dot_active));
+
+        // Update dots on page change
+        viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
+            @Override
+            public void onPageSelected(int position) {
+                if (position==2) tutoEndButton.setVisibility(View.VISIBLE);
+                else tutoEndButton.setVisibility(View.INVISIBLE);
+                for (int i = 0; i < pageCount; i++) {
+                    dots[i].setImageDrawable(ContextCompat.getDrawable(
+                            getApplicationContext(),
+                            i == position ? R.drawable.dot_active : R.drawable.dot_inactive
+                    ));
+                }
+            }
+        });
+    }
+}
diff --git a/app/src/main/java/com/example/myapplication/TutorialFragmentAdapter.java b/app/src/main/java/com/example/myapplication/TutorialFragmentAdapter.java
new file mode 100644
index 0000000000000000000000000000000000000000..1deec3b60cf50807ef9c57a7af0f5620bce3e79b
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/TutorialFragmentAdapter.java
@@ -0,0 +1,29 @@
+package com.example.myapplication;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
+
+import java.util.List;
+
+public class TutorialFragmentAdapter extends FragmentStateAdapter {
+    private final List<Integer> layouts;
+
+    public TutorialFragmentAdapter(@NonNull FragmentActivity fragmentActivity, List<Integer> layouts) {
+        super(fragmentActivity);
+        this.layouts = layouts;
+    }
+
+    @NonNull
+    @Override
+    public Fragment createFragment(int position) {
+        return TutorialPageFragment.newInstance(layouts.get(position));
+    }
+
+    @Override
+    public int getItemCount() {
+        return layouts.size();
+    }
+}
+
diff --git a/app/src/main/java/com/example/myapplication/TutorialPageFragment.java b/app/src/main/java/com/example/myapplication/TutorialPageFragment.java
new file mode 100644
index 0000000000000000000000000000000000000000..803cea3530f0dd9caa401dd308558164ef06744d
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/TutorialPageFragment.java
@@ -0,0 +1,30 @@
+package com.example.myapplication;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+public class TutorialPageFragment extends Fragment {
+    private static final String ARG_LAYOUT_ID = "layout_id";
+
+    public static TutorialPageFragment newInstance(int layoutId) {
+        TutorialPageFragment fragment = new TutorialPageFragment();
+        Bundle args = new Bundle();
+        args.putInt(ARG_LAYOUT_ID, layoutId);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        int layoutId = getArguments() != null ? getArguments().getInt(ARG_LAYOUT_ID) : 0;
+        return inflater.inflate(layoutId, container, false);
+    }
+}
diff --git a/app/src/main/res/drawable/avi_main.png b/app/src/main/res/drawable/avi_main.png
new file mode 100644
index 0000000000000000000000000000000000000000..4330ea4282dc8a3a26aaa2762619d4b5be788bf8
Binary files /dev/null and b/app/src/main/res/drawable/avi_main.png differ
diff --git a/app/src/main/res/drawable/becasseau_sanderling_2.png b/app/src/main/res/drawable/becasseau_sanderling_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e5d1d1186ecd6657b8ddad037eb2955bcb26876
Binary files /dev/null and b/app/src/main/res/drawable/becasseau_sanderling_2.png differ
diff --git a/app/src/main/res/drawable/camera.png b/app/src/main/res/drawable/camera.png
index 2d8c79f06f4f539e734c4e202de19070188be598..62de7e7f8a3d36074c34d9b2ebc042d1a27e81b1 100644
Binary files a/app/src/main/res/drawable/camera.png and b/app/src/main/res/drawable/camera.png differ
diff --git a/app/src/main/res/drawable/dot_active.xml b/app/src/main/res/drawable/dot_active.xml
new file mode 100644
index 0000000000000000000000000000000000000000..65e93ce484a9ac144c3df6ee5ca5f4c901db3910
--- /dev/null
+++ b/app/src/main/res/drawable/dot_active.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="50dp"/>
+    <solid android:color="@color/white"/>
+    <size android:width="16dp" android:height="16dp"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/dot_inactive.xml b/app/src/main/res/drawable/dot_inactive.xml
new file mode 100644
index 0000000000000000000000000000000000000000..49a1c479a3912c9bf1916f20ea7848b67f854823
--- /dev/null
+++ b/app/src/main/res/drawable/dot_inactive.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="50dp"/>
+    <solid android:color="#777777"/>
+    <size android:width="12dp" android:height="12dp"/>
+</shape>
diff --git a/app/src/main/res/drawable/gallery.png b/app/src/main/res/drawable/gallery.png
new file mode 100644
index 0000000000000000000000000000000000000000..48ff824023c65cab7f6f03fc82b0ac01dc0f5417
Binary files /dev/null and b/app/src/main/res/drawable/gallery.png differ
diff --git a/app/src/main/res/drawable/learn.png b/app/src/main/res/drawable/learn.png
new file mode 100644
index 0000000000000000000000000000000000000000..77eb3dfe7e0dd1ebf07577b326809e20069f783c
Binary files /dev/null and b/app/src/main/res/drawable/learn.png differ
diff --git a/app/src/main/res/drawable/line_1.png b/app/src/main/res/drawable/line_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..078434dab950e3cf3c1fda5a155c947f03498b53
Binary files /dev/null and b/app/src/main/res/drawable/line_1.png differ
diff --git a/app/src/main/res/drawable/line_2.png b/app/src/main/res/drawable/line_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..762f936140319731be058b5b453687eb55979dc8
Binary files /dev/null and b/app/src/main/res/drawable/line_2.png differ
diff --git a/app/src/main/res/drawable/line_3.png b/app/src/main/res/drawable/line_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..301662b5eae2fd24fd411414bb01fe2c8716e2ab
Binary files /dev/null and b/app/src/main/res/drawable/line_3.png differ
diff --git a/app/src/main/res/drawable/logo_main.png b/app/src/main/res/drawable/logo_main.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa4236f74d6ae14358950bf86c8c9c4091d3d9a4
Binary files /dev/null and b/app/src/main/res/drawable/logo_main.png differ
diff --git a/app/src/main/res/drawable/navigation_button_left.png b/app/src/main/res/drawable/navigation_button_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b28249dc18b68de7bfbd05d9f31d9e32446d6cf
Binary files /dev/null and b/app/src/main/res/drawable/navigation_button_left.png differ
diff --git a/app/src/main/res/drawable/navigation_button_right.png b/app/src/main/res/drawable/navigation_button_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..da494ccce7171007074f0446db995683cc8c7f33
Binary files /dev/null and b/app/src/main/res/drawable/navigation_button_right.png differ
diff --git a/app/src/main/res/drawable/plunv.png b/app/src/main/res/drawable/plunv.png
new file mode 100644
index 0000000000000000000000000000000000000000..6dcd807a458121cf6083a38467f788bb8fc0c241
Binary files /dev/null and b/app/src/main/res/drawable/plunv.png differ
diff --git a/app/src/main/res/drawable/polygon_4.png b/app/src/main/res/drawable/polygon_4.png
index f91b4398dfc34c48615cd6cb879e785c7c590030..8c8b0ec782c7fb4c55d79a35fd4a1674f0a67ac1 100644
Binary files a/app/src/main/res/drawable/polygon_4.png and b/app/src/main/res/drawable/polygon_4.png differ
diff --git a/app/src/main/res/drawable/polygon_6.png b/app/src/main/res/drawable/polygon_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..ffc0e9acbf3abc9fd7cc58544a8375ba3f60b267
Binary files /dev/null and b/app/src/main/res/drawable/polygon_6.png differ
diff --git a/app/src/main/res/drawable/polygon_7.png b/app/src/main/res/drawable/polygon_7.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b8f59f91a77324de60666327752d6bab45690b0
Binary files /dev/null and b/app/src/main/res/drawable/polygon_7.png differ
diff --git a/app/src/main/res/drawable/polygon_8.png b/app/src/main/res/drawable/polygon_8.png
new file mode 100644
index 0000000000000000000000000000000000000000..216664e051d44efd0f3205a7f0a93d6b938a47f7
Binary files /dev/null and b/app/src/main/res/drawable/polygon_8.png differ
diff --git a/app/src/main/res/drawable/polygon_9.png b/app/src/main/res/drawable/polygon_9.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e8475b398ddfc01621d79cbf6ff3b1af89586ec
Binary files /dev/null and b/app/src/main/res/drawable/polygon_9.png differ
diff --git a/app/src/main/res/drawable/shape_transparent_blue.xml b/app/src/main/res/drawable/shape_transparent_blue.xml
new file mode 100644
index 0000000000000000000000000000000000000000..353b83ad1352ff88dd96c4c165e87d43eea4179b
--- /dev/null
+++ b/app/src/main/res/drawable/shape_transparent_blue.xml
@@ -0,0 +1,25 @@
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle"   >
+
+    <solid
+        android:color="@color/white">
+    </solid>
+
+    <stroke
+        android:width="2dp"
+        android:color="#00FFFFFF" >
+    </stroke>
+
+    <padding
+        android:left="5dp"
+        android:top="5dp"
+        android:right="5dp"
+        android:bottom="5dp"    >
+    </padding>
+
+    <corners
+        android:radius="8dp">
+    </corners>
+    <solid android:color="#E6517293" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/tuto_becasseau_desc.png b/app/src/main/res/drawable/tuto_becasseau_desc.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4b59d2d7bad5fc3f46a73e496686853dfd3d6a3
Binary files /dev/null and b/app/src/main/res/drawable/tuto_becasseau_desc.png differ
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
index bc822ed17d580617a10d3c1f826228dbceb37b5c..37c63a1dc72a1b18c6583e00255a8d48e79cff80 100644
--- a/app/src/main/res/layout/activity_home.xml
+++ b/app/src/main/res/layout/activity_home.xml
@@ -31,8 +31,9 @@
 
     <ImageView
         android:id="@+id/polygon_4"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:scaleType="fitXY"
         android:src="@drawable/polygon_4"
         android:alpha="0.75"
         android:layout_gravity="center_horizontal|bottom"
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index e024e1b82a6afa25a744b6da52c98a8460332219..3b13ac8495c35e1ea90e99801f36e277713a502f 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -7,98 +7,50 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:clipToOutline="true"
-    android:background="@color/black">
+    android:background="@color/white">
 
-    <ImageView
-        android:alpha="0.4"
-        android:id="@+id/image_1"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:scaleType="centerCrop"
-        android:src="@drawable/image_1"/>
-
-
-    <TextView
-        android:id="@+id/sell_rad"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="13dp"
-        android:layout_marginTop="14dp"
-        android:fontFamily="@font/mclaren"
-        android:layout_gravity="start|center"
-        android:text="@string/sell_rad"
-        android:textAppearance="@style/sell_rad" />
-
-    <ImageView
-        android:id="@+id/image_2"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom|center_horizontal"
-        android:layout_marginBottom="50dp"
-        android:src="@drawable/image_2"
-        />
 
     <ImageView
-        android:id="@+id/polygon_3"
+        android:id="@+id/imageView6"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:src="@drawable/polygon_3"
-        android:alpha="0.75"
-        android:layout_gravity="end|bottom"
-        />
+        app:srcCompat="@drawable/plunv"
+        android:paddingHorizontal="70dp"
+        android:layout_gravity="bottom"
+        android:layout_marginBottom="240dp"/>
 
     <ImageView
-        android:id="@+id/rectangle_1"
+        android:id="@+id/imageView7"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_gravity="start|center_vertical"
-        android:layout_marginTop="250dp"
-        android:layout_marginStart="33dp"
-        android:alpha="0.75"
-        android:background="@drawable/rectangle_5"
-        />
+        app:srcCompat="@drawable/logo_main"
+        android:layout_gravity="center"
+        android:paddingBottom="430dp"
+        android:paddingTop="174dp"
+        android:paddingHorizontal="37dp"/>
 
     <ImageView
-        android:id="@+id/rectangle_2"
+        android:id="@+id/imageView8"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_gravity="start"
-        android:layout_marginTop="167dp"
-        android:layout_marginEnd="250dp"
-        android:alpha="0.75"
-        android:background="@drawable/rectangle_5"
-        />
+        app:srcCompat="@drawable/avi_main"
+        android:paddingHorizontal="60dp"
+        android:layout_gravity="bottom"
+        android:layout_marginBottom="220dp"/>
 
     <ImageView
-        android:id="@+id/rectangle_3"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="start"
-        android:layout_marginTop="150dp"
-        android:layout_marginEnd="300dp"
-        android:alpha="0.75"
-        android:background="@drawable/rectangle_5"
-        />
-
-    <ImageView
-        android:id="@+id/rectangle_4"
-        android:layout_width="wrap_content"
+        android:id="@+id/imageView9"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_gravity="end|center_vertical"
-        android:layout_marginTop="75dp"
-        android:layout_marginEnd="70dp"
-        android:alpha="0.75"
-        android:background="@drawable/rectangle_5"
-        />
+        android:scaleType="fitXY"
+        app:srcCompat="@drawable/polygon_9"
+        android:layout_gravity="bottom"/>
 
     <ImageView
-        android:id="@+id/polygon_1"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:src="@drawable/polygon_1"
-        android:layout_gravity="end|center_vertical"
-        android:layout_marginBottom="25dp"
-        android:alpha="0.75"
-        />
-
+        android:id="@+id/imageView10"
+        android:layout_width="147dp"
+        android:layout_height="49dp"
+        app:srcCompat="@drawable/image_2"
+        android:layout_gravity="bottom|center_horizontal"
+        android:layout_marginBottom="18.4dp"/>
 </FrameLayout>
diff --git a/app/src/main/res/layout/activity_tutorial.xml b/app/src/main/res/layout/activity_tutorial.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bbe02b662e8876260dfa5683405976e49476a8d9
--- /dev/null
+++ b/app/src/main/res/layout/activity_tutorial.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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:id="@+id/public_activity"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/black"
+    tools:context=".TutorialActivity">
+
+    <ImageView
+        android:alpha="0.4"
+        android:id="@+id/image_1"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="centerCrop"
+        android:src="@drawable/image_1"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toTopOf="@id/bottom_navigation"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"/>
+
+    <androidx.viewpager2.widget.ViewPager2
+        android:id="@+id/tutorial_viewpager"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+    <LinearLayout
+        android:id="@+id/dots_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        android:gravity="center"
+        android:padding="8dp"
+        android:layout_gravity="bottom|center_horizontal"
+        android:layout_marginBottom="19dp"/>
+
+    <Button
+        android:id="@+id/tuto_end_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:backgroundTint="#517293"
+        style="@style/ButtonAppearance"
+        android:layout_gravity="center_horizontal|bottom"
+        android:layout_marginBottom="60dp"
+        android:text="@string/tuto_end"
+        android:fontFamily="@font/inter"/>
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_tutorial_page1.xml b/app/src/main/res/layout/fragment_tutorial_page1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..66e2cb69acdcafd8d306eaa8a6e4d3771a16b29c
--- /dev/null
+++ b/app/src/main/res/layout/fragment_tutorial_page1.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingTop="5.7dp"
+        android:src="@drawable/polygon_6" />
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:layout_marginTop="-131dp"
+        android:src="@drawable/line_1" />
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/shape_transparent_blue"
+        android:text="@string/tuto_id"
+        android:textSize="29sp"
+        android:fontFamily="@font/inter"
+        android:paddingHorizontal="36dp"
+        android:paddingVertical="13dp"
+        android:textColor="#D9D9D9"
+        android:textStyle="bold"
+        android:rotation="-5"
+        android:layout_gravity="center_vertical"
+        android:layout_marginBottom="250dp"
+        android:layout_marginLeft="-15dp"/>
+
+    <FrameLayout
+        android:layout_width="320dp"
+        android:layout_height="296dp"
+        android:layout_gravity="center"
+        android:layout_marginTop="75dp">
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:background="@drawable/shape_transparent"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:text="@string/tuto_cam"
+            android:textSize="16sp"
+            android:fontFamily="@font/inter"
+            android:paddingTop="12dp"/>
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:src="@drawable/becasseau_sanderling_2"
+            android:paddingRight="15dp"
+            android:paddingLeft="15dp"
+            android:paddingTop="50dp"
+            android:paddingBottom="19dp"/>
+    </FrameLayout>
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_tutorial_page2.xml b/app/src/main/res/layout/fragment_tutorial_page2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fbb737f3a35dcdbe7c5f46d73d11809205915e12
--- /dev/null
+++ b/app/src/main/res/layout/fragment_tutorial_page2.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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="match_parent">
+
+    <ImageView
+        android:id="@+id/imageView2"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingTop="65dp"
+        app:srcCompat="@drawable/polygon_7" />
+
+    <ImageView
+        android:id="@+id/imageView5"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:paddingTop="269dp"
+        app:srcCompat="@drawable/line_2" />
+    
+    <FrameLayout
+        android:layout_width="272dp"
+        android:layout_height="520dp"
+        android:layout_gravity="center"
+        android:layout_marginTop="70dp">
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:src="@drawable/shape_transparent"/>
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/gallery"
+            android:paddingHorizontal="24dp"
+            android:paddingTop="60dp"
+            android:paddingBottom="29dp"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:text="@string/tuto_gal"
+            android:textSize="16sp"
+            android:fontFamily="@font/inter"
+            android:paddingTop="12dp"/>
+    </FrameLayout>
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_tutorial_page3.xml b/app/src/main/res/layout/fragment_tutorial_page3.xml
new file mode 100644
index 0000000000000000000000000000000000000000..709d0c044249c856f1a0814ffc1338e656fba8a5
--- /dev/null
+++ b/app/src/main/res/layout/fragment_tutorial_page3.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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="match_parent">
+
+    <ImageView
+        android:id="@+id/imageView3"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="fitCenter"
+        app:srcCompat="@drawable/polygon_8" />
+
+    <ImageView
+        android:id="@+id/imageView4"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingBottom="219.3dp"
+        app:srcCompat="@drawable/line_3" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/shape_transparent_blue"
+        android:text="@string/tuto_app"
+        android:textAlignment="center"
+        android:textSize="26sp"
+        android:fontFamily="@font/inter"
+        android:paddingHorizontal="27dp"
+        android:paddingVertical="13dp"
+        android:textColor="#D9D9D9"
+        android:textStyle="bold"
+        android:rotation="-5"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginBottom="250dp"
+        android:layout_marginLeft="-25dp"
+        android:layout_marginTop="160dp"/>
+
+    <FrameLayout
+        android:layout_width="319dp"
+        android:layout_height="440dp"
+        android:layout_gravity="center"
+        android:layout_marginTop="90dp">
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:src="@drawable/shape_transparent"/>
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/learn"
+            android:paddingLeft="26dp"
+            android:paddingRight="63dp"
+            android:paddingBottom="96dp"
+            android:paddingTop="58dp"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:text="@string/tuto_page_app"
+            android:textSize="16sp"
+            android:fontFamily="@font/inter"
+            android:paddingTop="12dp"/>
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/tuto_becasseau_desc"
+            android:paddingTop="318dp"
+            android:paddingRight="21dp"
+            android:paddingBottom="32dp"
+            android:paddingLeft="56dp"/>
+    </FrameLayout>
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml
index c6fc173b9ec6d329c541ed17530d84624b9d67c7..99c0786d42af28acc25446ce90bfebc94e4b4aa9 100644
--- a/app/src/main/res/menu/bottom_nav_menu.xml
+++ b/app/src/main/res/menu/bottom_nav_menu.xml
@@ -8,7 +8,11 @@
         android:icon="@drawable/stats"
         android:title="Stats" />
     <item
-        android:id="@+id/navigation_documenter"
+        android:id="@+id/navigation_accueil"
+        android:icon="@drawable/home"
+        android:title="Accueil"/>
+    <item
+        android:id="@+id/navigation_identifier"
         android:icon="@drawable/camera"
         android:title="Documenter" />
     <item
diff --git a/app/src/main/res/values/refs.xml b/app/src/main/res/values/refs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a6b3daec9354f9ae75cdf8d94a67446c6227dd96
--- /dev/null
+++ b/app/src/main/res/values/refs.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ed7a9ffd7fa18aac1e971637417cdebaf52ef69e..2382e86ee7c442d5f91886c0116700221e17ef5e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -8,7 +8,7 @@
     <string name="hello_blank_fragment">Hello blank fragment</string>
     <string name="learn">Apprendre</string>
     <string name="settings">Paramètres</string>
-    <string name="photo">Documenter</string>
+    <string name="photo">Identifier</string>
     <string name="stats">Statistiques</string>
     <string name="login">Se connecter</string>
     <string name="user_name">Nom d\'utilisateur</string>
@@ -57,4 +57,10 @@
     <string name="chevalier"><u>Chevalier gambette</u>\nPlutôt solitaire et long sur pattes,
         vous me reconnaîtrez à mes pattes et à mon bec bien rouges. Pour le reste je suis brun moucheté sur le dos et blanc sur le ventre,
         une parfaite tenue de camouflage !</string>
+    <string name="tuto_cam">Avec sa caméra</string>
+    <string name="tuto_id">Identifier des espèces</string>
+    <string name="tuto_gal">Sur sa galerie</string>
+    <string name="tuto_app">En apprendre plus sur\nl\'avifaune présente à Lorient</string>
+    <string name="tuto_page_app">Sur la page Apprendre</string>
+    <string name="tuto_end">C\'est parti</string>
 </resources>
\ No newline at end of file