diff --git a/Romar2020Portfolio/.gitignore b/Romar2020Portfolio/.gitignore
new file mode 100644
index 00000000..38adffa6
--- /dev/null
+++ b/Romar2020Portfolio/.gitignore
@@ -0,0 +1,28 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/Romar2020Portfolio/README.md b/Romar2020Portfolio/README.md
new file mode 100644
index 00000000..9a087d73
--- /dev/null
+++ b/Romar2020Portfolio/README.md
@@ -0,0 +1,29 @@
+# client
+
+This template should help get you started developing with Vue 3 in Vite.
+
+## Recommended IDE Setup
+
+[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.vscode-typescript-vue-plugin).
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vitejs.dev/config/).
+
+## Project Setup
+
+```sh
+npm install
+```
+
+### Compile and Hot-Reload for Development
+
+```sh
+npm run dev
+```
+
+### Compile and Minify for Production
+
+```sh
+npm run build
+```
diff --git a/Romar2020Portfolio/index.html b/Romar2020Portfolio/index.html
new file mode 100644
index 00000000..4e364740
--- /dev/null
+++ b/Romar2020Portfolio/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Romar Desabille
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/package-lock.json b/Romar2020Portfolio/package-lock.json
new file mode 100644
index 00000000..a96435ee
--- /dev/null
+++ b/Romar2020Portfolio/package-lock.json
@@ -0,0 +1,1244 @@
+{
+ "name": "client",
+ "version": "0.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "client",
+ "version": "0.0.0",
+ "dependencies": {
+ "pinia": "^2.0.14",
+ "vue": "^3.2.33",
+ "vue-router": "^4.0.14"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^2.3.1",
+ "vite": "^2.9.5"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz",
+ "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz",
+ "integrity": "sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^2.5.10",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.36.tgz",
+ "integrity": "sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.36",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz",
+ "integrity": "sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==",
+ "dependencies": {
+ "@vue/compiler-core": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz",
+ "integrity": "sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.36",
+ "@vue/compiler-dom": "3.2.36",
+ "@vue/compiler-ssr": "3.2.36",
+ "@vue/reactivity-transform": "3.2.36",
+ "@vue/shared": "3.2.36",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7",
+ "postcss": "^8.1.10",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz",
+ "integrity": "sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz",
+ "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ=="
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.36.tgz",
+ "integrity": "sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==",
+ "dependencies": {
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "node_modules/@vue/reactivity-transform": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz",
+ "integrity": "sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==",
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.36",
+ "@vue/shared": "3.2.36",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.36.tgz",
+ "integrity": "sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==",
+ "dependencies": {
+ "@vue/reactivity": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz",
+ "integrity": "sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==",
+ "dependencies": {
+ "@vue/runtime-core": "3.2.36",
+ "@vue/shared": "3.2.36",
+ "csstype": "^2.6.8"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.36.tgz",
+ "integrity": "sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.2.36",
+ "@vue/shared": "3.2.36"
+ },
+ "peerDependencies": {
+ "vue": "3.2.36"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.36.tgz",
+ "integrity": "sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ=="
+ },
+ "node_modules/csstype": {
+ "version": "2.6.20",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
+ "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
+ },
+ "node_modules/esbuild": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.39.tgz",
+ "integrity": "sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "esbuild-android-64": "0.14.39",
+ "esbuild-android-arm64": "0.14.39",
+ "esbuild-darwin-64": "0.14.39",
+ "esbuild-darwin-arm64": "0.14.39",
+ "esbuild-freebsd-64": "0.14.39",
+ "esbuild-freebsd-arm64": "0.14.39",
+ "esbuild-linux-32": "0.14.39",
+ "esbuild-linux-64": "0.14.39",
+ "esbuild-linux-arm": "0.14.39",
+ "esbuild-linux-arm64": "0.14.39",
+ "esbuild-linux-mips64le": "0.14.39",
+ "esbuild-linux-ppc64le": "0.14.39",
+ "esbuild-linux-riscv64": "0.14.39",
+ "esbuild-linux-s390x": "0.14.39",
+ "esbuild-netbsd-64": "0.14.39",
+ "esbuild-openbsd-64": "0.14.39",
+ "esbuild-sunos-64": "0.14.39",
+ "esbuild-windows-32": "0.14.39",
+ "esbuild-windows-64": "0.14.39",
+ "esbuild-windows-arm64": "0.14.39"
+ }
+ },
+ "node_modules/esbuild-android-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz",
+ "integrity": "sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-android-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz",
+ "integrity": "sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz",
+ "integrity": "sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz",
+ "integrity": "sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz",
+ "integrity": "sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz",
+ "integrity": "sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-32": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz",
+ "integrity": "sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz",
+ "integrity": "sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz",
+ "integrity": "sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz",
+ "integrity": "sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-mips64le": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz",
+ "integrity": "sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-ppc64le": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz",
+ "integrity": "sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-riscv64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz",
+ "integrity": "sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-s390x": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz",
+ "integrity": "sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz",
+ "integrity": "sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-openbsd-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz",
+ "integrity": "sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-sunos-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz",
+ "integrity": "sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-32": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz",
+ "integrity": "sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz",
+ "integrity": "sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz",
+ "integrity": "sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "node_modules/pinia": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.14.tgz",
+ "integrity": "sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.1.4",
+ "vue-demi": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.4.0",
+ "typescript": ">=4.4.4",
+ "vue": "^2.6.14 || ^3.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pinia/node_modules/vue-demi": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz",
+ "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
+ "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.8.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "2.74.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.74.1.tgz",
+ "integrity": "sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==",
+ "dev": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/vite": {
+ "version": "2.9.9",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.9.tgz",
+ "integrity": "sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.14.27",
+ "postcss": "^8.4.13",
+ "resolve": "^1.22.0",
+ "rollup": "^2.59.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": ">=12.2.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "less": "*",
+ "sass": "*",
+ "stylus": "*"
+ },
+ "peerDependenciesMeta": {
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.36.tgz",
+ "integrity": "sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.36",
+ "@vue/compiler-sfc": "3.2.36",
+ "@vue/runtime-dom": "3.2.36",
+ "@vue/server-renderer": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "node_modules/vue-router": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.15.tgz",
+ "integrity": "sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+ }
+ },
+ "dependencies": {
+ "@babel/parser": {
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz",
+ "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg=="
+ },
+ "@vitejs/plugin-vue": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz",
+ "integrity": "sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==",
+ "dev": true,
+ "requires": {}
+ },
+ "@vue/compiler-core": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.36.tgz",
+ "integrity": "sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.36",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "@vue/compiler-dom": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz",
+ "integrity": "sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==",
+ "requires": {
+ "@vue/compiler-core": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz",
+ "integrity": "sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.36",
+ "@vue/compiler-dom": "3.2.36",
+ "@vue/compiler-ssr": "3.2.36",
+ "@vue/reactivity-transform": "3.2.36",
+ "@vue/shared": "3.2.36",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7",
+ "postcss": "^8.1.10",
+ "source-map": "^0.6.1"
+ }
+ },
+ "@vue/compiler-ssr": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz",
+ "integrity": "sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "@vue/devtools-api": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz",
+ "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ=="
+ },
+ "@vue/reactivity": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.36.tgz",
+ "integrity": "sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==",
+ "requires": {
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "@vue/reactivity-transform": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz",
+ "integrity": "sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.36",
+ "@vue/shared": "3.2.36",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7"
+ }
+ },
+ "@vue/runtime-core": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.36.tgz",
+ "integrity": "sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==",
+ "requires": {
+ "@vue/reactivity": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "@vue/runtime-dom": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz",
+ "integrity": "sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg==",
+ "requires": {
+ "@vue/runtime-core": "3.2.36",
+ "@vue/shared": "3.2.36",
+ "csstype": "^2.6.8"
+ }
+ },
+ "@vue/server-renderer": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.36.tgz",
+ "integrity": "sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg==",
+ "requires": {
+ "@vue/compiler-ssr": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.36.tgz",
+ "integrity": "sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ=="
+ },
+ "csstype": {
+ "version": "2.6.20",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
+ "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
+ },
+ "esbuild": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.39.tgz",
+ "integrity": "sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==",
+ "dev": true,
+ "requires": {
+ "esbuild-android-64": "0.14.39",
+ "esbuild-android-arm64": "0.14.39",
+ "esbuild-darwin-64": "0.14.39",
+ "esbuild-darwin-arm64": "0.14.39",
+ "esbuild-freebsd-64": "0.14.39",
+ "esbuild-freebsd-arm64": "0.14.39",
+ "esbuild-linux-32": "0.14.39",
+ "esbuild-linux-64": "0.14.39",
+ "esbuild-linux-arm": "0.14.39",
+ "esbuild-linux-arm64": "0.14.39",
+ "esbuild-linux-mips64le": "0.14.39",
+ "esbuild-linux-ppc64le": "0.14.39",
+ "esbuild-linux-riscv64": "0.14.39",
+ "esbuild-linux-s390x": "0.14.39",
+ "esbuild-netbsd-64": "0.14.39",
+ "esbuild-openbsd-64": "0.14.39",
+ "esbuild-sunos-64": "0.14.39",
+ "esbuild-windows-32": "0.14.39",
+ "esbuild-windows-64": "0.14.39",
+ "esbuild-windows-arm64": "0.14.39"
+ }
+ },
+ "esbuild-android-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz",
+ "integrity": "sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-android-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz",
+ "integrity": "sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz",
+ "integrity": "sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz",
+ "integrity": "sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz",
+ "integrity": "sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz",
+ "integrity": "sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz",
+ "integrity": "sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz",
+ "integrity": "sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz",
+ "integrity": "sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz",
+ "integrity": "sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz",
+ "integrity": "sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz",
+ "integrity": "sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-riscv64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz",
+ "integrity": "sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-s390x": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz",
+ "integrity": "sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz",
+ "integrity": "sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz",
+ "integrity": "sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz",
+ "integrity": "sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz",
+ "integrity": "sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz",
+ "integrity": "sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.14.39",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz",
+ "integrity": "sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==",
+ "dev": true,
+ "optional": true
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "is-core-module": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "pinia": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.14.tgz",
+ "integrity": "sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==",
+ "requires": {
+ "@vue/devtools-api": "^6.1.4",
+ "vue-demi": "*"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz",
+ "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==",
+ "requires": {}
+ }
+ }
+ },
+ "postcss": {
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "resolve": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
+ "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.8.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "rollup": {
+ "version": "2.74.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.74.1.tgz",
+ "integrity": "sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==",
+ "dev": true,
+ "requires": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ },
+ "sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "vite": {
+ "version": "2.9.9",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.9.tgz",
+ "integrity": "sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==",
+ "dev": true,
+ "requires": {
+ "esbuild": "^0.14.27",
+ "fsevents": "~2.3.2",
+ "postcss": "^8.4.13",
+ "resolve": "^1.22.0",
+ "rollup": "^2.59.0"
+ }
+ },
+ "vue": {
+ "version": "3.2.36",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.36.tgz",
+ "integrity": "sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.36",
+ "@vue/compiler-sfc": "3.2.36",
+ "@vue/runtime-dom": "3.2.36",
+ "@vue/server-renderer": "3.2.36",
+ "@vue/shared": "3.2.36"
+ }
+ },
+ "vue-router": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.15.tgz",
+ "integrity": "sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg==",
+ "requires": {
+ "@vue/devtools-api": "^6.0.0"
+ }
+ }
+ }
+}
diff --git a/Romar2020Portfolio/package.json b/Romar2020Portfolio/package.json
new file mode 100644
index 00000000..ae654e12
--- /dev/null
+++ b/Romar2020Portfolio/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "client",
+ "version": "0.0.0",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview --port 5050"
+ },
+ "dependencies": {
+ "pinia": "^2.0.14",
+ "vue": "^3.2.33",
+ "vue-router": "^4.0.14"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^2.3.1",
+ "vite": "^2.9.5"
+ }
+}
diff --git a/Romar2020Portfolio/public/favicon.ico b/Romar2020Portfolio/public/favicon.ico
new file mode 100644
index 00000000..df36fcfb
Binary files /dev/null and b/Romar2020Portfolio/public/favicon.ico differ
diff --git a/Romar2020Portfolio/public/favicon.png b/Romar2020Portfolio/public/favicon.png
new file mode 100644
index 00000000..73c8a0a2
Binary files /dev/null and b/Romar2020Portfolio/public/favicon.png differ
diff --git a/Romar2020Portfolio/public/images/344338.jpg b/Romar2020Portfolio/public/images/344338.jpg
new file mode 100644
index 00000000..9755d851
Binary files /dev/null and b/Romar2020Portfolio/public/images/344338.jpg differ
diff --git a/Romar2020Portfolio/public/images/anime/1.png b/Romar2020Portfolio/public/images/anime/1.png
new file mode 100644
index 00000000..3e4834f5
Binary files /dev/null and b/Romar2020Portfolio/public/images/anime/1.png differ
diff --git a/Romar2020Portfolio/public/images/anime/2.PNG b/Romar2020Portfolio/public/images/anime/2.PNG
new file mode 100644
index 00000000..436804c2
Binary files /dev/null and b/Romar2020Portfolio/public/images/anime/2.PNG differ
diff --git a/Romar2020Portfolio/public/images/anime/3.PNG b/Romar2020Portfolio/public/images/anime/3.PNG
new file mode 100644
index 00000000..d48dc747
Binary files /dev/null and b/Romar2020Portfolio/public/images/anime/3.PNG differ
diff --git a/Romar2020Portfolio/public/images/anime/4.PNG b/Romar2020Portfolio/public/images/anime/4.PNG
new file mode 100644
index 00000000..983b11b0
Binary files /dev/null and b/Romar2020Portfolio/public/images/anime/4.PNG differ
diff --git a/Romar2020Portfolio/public/images/anime/5.PNG b/Romar2020Portfolio/public/images/anime/5.PNG
new file mode 100644
index 00000000..492af5a1
Binary files /dev/null and b/Romar2020Portfolio/public/images/anime/5.PNG differ
diff --git a/Romar2020Portfolio/public/images/capstone/1.PNG b/Romar2020Portfolio/public/images/capstone/1.PNG
new file mode 100644
index 00000000..93e511c6
Binary files /dev/null and b/Romar2020Portfolio/public/images/capstone/1.PNG differ
diff --git a/Romar2020Portfolio/public/images/capstone/2.PNG b/Romar2020Portfolio/public/images/capstone/2.PNG
new file mode 100644
index 00000000..2048f60c
Binary files /dev/null and b/Romar2020Portfolio/public/images/capstone/2.PNG differ
diff --git a/Romar2020Portfolio/public/images/capstone/3.PNG b/Romar2020Portfolio/public/images/capstone/3.PNG
new file mode 100644
index 00000000..98dd538d
Binary files /dev/null and b/Romar2020Portfolio/public/images/capstone/3.PNG differ
diff --git a/Romar2020Portfolio/public/images/capstone/4.PNG b/Romar2020Portfolio/public/images/capstone/4.PNG
new file mode 100644
index 00000000..b5b589d3
Binary files /dev/null and b/Romar2020Portfolio/public/images/capstone/4.PNG differ
diff --git a/Romar2020Portfolio/public/images/capstone/5.PNG b/Romar2020Portfolio/public/images/capstone/5.PNG
new file mode 100644
index 00000000..0bb6008c
Binary files /dev/null and b/Romar2020Portfolio/public/images/capstone/5.PNG differ
diff --git a/Romar2020Portfolio/public/images/my-image.png b/Romar2020Portfolio/public/images/my-image.png
new file mode 100644
index 00000000..5758aab5
Binary files /dev/null and b/Romar2020Portfolio/public/images/my-image.png differ
diff --git a/Romar2020Portfolio/public/images/my-image2.jpg b/Romar2020Portfolio/public/images/my-image2.jpg
new file mode 100644
index 00000000..9387e7b2
Binary files /dev/null and b/Romar2020Portfolio/public/images/my-image2.jpg differ
diff --git a/Romar2020Portfolio/public/images/portfolio/1.PNG b/Romar2020Portfolio/public/images/portfolio/1.PNG
new file mode 100644
index 00000000..cb04afeb
Binary files /dev/null and b/Romar2020Portfolio/public/images/portfolio/1.PNG differ
diff --git a/Romar2020Portfolio/public/images/portfolio/2.PNG b/Romar2020Portfolio/public/images/portfolio/2.PNG
new file mode 100644
index 00000000..fb9dc3f3
Binary files /dev/null and b/Romar2020Portfolio/public/images/portfolio/2.PNG differ
diff --git a/Romar2020Portfolio/public/images/portfolio/3.PNG b/Romar2020Portfolio/public/images/portfolio/3.PNG
new file mode 100644
index 00000000..cfcf0d37
Binary files /dev/null and b/Romar2020Portfolio/public/images/portfolio/3.PNG differ
diff --git a/Romar2020Portfolio/src/App.vue b/Romar2020Portfolio/src/App.vue
new file mode 100644
index 00000000..60c4dcea
--- /dev/null
+++ b/Romar2020Portfolio/src/App.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/assets/base.css b/Romar2020Portfolio/src/assets/base.css
new file mode 100644
index 00000000..dd8ce0b8
--- /dev/null
+++ b/Romar2020Portfolio/src/assets/base.css
@@ -0,0 +1,109 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');
+
+body::-webkit-scrollbar {
+ width: 15px; /* width of the entire scrollbar */
+}
+body::-webkit-scrollbar-track {
+ background: var(--bgDark) /* color of the tracking area */
+}
+body::-webkit-scrollbar-thumb {
+ background-color: var(--accentColor); /* color of the scroll thumb */
+ border-radius: 20px; /* roundness of the scroll thumb */
+ border: 4px solid var(--bgDark); /* creates padding around scroll thumb */
+}
+
+:root{
+ --bgDark: #181818;
+ --colorDark: #FFFFFF;
+ --colorLight: #353535;
+ --bgLight: #FFFFFF;
+ --accentColor: #0051ff;
+}
+
+*{
+ margin: 0;
+ box-sizing: border-box;
+ padding: 0;
+}
+
+html {
+ scroll-behavior: smooth;
+}
+
+body{
+ font-family: 'Poppins', sans-serif;
+}
+
+.bg-transition{
+ transition: background 0.3s ease-in-out;
+}
+
+.app{
+ background: var(--bgLight);
+ color: var(--colorLight);
+ font-size: 30px;
+}
+
+.dark {
+ background: var(--bgDark);
+ color: var(--colorDark);
+}
+
+li {
+ list-style: none;
+}
+
+a {
+ text-decoration: none;
+ color: unset;
+}
+
+button{
+ outline: none;
+ border: none;
+ cursor: pointer;
+ border-radius: 5px;
+ padding: 13px 25px;
+ font-size: .9rem;
+}
+
+/* custom styles */
+.container{
+ margin: 0 auto;
+ padding: 0 30px;
+}
+
+/* Small */
+@media screen and (min-width: 576px) {
+ .container {
+ width: 540px;
+ }
+}
+/* Medium */
+@media screen and (min-width: 768px) {
+ .container {
+ width: 720px;
+ }
+}
+/* Large */
+@media screen and (min-width: 992px) {
+ .container {
+ width: 960px;
+ }
+}
+/* Extra Large */
+@media screen and (min-width: 1200px) {
+ .container {
+ width: 1140px;
+ }
+}
+
+/*Transition*/
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 1s linear;
+}
+.fade-enter-from,
+.fade-leave-to{
+ opacity: 0;
+}
diff --git a/Romar2020Portfolio/src/assets/logo.svg b/Romar2020Portfolio/src/assets/logo.svg
new file mode 100644
index 00000000..bc826fed
--- /dev/null
+++ b/Romar2020Portfolio/src/assets/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Romar2020Portfolio/src/components/ProjectLists.vue b/Romar2020Portfolio/src/components/ProjectLists.vue
new file mode 100644
index 00000000..40500fbc
--- /dev/null
+++ b/Romar2020Portfolio/src/components/ProjectLists.vue
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
{{project.title}}
+
{{project.description}}
+
{{project.used}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/components/TheAbout.vue b/Romar2020Portfolio/src/components/TheAbout.vue
new file mode 100644
index 00000000..c483aa4e
--- /dev/null
+++ b/Romar2020Portfolio/src/components/TheAbout.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
About
+
+
+
Background
+
+ I am a fresh graduate student in Holy Cross of Davao College in the field
+ of Bachelor of Science in Information Technology.
+
+
+
+
+
+
Some Technologies I have experience using:
+
+
+ - HTML
+ - CSS
+ - Bootstrap
+ - Javascript
+ - PHP
+
+
+ - CodeIgniter
+ - ReactJS
+ - NextJS
+ - Django Rest Api
+ - VueJS
+ - MySQL
+
+
+
+
+
+
Experience
+
+ -
+
+ Intern at VirtualDesk (Aug. 16, 2021 - Oct. 19, 2021) - Wordpress Developer
+
+
+ 112 Lapu-lapu St. Agdao Davao City, Philippines 8000
+
+
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/components/TheContact.vue b/Romar2020Portfolio/src/components/TheContact.vue
new file mode 100644
index 00000000..afc00fb3
--- /dev/null
+++ b/Romar2020Portfolio/src/components/TheContact.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
Contact
+
+
+ romardesabille@gmail.com
+
+
+
Thank you for visiting!
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/components/TheHeader.vue b/Romar2020Portfolio/src/components/TheHeader.vue
new file mode 100644
index 00000000..9825553f
--- /dev/null
+++ b/Romar2020Portfolio/src/components/TheHeader.vue
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/components/TheHero.vue b/Romar2020Portfolio/src/components/TheHero.vue
new file mode 100644
index 00000000..e73cd9ab
--- /dev/null
+++ b/Romar2020Portfolio/src/components/TheHero.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
Hello, I am
+
Romar Desabille
+
Aspiring Web Developer.
+
+ Resume.pdf
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/components/TheProject.vue b/Romar2020Portfolio/src/components/TheProject.vue
new file mode 100644
index 00000000..b0d44953
--- /dev/null
+++ b/Romar2020Portfolio/src/components/TheProject.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/components/icons/IconCommunity.vue b/Romar2020Portfolio/src/components/icons/IconCommunity.vue
new file mode 100644
index 00000000..2dc8b055
--- /dev/null
+++ b/Romar2020Portfolio/src/components/icons/IconCommunity.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Romar2020Portfolio/src/components/icons/IconDocumentation.vue b/Romar2020Portfolio/src/components/icons/IconDocumentation.vue
new file mode 100644
index 00000000..6d4791cf
--- /dev/null
+++ b/Romar2020Portfolio/src/components/icons/IconDocumentation.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Romar2020Portfolio/src/components/icons/IconEcosystem.vue b/Romar2020Portfolio/src/components/icons/IconEcosystem.vue
new file mode 100644
index 00000000..c3a4f078
--- /dev/null
+++ b/Romar2020Portfolio/src/components/icons/IconEcosystem.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Romar2020Portfolio/src/components/icons/IconSupport.vue b/Romar2020Portfolio/src/components/icons/IconSupport.vue
new file mode 100644
index 00000000..7452834d
--- /dev/null
+++ b/Romar2020Portfolio/src/components/icons/IconSupport.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Romar2020Portfolio/src/components/icons/IconTooling.vue b/Romar2020Portfolio/src/components/icons/IconTooling.vue
new file mode 100644
index 00000000..660598d7
--- /dev/null
+++ b/Romar2020Portfolio/src/components/icons/IconTooling.vue
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/Romar2020Portfolio/src/data/projects.js b/Romar2020Portfolio/src/data/projects.js
new file mode 100644
index 00000000..3386faa9
--- /dev/null
+++ b/Romar2020Portfolio/src/data/projects.js
@@ -0,0 +1,61 @@
+const imgPath = '/images'
+
+const featured = [
+ {
+ title: 'My Portfolio',
+ description: 'My First Portfolio Site',
+ used: 'VueJS • CSS',
+ link: null,
+ githubLink: 'https://github.com/romar0001/portfolio',
+ thumbnail: `${imgPath}/portfolio/1.PNG`
+ },
+ {
+ title: 'Capstone Project',
+ description: 'Course Recommendation for K-12 Students Using Multiple-Regression Based on Online Entrance Exam',
+ used: 'NextJS • MUI • Django Rest API',
+ link: null,
+ githubLink: 'https://github.com/romar0001/capstone',
+ thumbnail: `${imgPath}/capstone/1.PNG`
+ },
+ {
+ title: 'Anime Site',
+ description: 'My 3rd year project.',
+ used: 'PHP • MySQL • Javascript • Bootstrap • CSS',
+ link: null,
+ githubLink: 'https://github.com/romar0001/anime',
+ thumbnail: `${imgPath}/anime/1.png`
+ }
+]
+
+const projects = {
+ featured: [...featured],
+ all: [
+ {
+ ...featured[0],
+ screenshots: [
+ `${imgPath}/portfolio/2.PNG`,
+ `${imgPath}/portfolio/3.PNG`
+ ],
+ },
+ {
+ ...featured[1],
+ screenshots: [
+ `${imgPath}/capstone/2.PNG`,
+ `${imgPath}/capstone/3.PNG`,
+ `${imgPath}/capstone/4.PNG`,
+ `${imgPath}/capstone/5.PNG`,
+ ],
+ },
+ {
+ ...featured[2],
+ screenshots: [
+ `${imgPath}/anime/5.PNG`,
+ `${imgPath}/anime/2.PNG`,
+ `${imgPath}/anime/3.PNG`,
+ `${imgPath}/anime/4.PNG`,
+ ],
+ }
+ ]
+}
+
+export default projects
\ No newline at end of file
diff --git a/Romar2020Portfolio/src/main.js b/Romar2020Portfolio/src/main.js
new file mode 100644
index 00000000..fda1e6e3
--- /dev/null
+++ b/Romar2020Portfolio/src/main.js
@@ -0,0 +1,12 @@
+import { createApp } from 'vue'
+import { createPinia } from 'pinia'
+
+import App from './App.vue'
+import router from './router'
+
+const app = createApp(App)
+
+app.use(createPinia())
+app.use(router)
+
+app.mount('#app')
diff --git a/Romar2020Portfolio/src/router/index.js b/Romar2020Portfolio/src/router/index.js
new file mode 100644
index 00000000..ec6fcb9d
--- /dev/null
+++ b/Romar2020Portfolio/src/router/index.js
@@ -0,0 +1,31 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import Home from '../views/HomeView.vue'
+import Projects from '../views/Projects.vue'
+
+const router = createRouter({
+ history: createWebHistory(import.meta.env.BASE_URL),
+ routes: [
+ {
+ path: '/',
+ name: 'home',
+ component: Home
+ },
+ {
+ path: '/projects',
+ name: 'projects',
+ component: Projects
+ },
+ {
+ path: '/screenshots/:id',
+ name: 'screenshots',
+ component: () => import('../views/Screenshots.vue'),
+ },
+ {
+ path: '/:pathMatch(.*)*',
+ name: 'notfound',
+ component: () => import('../views/NotFound.vue'),
+ }
+ ]
+})
+
+export default router
diff --git a/Romar2020Portfolio/src/stores/theme.js b/Romar2020Portfolio/src/stores/theme.js
new file mode 100644
index 00000000..b5c1a993
--- /dev/null
+++ b/Romar2020Portfolio/src/stores/theme.js
@@ -0,0 +1,37 @@
+import { defineStore } from 'pinia'
+
+const theme = {
+ LIGHT: 'light',
+ DARK: 'dark',
+ BG_LIGHT: '#FFFFFF',
+ BG_DARK: '#181818',
+ COLOR_DARK: '#FFFFFF',
+ COLOR_LIGHT: '#353535',
+}
+function checkTheme(){
+ return localStorage.getItem('theme') === theme.LIGHT ?
+ [localStorage.getItem('theme'), theme.BG_LIGHT, theme.COLOR_LIGHT] :
+ ['dark', theme.BG_DARK, theme.COLOR_DARK]
+}
+export const useThemeStore = defineStore('theme',{
+ state: () => ({
+ currentTheme: checkTheme()[0],
+ bgColor: checkTheme()[1],
+ color: checkTheme()[2],
+ }),
+ actions: {
+ switchTheme() {
+ if(this.currentTheme === theme.LIGHT){
+ this.currentTheme = theme.DARK
+ this.bgColor = theme.BG_DARK
+ this.color = theme.COLOR_DARK
+ localStorage.setItem('theme', theme.DARK)
+ }else{
+ this.currentTheme = theme.LIGHT
+ this.bgColor = theme.BG_LIGHT
+ this.color = theme.COLOR_LIGHT
+ localStorage.setItem('theme', theme.LIGHT)
+ }
+ }
+ }
+})
diff --git a/Romar2020Portfolio/src/views/HomeView.vue b/Romar2020Portfolio/src/views/HomeView.vue
new file mode 100644
index 00000000..38df7bc2
--- /dev/null
+++ b/Romar2020Portfolio/src/views/HomeView.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/views/NotFound.vue b/Romar2020Portfolio/src/views/NotFound.vue
new file mode 100644
index 00000000..f3e5c548
--- /dev/null
+++ b/Romar2020Portfolio/src/views/NotFound.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/views/Projects.vue b/Romar2020Portfolio/src/views/Projects.vue
new file mode 100644
index 00000000..775cce85
--- /dev/null
+++ b/Romar2020Portfolio/src/views/Projects.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
diff --git a/Romar2020Portfolio/src/views/Screenshots.vue b/Romar2020Portfolio/src/views/Screenshots.vue
new file mode 100644
index 00000000..c1f091e2
--- /dev/null
+++ b/Romar2020Portfolio/src/views/Screenshots.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+
Screenshots
+
{{ projectInfo.title }}
+
{{ projectInfo.description }}
+
{{ projectInfo.used }}
+
+
+
Click image to view
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Romar2020Portfolio/vercel.json b/Romar2020Portfolio/vercel.json
new file mode 100644
index 00000000..572a48d0
--- /dev/null
+++ b/Romar2020Portfolio/vercel.json
@@ -0,0 +1,3 @@
+{
+ "rewrites": [{ "source": "/(.*)", "destination": "/" }]
+}
\ No newline at end of file
diff --git a/Romar2020Portfolio/vite.config.js b/Romar2020Portfolio/vite.config.js
new file mode 100644
index 00000000..116273fb
--- /dev/null
+++ b/Romar2020Portfolio/vite.config.js
@@ -0,0 +1,14 @@
+import { fileURLToPath, URL } from 'url'
+
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [vue()],
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url))
+ }
+ }
+})