├── .gitignore
├── README.md
├── babel.config.js
├── jsconfig.json
├── package-lock.json
├── package.json
├── public
├── favicon.ico
└── index.html
├── src
├── App.vue
├── assets
│ ├── logo.png
│ └── logo.svg
├── components
│ ├── HelloWorld.vue
│ ├── RightSideBar.vue
│ └── SideBar.vue
├── main.js
├── quasar-user-options.js
├── router
│ └── index.js
├── store
│ └── index.js
├── styles
│ ├── quasar.sass
│ └── quasar.variables.sass
└── views
│ ├── AboutView.vue
│ └── HomeView.vue
└── vue.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # patient
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### Lints and fixes files
19 | ```
20 | npm run lint
21 | ```
22 |
23 | ### Customize configuration
24 | See [Configuration Reference](https://cli.vuejs.org/config/).
25 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "esnext",
5 | "baseUrl": "./",
6 | "moduleResolution": "node",
7 | "paths": {
8 | "@/*": [
9 | "src/*"
10 | ]
11 | },
12 | "lib": [
13 | "esnext",
14 | "dom",
15 | "dom.iterable",
16 | "scripthost"
17 | ]
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "patient",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build",
8 | "lint": "vue-cli-service lint"
9 | },
10 | "dependencies": {
11 | "@quasar/extras": "^1.0.0",
12 | "core-js": "^3.8.3",
13 | "quasar": "^2.0.0",
14 | "vue": "^3.2.13",
15 | "vue-router": "^4.0.3",
16 | "vuex": "^4.0.0"
17 | },
18 | "devDependencies": {
19 | "@babel/core": "^7.12.16",
20 | "@babel/eslint-parser": "^7.12.16",
21 | "@vue/cli-plugin-babel": "~5.0.0",
22 | "@vue/cli-plugin-eslint": "~5.0.0",
23 | "@vue/cli-plugin-router": "~5.0.0",
24 | "@vue/cli-plugin-vuex": "~5.0.0",
25 | "@vue/cli-service": "~5.0.0",
26 | "eslint": "^7.32.0",
27 | "eslint-plugin-vue": "^8.0.3",
28 | "sass": "1.32.12",
29 | "sass-loader": "^12.0.0",
30 | "vue-cli-plugin-quasar": "~5.0.1"
31 | },
32 | "eslintConfig": {
33 | "root": true,
34 | "env": {
35 | "node": true
36 | },
37 | "extends": [
38 | "plugin:vue/vue3-essential",
39 | "eslint:recommended"
40 | ],
41 | "parserOptions": {
42 | "parser": "@babel/eslint-parser"
43 | },
44 | "rules": {}
45 | },
46 | "browserslist": [
47 | "> 1%",
48 | "last 2 versions",
49 | "not dead",
50 | "not ie 11"
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zakaria-29-dev/Vuejs3-Quasar-UI-Design-Patient-appointment-Dashboard-Carousel-Support-Chat/e74d4f61762e62ce2fbbe1a83a4f4bf6256a597f/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
32 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zakaria-29-dev/Vuejs3-Quasar-UI-Design-Patient-appointment-Dashboard-Carousel-Support-Chat/e74d4f61762e62ce2fbbe1a83a4f4bf6256a597f/src/assets/logo.png
--------------------------------------------------------------------------------
/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/src/components/HelloWorld.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
15 |
--------------------------------------------------------------------------------
/src/components/RightSideBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
Your Activity Today
14 |
86%
15 |
16 |
17 |
18 | All activity
19 |
20 |
21 |
22 |
23 |
24 |
25 | Support Chat
26 |
27 |
28 |
29 |
30 | Joseph
31 |
32 |
33 |
34 |
35 |
37 |
38 |
39 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
59 |
60 |
--------------------------------------------------------------------------------
/src/components/SideBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
59 |
60 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | import router from './router'
4 | import store from './store'
5 | import { Quasar } from 'quasar'
6 | import quasarUserOptions from './quasar-user-options'
7 |
8 | createApp(App).use(Quasar, quasarUserOptions).use(store).use(router).mount('#app')
9 |
--------------------------------------------------------------------------------
/src/quasar-user-options.js:
--------------------------------------------------------------------------------
1 |
2 | import './styles/quasar.sass'
3 | import '@quasar/extras/fontawesome-v5/fontawesome-v5.css'
4 | import '@quasar/extras/material-icons/material-icons.css'
5 |
6 | // To be used on app.use(Quasar, { ... })
7 | export default {
8 | config: {},
9 | plugins: {
10 | }
11 | }
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import { createRouter, createWebHistory } from 'vue-router'
2 | import HomeView from '../views/HomeView.vue'
3 |
4 | const routes = [
5 | {
6 | path: '/',
7 | name: 'home',
8 | component: HomeView
9 | },
10 | {
11 | path: '/about',
12 | name: 'about',
13 | // route level code-splitting
14 | // this generates a separate chunk (about.[hash].js) for this route
15 | // which is lazy-loaded when the route is visited.
16 | component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
17 | }
18 | ]
19 |
20 | const router = createRouter({
21 | history: createWebHistory(process.env.BASE_URL),
22 | routes
23 | })
24 |
25 | export default router
26 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import { createStore } from 'vuex'
2 |
3 | export default createStore({
4 | state: {
5 | },
6 | getters: {
7 | },
8 | mutations: {
9 | },
10 | actions: {
11 | },
12 | modules: {
13 | }
14 | })
15 |
--------------------------------------------------------------------------------
/src/styles/quasar.sass:
--------------------------------------------------------------------------------
1 | @import './quasar.variables.sass'
2 | @import '~quasar-styl'
3 | // @import '~quasar-addon-styl'
4 |
--------------------------------------------------------------------------------
/src/styles/quasar.variables.sass:
--------------------------------------------------------------------------------
1 | // It's highly recommended to change the default colors
2 | // to match your app's branding.
3 |
4 | $primary : #027BE3
5 | $secondary : #26A69A
6 | $accent : #9C27B0
7 |
8 | $dark : #1D1D1D
9 |
10 | $positive : #21BA45
11 | $negative : #C10015
12 | $info : #31CCEC
13 | $warning : #F2C037
14 |
15 | @import '~quasar-variables-styl'
16 |
--------------------------------------------------------------------------------
/src/views/AboutView.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
This is an about page
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/views/HomeView.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | Dashboard
21 |
22 |
23 | Wednesday, 21.03.2022
24 |
25 |
26 |
27 |
28 |
29 |
39 | 784 Patients
40 |
41 |
42 | Woman 40%
43 |
44 |
45 | Man 60%
46 |
47 |
48 |
49 |
50 |
51 |
52 | New patients
53 |
62 |
63 |
64 | Old patients
65 |
71 |
72 |
73 |
74 |
75 | Statistic
76 |
77 |
92 |
93 |
94 |
95 | {{ lorem }}
96 |
97 |
98 |
99 |
100 |
101 | {{ lorem }}
102 |
103 |
104 |
108 |
109 |
110 | {{ lorem }}
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 | Events
120 |
121 |
122 | Your patients today
123 | All patients
124 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
Team meeting
137 |
13:30 - 14:30
138 |
139 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
162 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
Nobel prize
176 |
13:30 - 14:30
177 |
178 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
201 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 | 10:00 am
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 | Sarah Hosten
231 | Diagnosis: Stroke
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 | 10:00 am
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 | Sarah Hosten
257 | Diagnosis: Stroke
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
290 |
312 |
--------------------------------------------------------------------------------
/vue.config.js:
--------------------------------------------------------------------------------
1 | const { defineConfig } = require('@vue/cli-service')
2 | module.exports = defineConfig({
3 | transpileDependencies: [
4 | 'quasar'
5 | ],
6 |
7 | pluginOptions: {
8 | quasar: {
9 | importStrategy: 'kebab',
10 | rtlSupport: false
11 | }
12 | }
13 | })
14 |
--------------------------------------------------------------------------------