diff --git a/.gitignore b/.gitignore
index 486810e..5acb236 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,5 @@
 *.iml
 
 sentry.config.json
+sentry-client.config.json
+sentry-server.config.json
diff --git a/client/package.json b/client/package.json
index 3f70bca..c8e9e55 100644
--- a/client/package.json
+++ b/client/package.json
@@ -17,6 +17,8 @@
     "@testing-library/user-event": "^14.4.3",
     "dayjs": "^1.11.5",
     "@types/jest": "^28.1.8",
+    "@sentry/react": "^7.11.1",
+    "@sentry/tracing": "^7.11.1",
     "emoji-picker-react": "^3.6.1",
     "framer-motion": "^7.2.1",
     "react": "^18.2.0",
diff --git a/client/src/index.js b/client/src/index.js
index 27b5591..199cb6f 100644
--- a/client/src/index.js
+++ b/client/src/index.js
@@ -1,18 +1,27 @@
 "use strict";
+import "./index.scss";
 import React from "react";
 import ReactDOM from "react-dom";
-import { BrowserRouter as Router } from "react-router-dom";
 import App from "./App.js";
-import "./index.scss";
-
 import { store } from "../redux/store";
 import { Provider } from "react-redux";
-//import { CssBaseline } from '@mui/material'
+import { BrowserRouter as Router } from "react-router-dom";
 
+import config from "../sentry-client.config.json"
+import * as Sentry from "@sentry/react";
+import { BrowserTracing } from "@sentry/tracing";
+
+//import { CssBaseline } from '@mui/material'
 //import * as serviceWorker from './serviceWorker'
+
 const rootEl = document.getElementById("root");
 var exports = {};
 
+Sentry.init({
+  ...config,
+  integrations: [new BrowserTracing()],
+});
+
 const render = (Component) =>
   ReactDOM.render(
     <Provider store={store}>
diff --git a/client/src/pages/loginDialog.jsx b/client/src/pages/loginDialog.jsx
index e4f6c45..eaa1362 100644
--- a/client/src/pages/loginDialog.jsx
+++ b/client/src/pages/loginDialog.jsx
@@ -142,7 +142,6 @@
                     >
                         Compte local
                     </Button>
-
                     <TextField
                         variant="outlined"
                         margin="normal"
diff --git a/package-lock.json b/package-lock.json
index e104254..96343f7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -50,6 +50,8 @@
         "@mui/material": "^5.10.2",
         "@mui/styles": "^5.10.2",
         "@reduxjs/toolkit": "^1.8.5",
+        "@sentry/react": "^7.11.1",
+        "@sentry/tracing": "^7.11.1",
         "@testing-library/jest-dom": "^5.16.5",
         "@testing-library/react": "^13.3.0",
         "@testing-library/user-event": "^14.4.3",
@@ -2665,6 +2667,21 @@
         }
       }
     },
+    "node_modules/@sentry/browser": {
+      "version": "7.11.1",
+      "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.11.1.tgz",
+      "integrity": "sha512-k2XHuzPfnm8VJPK5eWd1+Y5VCgN42sLveb8Qxc3prb5PSL416NWMLZaoB7RMIhy430fKrSFiosnm6QDk2M6pbA==",
+      "dev": true,
+      "dependencies": {
+        "@sentry/core": "7.11.1",
+        "@sentry/types": "7.11.1",
+        "@sentry/utils": "7.11.1",
+        "tslib": "^1.9.3"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
     "node_modules/@sentry/core": {
       "version": "7.13.0",
       "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.13.0.tgz",
@@ -2710,6 +2727,25 @@
         "node": ">=8"
       }
     },
+    "node_modules/@sentry/react": {
+      "version": "7.11.1",
+      "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.11.1.tgz",
+      "integrity": "sha512-kp/vBgwNrlFEtW3e6DY9T4s3di9peL66n5UIY5n6dYkiN7A7D6/Kz1WJ/ZCL82DvaCMEY577wNyr2C+442l7fw==",
+      "dev": true,
+      "dependencies": {
+        "@sentry/browser": "7.11.1",
+        "@sentry/types": "7.11.1",
+        "@sentry/utils": "7.11.1",
+        "hoist-non-react-statics": "^3.3.2",
+        "tslib": "^1.9.3"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "peerDependencies": {
+        "react": "15.x || 16.x || 17.x || 18.x"
+      }
+    },
     "node_modules/@sentry/tracing": {
       "version": "7.13.0",
       "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.13.0.tgz",
@@ -10354,6 +10390,18 @@
         "reselect": "^4.1.5"
       }
     },
+    "@sentry/browser": {
+      "version": "7.11.1",
+      "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.11.1.tgz",
+      "integrity": "sha512-k2XHuzPfnm8VJPK5eWd1+Y5VCgN42sLveb8Qxc3prb5PSL416NWMLZaoB7RMIhy430fKrSFiosnm6QDk2M6pbA==",
+      "dev": true,
+      "requires": {
+        "@sentry/core": "7.11.1",
+        "@sentry/types": "7.11.1",
+        "@sentry/utils": "7.11.1",
+        "tslib": "^1.9.3"
+      }
+    },
     "@sentry/core": {
       "version": "7.13.0",
       "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.13.0.tgz",
@@ -10390,6 +10438,19 @@
         "tslib": "^1.9.3"
       }
     },
+    "@sentry/react": {
+      "version": "7.11.1",
+      "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.11.1.tgz",
+      "integrity": "sha512-kp/vBgwNrlFEtW3e6DY9T4s3di9peL66n5UIY5n6dYkiN7A7D6/Kz1WJ/ZCL82DvaCMEY577wNyr2C+442l7fw==",
+      "dev": true,
+      "requires": {
+        "@sentry/browser": "7.11.1",
+        "@sentry/types": "7.11.1",
+        "@sentry/utils": "7.11.1",
+        "hoist-non-react-statics": "^3.3.2",
+        "tslib": "^1.9.3"
+      }
+    },
     "@sentry/tracing": {
       "version": "7.13.0",
       "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.13.0.tgz",
@@ -12378,6 +12439,8 @@
         "@mui/styles": "^5.10.2",
         "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
         "@reduxjs/toolkit": "^1.8.5",
+        "@sentry/react": "^7.11.1",
+        "@sentry/tracing": "^7.11.1",
         "@testing-library/jest-dom": "^5.16.5",
         "@testing-library/react": "^13.3.0",
         "@testing-library/user-event": "^14.4.3",
diff --git a/sentry.js b/sentry.js
index 2e67dd6..b168a9a 100644
--- a/sentry.js
+++ b/sentry.js
@@ -1,6 +1,6 @@
 import * as Sentry from "@sentry/node";
 import * as Tracing from "@sentry/tracing";
-import config from "./sentry.config.json" assert { type: "json" };
+import config from "./sentry-server.config.json" assert { type: "json" };
 
 export function sentrySetUp(app) {
   Sentry.init({
