diff --git a/SUBD-front/index.html b/SUBD-front/index.html
index 99f583a..12c7912 100644
--- a/SUBD-front/index.html
+++ b/SUBD-front/index.html
@@ -2,12 +2,13 @@
-
+
Vite App
+
diff --git a/SUBD-front/package-lock.json b/SUBD-front/package-lock.json
index 83b6f8a..03e3193 100644
--- a/SUBD-front/package-lock.json
+++ b/SUBD-front/package-lock.json
@@ -8,6 +8,8 @@
"name": "subd-front",
"version": "0.0.0",
"dependencies": {
+ "axios": "^1.3.6",
+ "bootstrap": "^5.2.3",
"vue": "^3.2.47",
"vue-router": "^4.1.6"
},
@@ -869,6 +871,16 @@
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
},
+ "node_modules/@popperjs/core": {
+ "version": "2.11.7",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
+ "integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
"node_modules/@vitejs/plugin-vue": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
@@ -1042,6 +1054,39 @@
"node": ">=4"
}
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/axios": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.6.tgz",
+ "integrity": "sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg==",
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/bootstrap": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz",
+ "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/twbs"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/bootstrap"
+ }
+ ],
+ "peerDependencies": {
+ "@popperjs/core": "^2.11.6"
+ }
+ },
"node_modules/browserslist": {
"version": "4.21.5",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
@@ -1131,6 +1176,17 @@
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/convert-source-map": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
@@ -1159,6 +1215,14 @@
}
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/electron-to-chromium": {
"version": "1.4.356",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.356.tgz",
@@ -1225,6 +1289,38 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@@ -1355,6 +1451,25 @@
"sourcemap-codec": "^1.4.8"
}
},
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -1418,6 +1533,11 @@
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/resolve": {
"version": "1.22.2",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
diff --git a/SUBD-front/package.json b/SUBD-front/package.json
index 923e932..f8966a5 100644
--- a/SUBD-front/package.json
+++ b/SUBD-front/package.json
@@ -8,6 +8,8 @@
"preview": "vite preview"
},
"dependencies": {
+ "axios": "^1.3.6",
+ "bootstrap": "^5.2.3",
"vue": "^3.2.47",
"vue-router": "^4.1.6"
},
diff --git a/SUBD-front/src/App.vue b/SUBD-front/src/App.vue
index e864195..7cb90de 100644
--- a/SUBD-front/src/App.vue
+++ b/SUBD-front/src/App.vue
@@ -1,85 +1,13 @@
-
-
-
-
-
-
-
-
- Home
- About
-
-
-
-
-
+
+
-
-
diff --git a/SUBD-front/src/assets/base.css b/SUBD-front/src/assets/base.css
deleted file mode 100644
index 71dc55a..0000000
--- a/SUBD-front/src/assets/base.css
+++ /dev/null
@@ -1,74 +0,0 @@
-/* color palette from */
-:root {
- --vt-c-white: #ffffff;
- --vt-c-white-soft: #f8f8f8;
- --vt-c-white-mute: #f2f2f2;
-
- --vt-c-black: #181818;
- --vt-c-black-soft: #222222;
- --vt-c-black-mute: #282828;
-
- --vt-c-indigo: #2c3e50;
-
- --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
- --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
- --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
- --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
-
- --vt-c-text-light-1: var(--vt-c-indigo);
- --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
- --vt-c-text-dark-1: var(--vt-c-white);
- --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
-}
-
-/* semantic color variables for this project */
-:root {
- --color-background: var(--vt-c-white);
- --color-background-soft: var(--vt-c-white-soft);
- --color-background-mute: var(--vt-c-white-mute);
-
- --color-border: var(--vt-c-divider-light-2);
- --color-border-hover: var(--vt-c-divider-light-1);
-
- --color-heading: var(--vt-c-text-light-1);
- --color-text: var(--vt-c-text-light-1);
-
- --section-gap: 160px;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --color-background: var(--vt-c-black);
- --color-background-soft: var(--vt-c-black-soft);
- --color-background-mute: var(--vt-c-black-mute);
-
- --color-border: var(--vt-c-divider-dark-2);
- --color-border-hover: var(--vt-c-divider-dark-1);
-
- --color-heading: var(--vt-c-text-dark-1);
- --color-text: var(--vt-c-text-dark-2);
- }
-}
-
-*,
-*::before,
-*::after {
- box-sizing: border-box;
- margin: 0;
- position: relative;
- font-weight: normal;
-}
-
-body {
- min-height: 100vh;
- color: var(--color-text);
- background: var(--color-background);
- transition: color 0.5s, background-color 0.5s;
- line-height: 1.6;
- font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
- Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
- font-size: 15px;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
diff --git a/SUBD-front/src/assets/logo.svg b/SUBD-front/src/assets/logo.svg
deleted file mode 100644
index 7565660..0000000
--- a/SUBD-front/src/assets/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/SUBD-front/src/assets/main.css b/SUBD-front/src/assets/main.css
deleted file mode 100644
index e8667cd..0000000
--- a/SUBD-front/src/assets/main.css
+++ /dev/null
@@ -1,35 +0,0 @@
-@import './base.css';
-
-#app {
- max-width: 1280px;
- margin: 0 auto;
- padding: 2rem;
-
- font-weight: normal;
-}
-
-a,
-.green {
- text-decoration: none;
- color: hsla(160, 100%, 37%, 1);
- transition: 0.4s;
-}
-
-@media (hover: hover) {
- a:hover {
- background-color: hsla(160, 100%, 37%, 0.2);
- }
-}
-
-@media (min-width: 1024px) {
- body {
- display: flex;
- place-items: center;
- }
-
- #app {
- display: grid;
- grid-template-columns: 1fr 1fr;
- padding: 0 2rem;
- }
-}
diff --git a/SUBD-front/src/components/Header.vue b/SUBD-front/src/components/Header.vue
new file mode 100644
index 0000000..0067085
--- /dev/null
+++ b/SUBD-front/src/components/Header.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SUBD-front/src/components/HelloWorld.vue b/SUBD-front/src/components/HelloWorld.vue
deleted file mode 100644
index 0a0988b..0000000
--- a/SUBD-front/src/components/HelloWorld.vue
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
{{ msg }}
-
- You’ve successfully created a project with
- Vite +
- Vue 3 .
-
-
-
-
-
diff --git a/SUBD-front/src/components/TheWelcome.vue b/SUBD-front/src/components/TheWelcome.vue
deleted file mode 100644
index 5e64625..0000000
--- a/SUBD-front/src/components/TheWelcome.vue
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
- Documentation
-
- Vue’s
- official documentation
- provides you with all information you need to get started.
-
-
-
-
-
-
- Tooling
-
- This project is served and bundled with
- Vite . The
- recommended IDE setup is
- VSCode +
- Volar . If
- you need to test your components and web pages, check out
- Cypress and
- Cypress Component Testing .
-
-
-
- More instructions are available in README.md
.
-
-
-
-
-
-
- Ecosystem
-
- Get official tools and libraries for your project:
- Pinia ,
- Vue Router ,
- Vue Test Utils , and
- Vue Dev Tools . If
- you need more resources, we suggest paying
- Awesome Vue
- a visit.
-
-
-
-
-
-
- Community
-
- Got stuck? Ask your question on
- Vue Land , our official
- Discord server, or
- StackOverflow . You should also subscribe to
- our mailing list and follow
- the official
- @vuejs
- twitter account for latest news in the Vue world.
-
-
-
-
-
-
- Support Vue
-
- As an independent project, Vue relies on community backing for its sustainability. You can help
- us by
- becoming a sponsor .
-
-
diff --git a/SUBD-front/src/components/WelcomeItem.vue b/SUBD-front/src/components/WelcomeItem.vue
deleted file mode 100644
index a5eca70..0000000
--- a/SUBD-front/src/components/WelcomeItem.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
diff --git a/SUBD-front/src/components/icons/IconCommunity.vue b/SUBD-front/src/components/icons/IconCommunity.vue
deleted file mode 100644
index 2dc8b05..0000000
--- a/SUBD-front/src/components/icons/IconCommunity.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/SUBD-front/src/components/icons/IconDocumentation.vue b/SUBD-front/src/components/icons/IconDocumentation.vue
deleted file mode 100644
index 6d4791c..0000000
--- a/SUBD-front/src/components/icons/IconDocumentation.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/SUBD-front/src/components/icons/IconEcosystem.vue b/SUBD-front/src/components/icons/IconEcosystem.vue
deleted file mode 100644
index c3a4f07..0000000
--- a/SUBD-front/src/components/icons/IconEcosystem.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/SUBD-front/src/components/icons/IconSupport.vue b/SUBD-front/src/components/icons/IconSupport.vue
deleted file mode 100644
index 7452834..0000000
--- a/SUBD-front/src/components/icons/IconSupport.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/SUBD-front/src/components/icons/IconTooling.vue b/SUBD-front/src/components/icons/IconTooling.vue
deleted file mode 100644
index 660598d..0000000
--- a/SUBD-front/src/components/icons/IconTooling.vue
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
diff --git a/SUBD-front/src/images/hamburger.png b/SUBD-front/src/images/hamburger.png
new file mode 100644
index 0000000..c847f22
Binary files /dev/null and b/SUBD-front/src/images/hamburger.png differ
diff --git a/SUBD-front/src/main.js b/SUBD-front/src/main.js
index eedade8..2974ee0 100644
--- a/SUBD-front/src/main.js
+++ b/SUBD-front/src/main.js
@@ -1,11 +1,25 @@
import { createApp } from 'vue'
-import App from './App.vue'
-import router from './router'
+import App from './App.vue';
+import Orders from './components/Orders.vue'
+// import Clients from './components/Clients.vue'
+// import Cars from './components/Cars.vue'
+// import Drivers from './components/Drivers.vue'
-import './assets/main.css'
+// import './assets/main.css'
-const app = createApp(App)
+const routes = [
+ { path: '/', redirect: '/orders' },
+ { path: '/orders', component: Orders },
+ // { path: '/clients', component: Clients},
+ // { path: '/cars', component: Cars},
+ // { path: '/drivers', component: Drivers}
+]
-app.use(router)
+const router = createRouter({
+ history: createWebHistory(),
+ linkActiveClass: 'active',
+ routes
+})
-app.mount('#app')
+
+const app = createApp(App).use(router).mount('#app')
diff --git a/SUBD-front/src/router/index.js b/SUBD-front/src/router/index.js
deleted file mode 100644
index a49ae50..0000000
--- a/SUBD-front/src/router/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { createRouter, createWebHistory } from 'vue-router'
-import HomeView from '../views/HomeView.vue'
-
-const router = createRouter({
- history: createWebHistory(import.meta.env.BASE_URL),
- routes: [
- {
- path: '/',
- name: 'home',
- component: HomeView
- },
- {
- path: '/about',
- name: 'about',
- // route level code-splitting
- // this generates a separate chunk (About.[hash].js) for this route
- // which is lazy-loaded when the route is visited.
- component: () => import('../views/AboutView.vue')
- }
- ]
-})
-
-export default router
diff --git a/SUBD-front/src/services/DataService.js b/SUBD-front/src/services/DataService.js
new file mode 100644
index 0000000..a06314a
--- /dev/null
+++ b/SUBD-front/src/services/DataService.js
@@ -0,0 +1,42 @@
+import axios from 'axios';
+
+function toJSON(data) {
+ const jsonObj = {};
+ const fields = Object.getOwnPropertyNames(data);
+ for (const field of fields) {
+ if (data[field] === undefined) {
+ continue;
+ }
+ jsonObj[field.substring(0)] = data[field];
+ }
+ return jsonObj;
+}
+
+export default class DataService {
+ static dataUrlPrefix = 'http://127.0.0.1:8080/';
+
+ static async readAll(url, transformer) {
+ const response = await axios.get(this.dataUrlPrefix + url);
+ return response.data.map(item => transformer(item));
+ }
+
+ static async read(url) {
+ const response = await axios.get(this.dataUrlPrefix + url);
+ return response.data;
+ }
+
+ static async create(url, data) {
+ const response = await axios.post(this.dataUrlPrefix + url, toJSON(data));
+ return true;
+ }
+
+ static async update(url, data) {
+ const response = await axios.put(this.dataUrlPrefix + url, toJSON(data));
+ return true;
+ }
+
+ static async delete(url) {
+ const response = await axios.delete(this.dataUrlPrefix + url);
+ return response.data.id;
+ }
+}
\ No newline at end of file
diff --git a/SUBD-front/src/views/AboutView.vue b/SUBD-front/src/views/AboutView.vue
deleted file mode 100644
index 756ad2a..0000000
--- a/SUBD-front/src/views/AboutView.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
This is an about page
-
-
-
-
diff --git a/SUBD-front/src/views/HomeView.vue b/SUBD-front/src/views/HomeView.vue
deleted file mode 100644
index 6bb706f..0000000
--- a/SUBD-front/src/views/HomeView.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-