diff --git a/README.md b/README.md
index ecc671c..10be58d 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,26 @@
# fancy-gatus
Fancy-Gatus is an alternative frontend for [Gatus](https://github.com/TwiN/gatus). The goal is to provide a simplified and modern status page based on data from a Gatus instance, which only displays the most important information in a way that is understandable for end users.
+
+## Project setup
+```
+yarn install
+```
+
+### Compiles and hot-reloads for development
+```
+yarn serve
+```
+
+### Compiles and minifies for production
+```
+yarn build
+```
+
+### Lints and fixes files
+```
+yarn lint
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).
diff --git a/package.json b/package.json
index 15ecd5d..9f852b7 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,8 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
+ "axios": "^0.24.0",
+ "bootstrap-icons-vue": "^0.8.0",
"core-js": "^3.6.5",
"vue": "^3.0.0"
},
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..0cff86f
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/index.html b/public/index.html
index 3e5a139..3deb2ed 100644
--- a/public/index.html
+++ b/public/index.html
@@ -5,11 +5,11 @@
-
<%= htmlWebpackPlugin.options.title %>
+ Fancy Gatus
- We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.
+ We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
diff --git a/src/App.vue b/src/App.vue
index fd7fd3f..79248f1 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,21 +1,157 @@
-
+
+
+
+.shadow-box {
+ box-shadow: 0 15px 70px rgb(0 0 0 / 10%);
+ padding: 10px;
+ border-radius: 10px;
+}
+.green {
+ color: var(--green);
+}
+.orange {
+ color: var(--orange);
+}
+
\ No newline at end of file
diff --git a/src/assets/logo.png b/src/assets/logo.png
new file mode 100644
index 0000000..e6e1828
Binary files /dev/null and b/src/assets/logo.png differ
diff --git a/src/components/Endpoint.vue b/src/components/Endpoint.vue
new file mode 100644
index 0000000..2fd1921
--- /dev/null
+++ b/src/components/Endpoint.vue
@@ -0,0 +1,61 @@
+
+
+
+
+ {{ endpoint.name }}
+ | {{ hostname }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/EndpointGroup.vue b/src/components/EndpointGroup.vue
new file mode 100644
index 0000000..c06b19a
--- /dev/null
+++ b/src/components/EndpointGroup.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/EndpointHistory.vue b/src/components/EndpointHistory.vue
new file mode 100644
index 0000000..8b2e6c1
--- /dev/null
+++ b/src/components/EndpointHistory.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Footer.vue b/src/components/Footer.vue
new file mode 100644
index 0000000..2221ba6
--- /dev/null
+++ b/src/components/Footer.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Header.vue b/src/components/Header.vue
new file mode 100644
index 0000000..fb2f6e5
--- /dev/null
+++ b/src/components/Header.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Loader.vue b/src/components/Loader.vue
new file mode 100644
index 0000000..0e34d1f
--- /dev/null
+++ b/src/components/Loader.vue
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/OverallStatus.vue b/src/components/OverallStatus.vue
new file mode 100644
index 0000000..5aad5c7
--- /dev/null
+++ b/src/components/OverallStatus.vue
@@ -0,0 +1,60 @@
+
+
+
+
+ All services healthy.
+
+
+
+ {{ failedEndpointCountText }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index e1fa90e..e923897 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1941,6 +1941,13 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
+axios@^0.24.0:
+ version "0.24.0"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6"
+ integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==
+ dependencies:
+ follow-redirects "^1.14.4"
+
babel-eslint@^10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
@@ -2114,6 +2121,11 @@ boolbase@^1.0.0, boolbase@~1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+bootstrap-icons-vue@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/bootstrap-icons-vue/-/bootstrap-icons-vue-0.8.0.tgz#922dfc368e62c85fe9cadad4f3568ce4c2b7bdba"
+ integrity sha512-bFBpTGNN5RtUpSH7zTz3WkZs2UZA7WXSmkwAKsrA7qddjbIQrvoGsu/yNJiAl14eJgZ+rTqmjqSB+0gRlNZEfA==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -4026,6 +4038,11 @@ follow-redirects@^1.0.0:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd"
integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==
+follow-redirects@^1.14.4:
+ version "1.14.7"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
+ integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
+
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"