diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico
index a11777cc471a4344702741ab1c8a588998b1311a..fe081ca3dcc97f7bebff7651ad84acdd46be49e4 100644
Binary files a/frontend/public/favicon.ico and b/frontend/public/favicon.ico differ
diff --git a/frontend/public/index.html b/frontend/public/index.html
index aa069f27cbd9d53394428171c3989fd03db73c76..f073b254f77e0495376bc0b3619a0c51fbe76058 100644
--- a/frontend/public/index.html
+++ b/frontend/public/index.html
@@ -24,7 +24,7 @@
       work correctly both with client-side routing and a non-root public URL.
       Learn how to configure a non-root public URL by running `npm run build`.
     -->
-    <title>React App</title>
+    <title>CamTrap Hub</title>
   </head>
   <body>
     <noscript>You need to enable JavaScript to run this app.</noscript>
diff --git a/frontend/public/logo192.png b/frontend/public/logo192.png
index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..cd3a3a3cc1aaf169a323d15812c96da1df71664b 100644
Binary files a/frontend/public/logo192.png and b/frontend/public/logo192.png differ
diff --git a/frontend/public/logo512.png b/frontend/public/logo512.png
index a4e47a6545bc15971f8f63fba70e4013df88a664..9846af1f93d62f27f3abb54479da44027fc615d1 100644
Binary files a/frontend/public/logo512.png and b/frontend/public/logo512.png differ
diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json
index 080d6c77ac21bb2ef88a6992b2b73ad93daaca92..a1afeb21fbd74e80768bd0d63fedc463c9149032 100644
--- a/frontend/public/manifest.json
+++ b/frontend/public/manifest.json
@@ -1,6 +1,6 @@
 {
-  "short_name": "React App",
-  "name": "Create React App Sample",
+  "short_name": "CamTrap Hub",
+  "name": "CamTrap Hub",
   "icons": [
     {
       "src": "favicon.ico",
diff --git a/frontend/src/App.js b/frontend/src/App.js
index bb6e07b48198d46ac1977a4ab087f83efd088ba5..2be14d0c64e24a3715076e500cab42cb700d54d5 100644
--- a/frontend/src/App.js
+++ b/frontend/src/App.js
@@ -6,16 +6,16 @@ import PrivateRoute from './components/PrivateRoute';
 import Profile from './components/Profile';
 import Register from './components/Register';
 import DataManagement from './components/DataManagement';
-import MegaDetector from './components/MegaDetector';
-import Zamba from './components/Zamba';
-import ZambaResult from './components/ZambaResult';
-import Il2bb from './components/Il2bb';
-import WildcoFaceBlur from './components/WildcoFaceBlur';
+import MegaDetector from './components/applications/MegaDetector';
+import Zamba from './components/applications/Zamba';
+import ZambaResult from './components/applications/ZambaResult';
+import Il2bb from './components/applications/Il2bb';
+import WildcoFaceBlur from './components/applications/WildcoFaceBlur';
 import Preview from './components/Preview';
-import CameraTrapTools from './components/CameraTrapTools';
-import CameraTrapWorkflow from './components/CameraTrapWorkflow';
+import CameraTrapTools from './components/applications/CameraTrapTools';
+import CameraTrapWorkflow from './components/applications/CameraTrapWorkflow';
 import ImageBrowserPopup from './components/ImageBrowserPopup';
-import { MegaDetectorReport, MegaDetectorDetectionsAnimalReport } from './components/MegaDetectorReport';
+import { MegaDetectorReport, MegaDetectorDetectionsAnimalReport } from './components/applications/MegaDetectorReport';
 import { BrowserRouter as Router,Routes, Route } from 'react-router-dom';
 import { ThemeContext } from './ThemeContext';
 import { AuthProvider } from './components/AuthContext';
diff --git a/frontend/src/components/CameraTrapTools.jsx b/frontend/src/components/applications/CameraTrapTools.jsx
similarity index 99%
rename from frontend/src/components/CameraTrapTools.jsx
rename to frontend/src/components/applications/CameraTrapTools.jsx
index e612be0bcc64b3560134170921889b67cbe2a12c..79ed5a6deedf1380d04fc19f1893f5835c1b24f1 100644
--- a/frontend/src/components/CameraTrapTools.jsx
+++ b/frontend/src/components/applications/CameraTrapTools.jsx
@@ -1,7 +1,7 @@
 import React, { useState, useContext } from 'react';
-import NavBar from './NavBar';
-import { ThemeContext } from '../ThemeContext';
-import ImageBrowserPopup from './ImageBrowserPopup';
+import NavBar from '../NavBar';
+import { ThemeContext } from '../../ThemeContext';
+import ImageBrowserPopup from '../ImageBrowserPopup';
 
 const CameraTrapTools = () => {
     const [activeTab, setActiveTab] = useState('imageProcessing');
diff --git a/frontend/src/components/CameraTrapWorkflow.jsx b/frontend/src/components/applications/CameraTrapWorkflow.jsx
similarity index 99%
rename from frontend/src/components/CameraTrapWorkflow.jsx
rename to frontend/src/components/applications/CameraTrapWorkflow.jsx
index a1dc9dcd1ca0c5f284340d6849b1b38652f3be01..42dfd0b0d350dc5d34df9f19f398d2fe5614ff73 100644
--- a/frontend/src/components/CameraTrapWorkflow.jsx
+++ b/frontend/src/components/applications/CameraTrapWorkflow.jsx
@@ -1,7 +1,7 @@
 import React, { useState, useContext } from 'react';
-import NavBar from './NavBar';
-import { ThemeContext } from '../ThemeContext';
-import ImageBrowserPopup from './ImageBrowserPopup';
+import NavBar from '../NavBar';
+import { ThemeContext } from '../../ThemeContext';
+import ImageBrowserPopup from '../ImageBrowserPopup';
 
 const CameraTrapWorkflow = () => {
     const { theme, setTheme } = useContext(ThemeContext);
diff --git a/frontend/src/components/Il2bb.jsx b/frontend/src/components/applications/Il2bb.jsx
similarity index 99%
rename from frontend/src/components/Il2bb.jsx
rename to frontend/src/components/applications/Il2bb.jsx
index c58d9bdb1ccb0cb54d96ef76ef47791f849485b6..f38d0521c68cf571f01b79ea2337a4eff9be75c0 100644
--- a/frontend/src/components/Il2bb.jsx
+++ b/frontend/src/components/applications/Il2bb.jsx
@@ -1,6 +1,6 @@
 import React, { useState } from 'react';
-import NavBar from './NavBar';
-import ImageBrowserPopup from './ImageBrowserPopup';
+import NavBar from '../NavBar';
+import ImageBrowserPopup from '../ImageBrowserPopup';
 
 const Il2bb = () => {
     const [theme, setTheme] = useState('nature');
diff --git a/frontend/src/components/MegaDetector.jsx b/frontend/src/components/applications/MegaDetector.jsx
similarity index 98%
rename from frontend/src/components/MegaDetector.jsx
rename to frontend/src/components/applications/MegaDetector.jsx
index cf181567492bf92a4ea325a355bc8bd60e7ea7f1..6a4ee7edba028299f8c736f11213a6cd8d9a5c31 100644
--- a/frontend/src/components/MegaDetector.jsx
+++ b/frontend/src/components/applications/MegaDetector.jsx
@@ -1,7 +1,7 @@
 import React, { useState, useContext } from 'react';
-import NavBar from './NavBar';
-import { ThemeContext } from '../ThemeContext';
-import ImageBrowserPopup from './ImageBrowserPopup';
+import NavBar from '../NavBar';
+import { ThemeContext } from '../../ThemeContext';
+import ImageBrowserPopup from '../ImageBrowserPopup';
 
 const MegaDetector = () => {
     const { theme, setTheme } = useContext(ThemeContext);
diff --git a/frontend/src/components/MegaDetectorReport.css b/frontend/src/components/applications/MegaDetectorReport.css
similarity index 100%
rename from frontend/src/components/MegaDetectorReport.css
rename to frontend/src/components/applications/MegaDetectorReport.css
diff --git a/frontend/src/components/MegaDetectorReport.jsx b/frontend/src/components/applications/MegaDetectorReport.jsx
similarity index 96%
rename from frontend/src/components/MegaDetectorReport.jsx
rename to frontend/src/components/applications/MegaDetectorReport.jsx
index 06ecde5805e67dd55598c903f0bc9997569c380a..1941f493c1d7f67b8393a8b2107a4b00c737b061 100644
--- a/frontend/src/components/MegaDetectorReport.jsx
+++ b/frontend/src/components/applications/MegaDetectorReport.jsx
@@ -1,7 +1,7 @@
 import React, { useState, useEffect, useContext } from 'react';
 import './MegaDetectorReport.css';
-import { ThemeContext } from '../ThemeContext';
-import NavBar from './NavBar';
+import { ThemeContext } from '../../ThemeContext';
+import NavBar from '../NavBar';
 
 const MegaDetectorReport = () => {
     const [htmlContent, setHtmlContent] = useState('');
diff --git a/frontend/src/components/WildcoFaceBlur.jsx b/frontend/src/components/applications/WildcoFaceBlur.jsx
similarity index 99%
rename from frontend/src/components/WildcoFaceBlur.jsx
rename to frontend/src/components/applications/WildcoFaceBlur.jsx
index 616db2787d089659e324df6651f81f3b6f007a33..2b569e1eb34ba856eef402df427d07655e952336 100644
--- a/frontend/src/components/WildcoFaceBlur.jsx
+++ b/frontend/src/components/applications/WildcoFaceBlur.jsx
@@ -1,6 +1,6 @@
 import React, { useState } from 'react';
-import NavBar from './NavBar';
-import ImageBrowserPopup from './ImageBrowserPopup';
+import NavBar from '../NavBar';
+import ImageBrowserPopup from '../ImageBrowserPopup';
 
 const WildcoFaceBlur = () => {
     const [selectedItems, setSelectedItems] = useState([]);
diff --git a/frontend/src/components/Zamba.jsx b/frontend/src/components/applications/Zamba.jsx
similarity index 93%
rename from frontend/src/components/Zamba.jsx
rename to frontend/src/components/applications/Zamba.jsx
index 6f7ccca918a7889e030404ce8d8b57d0ddec7a49..c32034a78f37d6c477242a6ffdf8d2a99bdac712 100644
--- a/frontend/src/components/Zamba.jsx
+++ b/frontend/src/components/applications/Zamba.jsx
@@ -1,8 +1,8 @@
 import React, { useState, useContext } from 'react';
-import NavBar from './NavBar';
+import NavBar from '../NavBar';
 import ZambaProcess from './ZambaProcess';
 import ZambaTrain from './ZambaTrain';
-import { ThemeContext } from '../ThemeContext';
+import { ThemeContext } from '../../ThemeContext';
 
 const Zamba = () => {
     const [activeTab, setActiveTab] = useState('classification');
diff --git a/frontend/src/components/ZambaProcess.jsx b/frontend/src/components/applications/ZambaProcess.jsx
similarity index 99%
rename from frontend/src/components/ZambaProcess.jsx
rename to frontend/src/components/applications/ZambaProcess.jsx
index 0662ae19cc66c429dd1a1d830dbc4356e4c687e6..781d72e968183f2655e278b1dbb9d5bf1197a0f3 100644
--- a/frontend/src/components/ZambaProcess.jsx
+++ b/frontend/src/components/applications/ZambaProcess.jsx
@@ -1,5 +1,5 @@
 import React, { useState, useEffect } from 'react'
-import ImageBrowserPopup from './ImageBrowserPopup';
+import ImageBrowserPopup from '../ImageBrowserPopup';
 
 function ZambaProcess() {
     const [taskId, setTaskId] = useState(null);
diff --git a/frontend/src/components/ZambaResult.jsx b/frontend/src/components/applications/ZambaResult.jsx
similarity index 97%
rename from frontend/src/components/ZambaResult.jsx
rename to frontend/src/components/applications/ZambaResult.jsx
index 56e79e122a67212b4efc4be48453cb8bd5463dd8..b633b14d112620ea2af89ed537ab7f3bbb235e56 100644
--- a/frontend/src/components/ZambaResult.jsx
+++ b/frontend/src/components/applications/ZambaResult.jsx
@@ -1,6 +1,6 @@
 import React, { useState, useEffect, useContext } from 'react'
-import NavBar from './NavBar';
-import { ThemeContext } from '../ThemeContext';
+import NavBar from '../NavBar';
+import { ThemeContext } from '../../ThemeContext';
 
 function ZambaResult() {
     const { theme, setTheme } = useContext(ThemeContext);
diff --git a/frontend/src/components/ZambaTrain.jsx b/frontend/src/components/applications/ZambaTrain.jsx
similarity index 99%
rename from frontend/src/components/ZambaTrain.jsx
rename to frontend/src/components/applications/ZambaTrain.jsx
index db4653bc26220c72e7a8772efbb1bba853d65b62..4c770500f2f0380ec0a37ba7128707a201fb3ae7 100644
--- a/frontend/src/components/ZambaTrain.jsx
+++ b/frontend/src/components/applications/ZambaTrain.jsx
@@ -1,5 +1,5 @@
 import React, { useState, useEffect } from 'react'
-import ImageBrowserPopup from './ImageBrowserPopup';
+import ImageBrowserPopup from '../ImageBrowserPopup';
 
 function ZambaTrain() {
     const [labelCsv, setLabelCsv] = useState(null);