diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 139883fab32f9672d9fdbce96ad9da0ce0d2a241..6fefa4f92ccb6e804493fff16466ae63cca909a0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,6 +21,12 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity
+            android:name=".CreateActivity"
+            android:exported="false"/>
+        <activity
+            android:name=".OpenActivity"
+            android:exported="false"/>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/fr/ul/projet/CreateActivity.java b/app/src/main/java/fr/ul/projet/CreateActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..ffe67472c8c76e8d393f3856bb61bfe8ad13382d
--- /dev/null
+++ b/app/src/main/java/fr/ul/projet/CreateActivity.java
@@ -0,0 +1,37 @@
+package fr.ul.projet;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+public class CreateActivity extends AppCompatActivity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState){
+        super.onCreate(savedInstanceState);
+        EdgeToEdge.enable(this);
+        setContentView(R.layout.activity_create);
+
+        String titreModele = getIntent().getStringExtra("titreModele");
+        TextView textView = findViewById(R.id.textView);
+        textView.setText(titreModele);
+
+        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.create), (v, insets) -> {
+            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+            return insets;
+        });
+
+    }
+
+    public void home(View v){
+        Intent res = new Intent();
+        finish();
+    }
+}
diff --git a/app/src/main/java/fr/ul/projet/MainActivity.java b/app/src/main/java/fr/ul/projet/MainActivity.java
index d656455e2a9042bf59e5b8cebc83af52d785b296..8a7b2f6a15359d0a23c1929fbde76ced6b461719 100644
--- a/app/src/main/java/fr/ul/projet/MainActivity.java
+++ b/app/src/main/java/fr/ul/projet/MainActivity.java
@@ -1,14 +1,32 @@
 package fr.ul.projet;
 
+import android.content.ContentResolver;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
 import android.os.Bundle;
+import android.provider.OpenableColumns;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
 
 import androidx.activity.EdgeToEdge;
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultCallback;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.core.graphics.Insets;
 import androidx.core.view.ViewCompat;
 import androidx.core.view.WindowInsetsCompat;
 
