diff --git a/src/app/build.gradle.kts b/src/app/build.gradle.kts
index 442bfcdb01c671c10a8a4dd25b13f55f53088a43..8e8fe5ef2338799ebad48f9e90be61f10407da84 100644
--- a/src/app/build.gradle.kts
+++ b/src/app/build.gradle.kts
@@ -58,9 +58,11 @@ dependencies {
     implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
     implementation("androidx.activity:activity-compose:1.8.0")
     implementation(platform("androidx.compose:compose-bom:2023.03.00"))
+
     implementation("androidx.compose.ui:ui")
     implementation("androidx.compose.ui:ui-graphics")
     implementation("androidx.compose.ui:ui-tooling-preview")
+
     implementation("androidx.compose.material3:material3")
 
     implementation("androidx.room:room-runtime:$room_version")
@@ -78,4 +80,6 @@ dependencies {
 
     implementation("androidx.navigation:navigation-compose:2.5.3")
 
+    implementation("android.arch.lifecycle:livedata:1.1.1")
+    implementation("androidx.compose.ui:ui:1.5.4")
 }
diff --git a/src/app/src/main/java/com/example/moviestudio/database/Application.kt b/src/app/src/main/java/com/example/moviestudio/database/Application.kt
index 0b86f57e2b9ce76ec1980571563ccec3c0142e79..3817658bf7cc6f4b848e295223d5d517077b52d4 100644
--- a/src/app/src/main/java/com/example/moviestudio/database/Application.kt
+++ b/src/app/src/main/java/com/example/moviestudio/database/Application.kt
@@ -13,8 +13,5 @@ class MovieStudioApplication : Application() {
     override fun onCreate() {
         super.onCreate()
         database = AppDatabase.getInstance(this)!!
-        CoroutineScope(Dispatchers.IO).launch {
-            database.clearAllTables() // TODO: TO REMOVE AFTER USE OF API
-        }
     }
 }
diff --git a/src/app/src/main/java/com/example/moviestudio/database/MovieDao.kt b/src/app/src/main/java/com/example/moviestudio/database/MovieDao.kt
index d0cffbdc1707fd367bd11f35c138d9c42950dd44..c17bee0facba483cad7908357e2104a2dcad1f9c 100644
--- a/src/app/src/main/java/com/example/moviestudio/database/MovieDao.kt
+++ b/src/app/src/main/java/com/example/moviestudio/database/MovieDao.kt
@@ -21,4 +21,7 @@ interface MovieDao {
 
     @Query("DELETE FROM movies WHERE id = :movieId")
     suspend fun deleteMovie(movieId: Int)
+
+    @Query("DELETE FROM movies")
+    suspend fun deleteMovies()
 }
diff --git a/src/app/src/main/java/com/example/moviestudio/ui/components/ShowMovieModal.kt b/src/app/src/main/java/com/example/moviestudio/ui/components/ShowMovieModal.kt
index 7ff4b59633aa78411a43bcd5550e9e57364ac8ea..7848298d50d895346a78a51936e58f7573055783 100644
--- a/src/app/src/main/java/com/example/moviestudio/ui/components/ShowMovieModal.kt
+++ b/src/app/src/main/java/com/example/moviestudio/ui/components/ShowMovieModal.kt
@@ -58,6 +58,7 @@ import com.example.moviestudio.ui.theme.main
 import com.example.moviestudio.ui.theme.second
 import com.example.moviestudio.ui.theme.third
 import com.example.moviestudio.viewmodels.ShowMovieViewModel
+import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 
 @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
@@ -296,7 +297,7 @@ fun ShowMovie(
                         Button(
                             onClick = {
                                 Log.i("LIBRARY", "Save informations about the movie")
-                                coroutineScope.launch {
+                                coroutineScope.launch(Dispatchers.IO) {
                                     viewModel.insertRating(movie)
                                 }
                             },
diff --git a/src/app/src/main/java/com/example/moviestudio/ui/screens/Library.kt b/src/app/src/main/java/com/example/moviestudio/ui/screens/Library.kt
index bb6049d6f4ed6d68ce5f3ca9661a3dde1f9797aa..78268b87361bd729fbe23c6ff5f10e97be72ebd3 100644
--- a/src/app/src/main/java/com/example/moviestudio/ui/screens/Library.kt
+++ b/src/app/src/main/java/com/example/moviestudio/ui/screens/Library.kt
@@ -1,6 +1,7 @@
 package com.example.moviestudio.ui.screens
 
 import android.annotation.SuppressLint
+import android.graphics.fonts.FontStyle
 import android.util.Log
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Column
@@ -29,6 +30,8 @@ import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.Observer
 import androidx.lifecycle.viewmodel.compose.viewModel
 import androidx.navigation.NavController
 import com.example.moviestudio.Movie
@@ -42,6 +45,8 @@ import com.example.moviestudio.ui.theme.main
 import com.example.moviestudio.viewmodels.LibraryViewModel
 import com.example.moviestudio.viewmodels.ShowMovieViewModel
 import kotlinx.coroutines.launch
+import androidx.compose.runtime.DisposableEffect
+import kotlinx.coroutines.Dispatchers
 
 
 @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
@@ -56,6 +61,7 @@ fun Library(navController: NavController) {
     val coroutineScope = rememberCoroutineScope()
     var fetchedMovies by remember { mutableStateOf<List<Movie>>(emptyList()) }
 
+
     LaunchedEffect(true) {
         fetchedMovies = viewModel.fetchMovies()
     }
@@ -95,6 +101,14 @@ fun Library(navController: NavController) {
                     )
                 }
 
+                if (fetchedMovies.isEmpty()){
+                    Text(
+                        text = "Aucun film n'a été ajouté à la bibliothèque pour le moment",
+                        color = Color.Gray,
+                        modifier = Modifier.fillMaxWidth().padding(8.dp)
+                    )
+                }
+
                 // Display movies saved in the library.
                 LazyColumn(
                     modifier = Modifier
@@ -107,13 +121,12 @@ fun Library(navController: NavController) {
                             onKnowMoreClick = {
                                 viewModel.updateSelectedMovie(movie)
                                 viewModel.showMovieDetails()
-                                coroutineScope.launch {
+                                coroutineScope.launch(Dispatchers.IO) {
                                     viewModelShow.fetchRating(movie.id)
                                 }
                             },
                             onDeleteClick = {
-                                Log.i("LIBRARY", "REMOVE MOVIE")
-                                coroutineScope.launch {
+                                coroutineScope.launch(Dispatchers.IO) {
                                     viewModel.deleteMovie(movie.id.toInt())
                                     fetchedMovies = viewModel.fetchMovies()
                                 }
diff --git a/src/app/src/main/java/com/example/moviestudio/ui/screens/SearchMovie.kt b/src/app/src/main/java/com/example/moviestudio/ui/screens/SearchMovie.kt
index de87968121922b9a71dab5af74e1cd18d60cc1e5..2ad2d7f0ae1b25a9ba89a3421b0039a203cb8f44 100644
--- a/src/app/src/main/java/com/example/moviestudio/ui/screens/SearchMovie.kt
+++ b/src/app/src/main/java/com/example/moviestudio/ui/screens/SearchMovie.kt
@@ -87,7 +87,6 @@ fun SearchMovie(navController: NavController) {
                                 viewModel.showMoviePreview()
                             },
                             onAddToLibraryClick = {
-                                Log.i("SEARCH", "ADD MOVIE IN LIBRARY ${movie.name}")
                                 coroutineScope.launch {
                                     viewModel.insertMovie(movie)
                                 }
diff --git a/src/app/src/main/java/com/example/moviestudio/ui/screens/Settings.kt b/src/app/src/main/java/com/example/moviestudio/ui/screens/Settings.kt
index c199b30b9b455473b8f395f83398e381228b12cd..61579f6aadf73fc6bdf91a18da136ff79ed20347 100644
--- a/src/app/src/main/java/com/example/moviestudio/ui/screens/Settings.kt
+++ b/src/app/src/main/java/com/example/moviestudio/ui/screens/Settings.kt
@@ -15,6 +15,7 @@ import androidx.compose.material3.Text
 import androidx.compose.material3.TopAppBar
 import androidx.compose.material3.TopAppBarDefaults
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
@@ -29,6 +30,7 @@ import com.example.moviestudio.ui.theme.dark
 import com.example.moviestudio.ui.theme.main
 import com.example.moviestudio.ui.theme.second
 import com.example.moviestudio.viewmodels.SettingsViewModel
+import kotlinx.coroutines.launch
 
 @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
 @OptIn(ExperimentalMaterial3Api::class)
@@ -39,6 +41,8 @@ fun Settings(navController: NavController) {
 
     val viewModel = viewModel<SettingsViewModel>()
 
+    val coroutineScope = rememberCoroutineScope()
+
     Scaffold(
         modifier = Modifier.background(Color.Black),
         topBar = {
@@ -69,7 +73,11 @@ fun Settings(navController: NavController) {
                     modifier = Modifier
                         .fillMaxWidth()
                         .padding(6.dp),
-                    onClick = { viewModel.deleteAppData() },
+                    onClick = {
+                        coroutineScope.launch {
+                            viewModel.deleteAppData()
+                        }
+                    },
                     colors = ButtonDefaults.buttonColors(containerColor = second)
                 ) {
                     Text(text = "Supprimer les données")
diff --git a/src/app/src/main/java/com/example/moviestudio/viewmodels/LibraryViewModel.kt b/src/app/src/main/java/com/example/moviestudio/viewmodels/LibraryViewModel.kt
index 966b94ed79f2d86000533cf55ce2e12510d9afb8..08d3e45713bffb66329a12e046e81bcced223faf 100644
--- a/src/app/src/main/java/com/example/moviestudio/viewmodels/LibraryViewModel.kt
+++ b/src/app/src/main/java/com/example/moviestudio/viewmodels/LibraryViewModel.kt
@@ -4,6 +4,8 @@ import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateListOf
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.setValue
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 import com.example.moviestudio.Movie
 import com.example.moviestudio.UserRating
@@ -26,6 +28,9 @@ class LibraryViewModel() : ViewModel() {
     var isModalVisible by mutableStateOf(false)
         private set
 
+    private val _moviesLiveData = MutableLiveData<List<Movie>>()
+    val moviesLiveData: LiveData<List<Movie>> get() = _moviesLiveData
+
     val movies = mutableStateListOf<Movie>(
         Movie(
             id = 1,
@@ -57,7 +62,6 @@ class LibraryViewModel() : ViewModel() {
     )
 
 
-
     var selectedMovie by mutableStateOf(movies[0])
 
     // TODO
@@ -100,10 +104,6 @@ class LibraryViewModel() : ViewModel() {
         deleteMovie(id)
     }
 
-    suspend fun getAllMovies(): List<Movie> {
-        return db.movieDao().getAllMovies()
-    }
-
     suspend fun insertMovie(movieEntity: Movie) {
         db.movieDao().insertMovie(movieEntity)
     }
diff --git a/src/app/src/main/java/com/example/moviestudio/viewmodels/SettingsViewModel.kt b/src/app/src/main/java/com/example/moviestudio/viewmodels/SettingsViewModel.kt
index 1fe9db1a8e20206a301e1e5e9e70d2af3a403d94..b65b7751755b40c817fda935d8e3bf1fdba586c3 100644
--- a/src/app/src/main/java/com/example/moviestudio/viewmodels/SettingsViewModel.kt
+++ b/src/app/src/main/java/com/example/moviestudio/viewmodels/SettingsViewModel.kt
@@ -2,9 +2,13 @@ package com.example.moviestudio.viewmodels
 
 import android.util.Log
 import androidx.lifecycle.ViewModel
+import com.example.moviestudio.database.DatabaseProvider
 
 class SettingsViewModel : ViewModel() {
-    fun deleteAppData() {
+    val db = DatabaseProvider.getDatabase()
+
+    suspend fun deleteAppData() {
         Log.i("SETTINGS", "DELETE DATA FROM DB")
+        db.movieDao().deleteMovies()
     }
 }