diff --git a/fittrackee_client/src/components/Error.vue b/fittrackee_client/src/components/Error.vue
new file mode 100644
index 00000000..6a2d715e
--- /dev/null
+++ b/fittrackee_client/src/components/Error.vue
@@ -0,0 +1,63 @@
+
+
+
+
{{ title }}
+
{{ message }}
+
+
+
+
+
+
+
+
diff --git a/fittrackee_client/src/locales/en/common.json b/fittrackee_client/src/locales/en/common.json
new file mode 100644
index 00000000..f5c4b057
--- /dev/null
+++ b/fittrackee_client/src/locales/en/common.json
@@ -0,0 +1,3 @@
+{
+ "HOME": "Home"
+}
\ No newline at end of file
diff --git a/fittrackee_client/src/locales/en/en.ts b/fittrackee_client/src/locales/en/en.ts
index 1428c936..c24b9657 100644
--- a/fittrackee_client/src/locales/en/en.ts
+++ b/fittrackee_client/src/locales/en/en.ts
@@ -1,12 +1,16 @@
import AdministrationTranslations from './administration.json'
+import CommonTranslations from './common.json'
import DashboardTranslations from './dashboard.json'
+import ErrorTranslations from './error.json'
import StatisticsTranslations from './statistics.json'
import UserTranslations from './user.json'
import WorkoutsTranslations from './workouts.json'
export default {
administration: AdministrationTranslations,
+ common: CommonTranslations,
dashboard: DashboardTranslations,
+ error: ErrorTranslations,
statistics: StatisticsTranslations,
user: UserTranslations,
workouts: WorkoutsTranslations,
diff --git a/fittrackee_client/src/locales/en/error.json b/fittrackee_client/src/locales/en/error.json
new file mode 100644
index 00000000..7bc278eb
--- /dev/null
+++ b/fittrackee_client/src/locales/en/error.json
@@ -0,0 +1,5 @@
+{
+ "not-found": {
+ "PAGE": "Page not found"
+ }
+}
\ No newline at end of file
diff --git a/fittrackee_client/src/locales/fr/common.json b/fittrackee_client/src/locales/fr/common.json
new file mode 100644
index 00000000..8829e4f6
--- /dev/null
+++ b/fittrackee_client/src/locales/fr/common.json
@@ -0,0 +1,3 @@
+{
+ "HOME": "Accueil"
+}
\ No newline at end of file
diff --git a/fittrackee_client/src/locales/fr/error.json b/fittrackee_client/src/locales/fr/error.json
new file mode 100644
index 00000000..c9e1e60a
--- /dev/null
+++ b/fittrackee_client/src/locales/fr/error.json
@@ -0,0 +1,5 @@
+{
+ "not-found": {
+ "PAGE": "Page introuvable"
+ }
+}
\ No newline at end of file
diff --git a/fittrackee_client/src/locales/fr/fr.ts b/fittrackee_client/src/locales/fr/fr.ts
index 1428c936..c24b9657 100644
--- a/fittrackee_client/src/locales/fr/fr.ts
+++ b/fittrackee_client/src/locales/fr/fr.ts
@@ -1,12 +1,16 @@
import AdministrationTranslations from './administration.json'
+import CommonTranslations from './common.json'
import DashboardTranslations from './dashboard.json'
+import ErrorTranslations from './error.json'
import StatisticsTranslations from './statistics.json'
import UserTranslations from './user.json'
import WorkoutsTranslations from './workouts.json'
export default {
administration: AdministrationTranslations,
+ common: CommonTranslations,
dashboard: DashboardTranslations,
+ error: ErrorTranslations,
statistics: StatisticsTranslations,
user: UserTranslations,
workouts: WorkoutsTranslations,
diff --git a/fittrackee_client/src/router/index.ts b/fittrackee_client/src/router/index.ts
index 5e982931..9a72a96c 100644
--- a/fittrackee_client/src/router/index.ts
+++ b/fittrackee_client/src/router/index.ts
@@ -1,5 +1,6 @@
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import Dashboard from '@/views/DashBoard.vue'
+import NotFound from '@/views/NotFound.vue'
const routes: Array = [
{
@@ -7,6 +8,7 @@ const routes: Array = [
name: 'Dashboard',
component: Dashboard,
},
+ { path: '/:pathMatch(.*)*', name: 'not-found', component: NotFound },
]
const router = createRouter({
diff --git a/fittrackee_client/src/scss/base.scss b/fittrackee_client/src/scss/base.scss
index 8a6a99fd..a2e13fa3 100644
--- a/fittrackee_client/src/scss/base.scss
+++ b/fittrackee_client/src/scss/base.scss
@@ -31,4 +31,26 @@ a {
padding-right: 15px;
max-width: $container-width;
width: 100%;
+}
+
+button {
+ border: solid 1px var(--app-color);
+ border-radius: 0;
+ box-shadow: 2px 2px 2px var(--app-shadow-color);
+ color: var(--app-color);
+ padding: 6px 14px;
+
+ &:hover {
+ background: var(--app-color);
+ color: #FFFFFF;
+ }
+
+ &:active {
+ box-shadow: 2px 0 2px var(--app-shadow-color);
+ transform: translateY(2px);
+ }
+}
+
+.upper {
+ text-transform: uppercase;
}
\ No newline at end of file
diff --git a/fittrackee_client/src/scss/colors.scss b/fittrackee_client/src/scss/colors.scss
index af9d2ba7..7dba5d0d 100644
--- a/fittrackee_client/src/scss/colors.scss
+++ b/fittrackee_client/src/scss/colors.scss
@@ -8,4 +8,6 @@
--footer-background-color: #FFFFFF;
--footer-color: #8b8c8c;
+
+ --app-shadow-color: lightgrey;
}
\ No newline at end of file
diff --git a/fittrackee_client/src/views/NotFound.vue b/fittrackee_client/src/views/NotFound.vue
new file mode 100644
index 00000000..31dfa76a
--- /dev/null
+++ b/fittrackee_client/src/views/NotFound.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+