-public class MainActivity extends AppCompatActivity {
+public class MainActivity extends AppCompatActivity implements View.OnClickListener{
+
+    private ActivityResultLauncher<Intent> launcher;
+    private static final int PICK_FILE_REQUEST = 1;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -20,5 +38,129 @@ public class MainActivity extends AppCompatActivity {
             v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
             return insets;
         });
+        findViewById(R.id.boutonNouveau).setOnClickListener(this);
+        findViewById(R.id.boutonOuvrir).setOnClickListener(this);
+
+        this.launcher = registerForActivityResult(
+                new ActivityResultContracts.StartActivityForResult(),
+                new ActivityResultCallback<ActivityResult>() {
+                    @Override
+                    public void onActivityResult(ActivityResult result){
+                        int resCode = result.getResultCode(); // Code retourné par l'activité
+
+                }
+    }
+        );
+    }
+
+    public void onClick(View v){
+        if (v.getId() == R.id.boutonNouveau) {
+            nouveauModele();
+        }else if (v.getId() == R.id.boutonOuvrir){
+            ouvrirModele();
+        }
+    }
+
+    public void nouveauModele(){
+        AlertDialog.Builder builder = new AlertDialog.Builder(this);
+        builder.setTitle("Entrez un nom pour votre modèle");
+
+        final EditText input = new EditText(this);
+        builder.setView(input);
+
+        // Bouton de validation
+        builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
+            @Override
+            public void onClick(DialogInterface dialog, int which){
+                String userInput = input.getText().toString();
+                Intent intent = new Intent(MainActivity.this, CreateActivity.class);
+                intent.putExtra("titreModele", userInput);
+                launcher.launch(intent);
+            }
+        });
+
+        // Bouton d'annulatiopn
+        builder.setNegativeButton("Annuler", new DialogInterface.OnClickListener(){
+            @Override
+            public void onClick(DialogInterface dialog, int which){
+                dialog.cancel();
+            }
+        });
+        builder.show();
+    }
+
+    public void ouvrirModele(){
+        AlertDialog.Builder builder = new AlertDialog.Builder(this);
+        builder.setTitle("Sélectionner un fichier");
+        builder.setMessage("Voulez-vous choisir un fihcier ?");
+
+        // Bouton de validation
+        builder.setPositiveButton("Choisir", new DialogInterface.OnClickListener(){
+            @Override
+            public void onClick(DialogInterface dialog, int which){
+                openFileChooser();
+            }
+        });
+
+        // Bouton d'annulatiopn
+        builder.setNegativeButton("Annuler", new DialogInterface.OnClickListener(){
+            @Override
+            public void onClick(DialogInterface dialog, int which){
+                dialog.dismiss();
+            }
+        });
+        builder.show();
+    }
+
+    private void openFileChooser(){
+        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+        intent.setType("*/*");
+        intent.addCategory(Intent.CATEGORY_OPENABLE);
+        startActivityForResult(Intent.createChooser(intent, "Sélectionner un fichier"), PICK_FILE_REQUEST);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data){
+        super.onActivityResult(requestCode, resultCode, data);
+
+        if (requestCode == PICK_FILE_REQUEST && resultCode == RESULT_OK && data != null){
+            Uri fileUri = data.getData();
+
+            if (fileUri != null){
+                Intent intent = new Intent(MainActivity.this, OpenActivity.class);
+                intent.putExtra("fichier", getFileName(fileUri));
+                launcher.launch(intent);
+            }
+        }
+    }
+
+    public String getFileName(Uri uri){
+        String result = null;
+
+        // Vérifier si l'URI contient un nom de fichier
+        if (uri.getScheme().equals("content")) {
+            ContentResolver contentResolver = getContentResolver();
+            Cursor cursor = contentResolver.query(uri, null, null, null, null);
+
+            if (cursor != null) {
+                int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
+                if (nameIndex != -1) {
+                    cursor.moveToFirst();
+                    result = cursor.getString(nameIndex);
+                }
+                cursor.close();
+            }
+        }
+
+        // Si l'URI est un chemin de fichier, extraire le nom du fichier
+        if (result == null) {
+            result = uri.getPath();
+            int cut = result.lastIndexOf('/');
+            if (cut != -1) {
+                result = result.substring(cut + 1);
+            }
+        }
+
+        return result;
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/fr/ul/projet/OpenActivity.java b/app/src/main/java/fr/ul/projet/OpenActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..5fd7a4258d927efb214477d207fbcb1d88954a19
--- /dev/null
+++ b/app/src/main/java/fr/ul/projet/OpenActivity.java
@@ -0,0 +1,37 @@
+package fr.ul.projet;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+public class OpenActivity extends AppCompatActivity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState){
+        super.onCreate(savedInstanceState);
+        EdgeToEdge.enable(this);
+        setContentView(R.layout.activity_open);
+
+        String nomFichier = getIntent().getStringExtra("fichier");
+        TextView textView = findViewById(R.id.textView);
+        textView.setText(nomFichier);
+
+        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.open), (v, insets) -> {
+            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+            return insets;
+        });
+
+    }
+
+    public void home(View v){
+        Intent res = new Intent();
+        finish();
+    }
+}
diff --git a/app/src/main/res/layout/activity_create.xml b/app/src/main/res/layout/activity_create.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8df3329c36a7753c86aa40458c33c19027ce2211
--- /dev/null
+++ b/app/src/main/res/layout/activity_create.xml
@@ -0,0 +1,30 @@
+<?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"
+    android:id="@+id/create"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/textView"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/creer_mess"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <Button
+        android:id="@+id/home"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:onClick="home"
+        android:text="@string/home"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.929" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 86a5d977951ccdfedf6e21f7fe07f1ac54b3b2ce..17854991daf3118b18b8574bd6ab08107264ee38 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -7,13 +7,28 @@
     android:layout_height="match_parent"
     tools:context=".MainActivity">
 
-    <TextView
+    <Button
+        android:id="@+id/boutonNouveau"
+        android:layout_width="220dp"
+        android:layout_height="41dp"
+        android:text="@string/creer"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.39" />
+
+    <Button
+        android:id="@+id/boutonOuvrir"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="Hello World!"
+        android:text="@string/ouvrir"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.556" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_open.xml b/app/src/main/res/layout/activity_open.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cc8915cea9a93ddad5f12a1d574d8a336fa4506f
--- /dev/null
+++ b/app/src/main/res/layout/activity_open.xml
@@ -0,0 +1,30 @@
+<?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"
+    android:id="@+id/open"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/textView"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/ouvrir_mess"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <Button
+        android:id="@+id/home"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:onClick="home"
+        android:text="@string/home"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.929" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ 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 a6c96e696d4de1d63549040fe071f973e530b96d..96fc3ad88d86bb7f82c0128b4606b3351406ef45 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,8 @@
 <resources>
     <string name="app_name">PROJET</string>
+    <string name="creer">Créer un nouveau modèle</string>
+    <string name="ouvrir">Ouvrir un modèle existant</string>
+    <string name="creer_mess">Nouveau modèle créé</string>
+    <string name="ouvrir_mess">Modèle correctement importé</string>
+    <string name="home">Retour à l\'accueil</string>
 </resources>
\ No newline at end of file