diff --git a/client/package-lock.json b/client/package-lock.json
index 81b1771c1e4bb7b73d59894b610886bc5d793edd..4cd4e69d0fe20153b0917ae6c1a25bf9fc57e14a 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -21,6 +21,7 @@
         "react": "18.2.0",
         "react-dom": "18.2.0",
         "react-native": "0.71.14",
+        "react-native-swipeout": "^2.3.6",
         "react-native-vector-icons": "^10.0.0",
         "react-native-web": "~0.18.11"
       },
@@ -19745,6 +19746,14 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/raf": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
+      "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
+      "dependencies": {
+        "performance-now": "^2.1.0"
+      }
+    },
     "node_modules/randombytes": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -20232,6 +20241,17 @@
         "react-native": "*"
       }
     },
+    "node_modules/react-native-swipeout": {
+      "version": "2.3.6",
+      "resolved": "https://registry.npmjs.org/react-native-swipeout/-/react-native-swipeout-2.3.6.tgz",
+      "integrity": "sha512-t9suUCspzck4vp2pWggWe0frS/QOtX6yYCawHnEes75A7dZCEE74bxX2A1bQzGH9cUMjq6xsdfC94RbiDKIkJg==",
+      "deprecated": "Package no longer supported. Use at your own risk or consider using https://github.com/software-mansion/react-native-gesture-handler",
+      "dependencies": {
+        "create-react-class": "^15.6.0",
+        "prop-types": "^15.5.10",
+        "react-tween-state": "^0.1.5"
+      }
+    },
     "node_modules/react-native-vector-icons": {
       "version": "10.0.1",
       "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.0.1.tgz",
@@ -20349,6 +20369,15 @@
         "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
       }
     },
+    "node_modules/react-tween-state": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/react-tween-state/-/react-tween-state-0.1.5.tgz",
+      "integrity": "sha512-sJQpjsdn0wjlDIUpfpb7jQGnOG8hAEW2e8k0KPA+xmf5KFa6Xat2JldbmxBhaqP0S/uIXhVE5ymKyH/b9X8nYA==",
+      "dependencies": {
+        "raf": "^3.1.0",
+        "tween-functions": "^1.0.1"
+      }
+    },
     "node_modules/read-chunk": {
       "version": "3.2.0",
       "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz",
@@ -23028,6 +23057,11 @@
         "domino": "^2.1.6"
       }
     },
+    "node_modules/tween-functions": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz",
+      "integrity": "sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA=="
+    },
     "node_modules/tweetnacl": {
       "version": "0.14.5",
       "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
diff --git a/client/package.json b/client/package.json
index 886df61fd1c0f29317686d73ac7ead4fab759ce0..7ae3d6beaa69e06fde9d3b890063af2f789d59ee 100644
--- a/client/package.json
+++ b/client/package.json
@@ -22,6 +22,7 @@
     "react": "18.2.0",
     "react-dom": "18.2.0",
     "react-native": "0.71.14",
+    "react-native-swipeout": "^2.3.6",
     "react-native-vector-icons": "^10.0.0",
     "react-native-web": "~0.18.11"
   },
diff --git a/client/screens/CartScreen.tsx b/client/screens/CartScreen.tsx
index 8a037462096ea23cd71564652c167c3f67675a3b..e36c0e87a5cee2118bb6674d3296fffd3ce904f8 100644
--- a/client/screens/CartScreen.tsx
+++ b/client/screens/CartScreen.tsx
@@ -1,18 +1,18 @@
 import React, { useEffect, useState } from 'react';
-import { View, Text, FlatList, Button } from 'react-native';
+import { View, Text, Button, FlatList } from 'react-native';
 import { useNavigation } from '@react-navigation/native';
 import Styles from '../styles/Style';
 import Icon from 'react-native-vector-icons/MaterialIcons';
-import * as SQLite from 'expo-sqlite';
 import db from '../database/db';
 import Constants from 'expo-constants';
+import Swipeout from 'react-native-swipeout';
 
 function CartScreen() {
   const navigation = useNavigation();
   const [items, setItems] = useState([]);
   const [totalPrice, setTotalPrice] = useState(0);
 
-  const apiUrl = Constants.expoConfig.extra.apiUrl;
+  const apiUrl = Constants.manifest.extra.apiUrl;
 
   const getItemsWithQuantities = () => {
     return new Promise((resolve, reject) => {
@@ -33,39 +33,70 @@ function CartScreen() {
   }, []);
 
   const calculateTotalPrice = (items) => {
-      const cartItems = items.map((item) => ({
-        item_id: item.id,
-        quantity: item.quantity,
-      }));
-      const requestOptions = {
-        method: 'POST',
-        headers: {
-          'Content-Type': 'application/json',
-        },
-        body: JSON.stringify(cartItems),
-      };
-      fetch(`${apiUrl}/items/calculate-total`, requestOptions)
-        .then((response) => {
-          if (!response.ok) {
-            throw new Error('Response not valid');
-          }
-          return response.json();
-        })
-        .then((total) => {
-          setTotalPrice((total / 100).toFixed(2));
-        })
-        .catch((error) => {
-          console.error('Error calculating total:', error);
-        });
+    const cartItems = items.map((item) => ({
+      item_id: item.id,
+      quantity: item.quantity,
+    }));
+    const requestOptions = {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      body: JSON.stringify(cartItems),
     };
+    fetch(`${apiUrl}/items/calculate-total`, requestOptions)
+      .then((response) => {
+        if (!response.ok) {
+          throw new Error('Response not valid');
+        }
+        return response.json();
+      })
+      .then((total) => {
+        setTotalPrice((total / 100).toFixed(2));
+      })
+      .catch((error) => {
+        console.error('Error calculating total:', error);
+      });
+  };
 
+  const deleteItem = (itemId) => {
+    db.transaction((tx) => {
+      tx.executeSql(
+        'DELETE FROM items WHERE id = ?',
+        [itemId],
+        () => {
+          // Update the list of items after deletion
+          const updatedItems = items.filter((item) => item.id !== itemId);
+          setItems(updatedItems);
+          calculateTotalPrice(updatedItems);
+        },
+        (error) => {
+          console.error('Error deleting item from items:', error);
+        }
+      );
+    });
+  };
 
-  const renderItem = ({ item }) => (
-    
-      {item.name} ({item.quantity})
-      {(item.price / 100).toFixed(2)} €
-    
-  );
+  const renderItem = ({ item }) => {
+    const swipeoutBtns = [
+      {
+        text: 'Delete',
+        backgroundColor: 'red',
+        onPress: () => deleteItem(item.id),
+      },
+    ];
+
+    return (
+      
+        
+          
+            {item.name} ({item.quantity})
+          
+          {(item.price / 100).toFixed(2)} €
+        
+      
+    );
+  };
 
   return (