├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .postcssrc.js
├── .stylintrc
├── README.md
├── babel.config.js
├── package-lock.json
├── package.json
├── quasar.conf.js
└── src
├── App.vue
├── assets
├── quasar-logo-full.svg
└── sad.svg
├── boot
├── .gitkeep
├── axios.js
├── speech.js
└── websocket-client.js
├── components
└── .gitkeep
├── css
├── app.styl
└── quasar.variables.styl
├── index.template.html
├── layouts
└── MyLayout.vue
├── pages
├── Chat.vue
├── Error404.vue
├── Index copy.vue
└── Index.vue
├── router
├── index.js
└── routes.js
└── statics
├── app-logo-128x128.png
├── icons
├── apple-icon-120x120.png
├── apple-icon-152x152.png
├── apple-icon-167x167.png
├── apple-icon-180x180.png
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon-96x96.png
├── favicon.ico
├── icon-128x128.png
├── icon-192x192.png
├── icon-256x256.png
├── icon-384x384.png
├── icon-512x512.png
├── ms-icon-144x144.png
└── safari-pinned-tab.svg
└── logo-512x512.png
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /dist
2 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 |
4 | parserOptions: {
5 | parser: 'babel-eslint',
6 | sourceType: 'module'
7 | },
8 |
9 | env: {
10 | browser: true
11 | },
12 |
13 | extends: [
14 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
15 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
16 | 'plugin:vue/essential',
17 | '@vue/standard'
18 | ],
19 |
20 | // required to lint *.vue files
21 | plugins: [
22 | 'vue'
23 | ],
24 |
25 | globals: {
26 | 'ga': true, // Google Analytics
27 | 'cordova': true,
28 | '__statics': true,
29 | 'process': true
30 | },
31 |
32 | // add your custom rules here
33 | rules: {
34 | // allow async-await
35 | 'generator-star-spacing': 'off',
36 | // allow paren-less arrow functions
37 | 'arrow-parens': 'off',
38 | 'one-var': 'off',
39 |
40 | 'import/first': 'off',
41 | 'import/named': 'error',
42 | 'import/namespace': 'error',
43 | 'import/default': 'error',
44 | 'import/export': 'error',
45 | 'import/extensions': 'off',
46 | 'import/no-unresolved': 'off',
47 | 'import/no-extraneous-dependencies': 'off',
48 | 'prefer-promise-reject-errors': 'off',
49 |
50 | // allow console.log during development only
51 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
52 | // allow debugger during development only
53 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .quasar
2 | .DS_Store
3 | .thumbs.db
4 | node_modules
5 | /dist
6 | /src-cordova/node_modules
7 | /src-cordova/platforms
8 | /src-cordova/plugins
9 | /src-cordova/www
10 | npm-debug.log*
11 | yarn-debug.log*
12 | yarn-error.log*
13 |
14 | # Editor directories and files
15 | .idea
16 | .vscode
17 | *.suo
18 | *.ntvs*
19 | *.njsproj
20 | *.sln
21 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | plugins: [
5 | // to edit target browsers: use "browserslist" field in package.json
6 | require('autoprefixer')
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/.stylintrc:
--------------------------------------------------------------------------------
1 | {
2 | "blocks": "never",
3 | "brackets": "never",
4 | "colons": "never",
5 | "colors": "always",
6 | "commaSpace": "always",
7 | "commentSpace": "always",
8 | "cssLiteral": "never",
9 | "depthLimit": false,
10 | "duplicates": true,
11 | "efficient": "always",
12 | "extendPref": false,
13 | "globalDupe": true,
14 | "indentPref": 2,
15 | "leadingZero": "never",
16 | "maxErrors": false,
17 | "maxWarnings": false,
18 | "mixed": false,
19 | "namingConvention": false,
20 | "namingConventionStrict": false,
21 | "none": "never",
22 | "noImportant": false,
23 | "parenSpace": "never",
24 | "placeholder": false,
25 | "prefixVarsWithDollar": "always",
26 | "quotePref": "single",
27 | "semicolons": "never",
28 | "sortOrder": false,
29 | "stackedProperties": "never",
30 | "trailingWhitespace": "never",
31 | "universal": "never",
32 | "valid": true,
33 | "zeroUnits": "never",
34 | "zIndexNormalize": false
35 | }
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Quasar socket client (quasar-socket-client)
2 |
3 | Projeto de chat com acessibilidade usando Quasar framework e socket.io
4 |
5 | ## Install the dependencies
6 | ```bash
7 | npm install
8 | ```
9 |
10 | ### Start the app in development mode (hot-code reloading, error reporting, etc.)
11 | ```bash
12 | quasar dev
13 | ```
14 |
15 | ### Lint the files
16 | ```bash
17 | npm run lint
18 | ```
19 |
20 | ### Build the app for production
21 | ```bash
22 | quasar build
23 | ```
24 |
25 | ### Customize the configuration
26 | See [Configuring quasar.conf.js](https://quasar.dev/quasar-cli/quasar-conf-js).
27 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@quasar/babel-preset-app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "quasar-socket-client",
3 | "version": "0.0.1",
4 | "description": "Projeto de chat",
5 | "productName": "Vue Norte Chat",
6 | "cordovaId": "org.cordova.quasar.app",
7 | "author": "eng.patrickmonteiro@gmail.com",
8 | "private": true,
9 | "scripts": {
10 | "lint": "eslint --ext .js,.vue src",
11 | "test": "echo \"No test specified\" && exit 0"
12 | },
13 | "dependencies": {
14 | "@quasar/extras": "^1.0.0",
15 | "axios": "^0.18.1",
16 | "quasar": "^1.0.0",
17 | "vue-socket.io": "^3.0.7"
18 | },
19 | "devDependencies": {
20 | "@quasar/app": "^1.0.0",
21 | "@vue/eslint-config-standard": "^4.0.0",
22 | "babel-eslint": "^10.0.1",
23 | "electron-packager": "^13.1.1",
24 | "eslint": "^5.10.0",
25 | "eslint-loader": "^2.1.1",
26 | "eslint-plugin-vue": "^5.0.0"
27 | },
28 | "engines": {
29 | "node": ">= 8.9.0",
30 | "npm": ">= 5.6.0",
31 | "yarn": ">= 1.6.0"
32 | },
33 | "browserslist": [
34 | "last 1 version, not dead, ie >= 11"
35 | ]
36 | }
37 |
--------------------------------------------------------------------------------
/quasar.conf.js:
--------------------------------------------------------------------------------
1 | // Configuration for your app
2 | // https://quasar.dev/quasar-cli/quasar-conf-js
3 |
4 | module.exports = function (ctx) {
5 | return {
6 | // app boot file (/src/boot)
7 | // --> boot files are part of "main.js"
8 | boot: [
9 | 'axios',
10 | 'websocket-client',
11 | 'speech'
12 | ],
13 |
14 | css: [
15 | 'app.styl'
16 | ],
17 |
18 | extras: [
19 | // 'ionicons-v4',
20 | // 'mdi-v3',
21 | // 'fontawesome-v5',
22 | // 'eva-icons',
23 | // 'themify',
24 | // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
25 |
26 | 'roboto-font', // optional, you are not bound to it
27 | 'material-icons' // optional, you are not bound to it
28 | ],
29 |
30 | framework: {
31 | // iconSet: 'ionicons-v4',
32 | // lang: 'de', // Quasar language
33 |
34 | // all: true, // --- includes everything; for dev only!
35 |
36 | components: [
37 | 'QLayout',
38 | 'QHeader',
39 | 'QDrawer',
40 | 'QPageContainer',
41 | 'QPage',
42 | 'QToolbar',
43 | 'QToolbarTitle',
44 | 'QBtn',
45 | 'QIcon',
46 | 'QList',
47 | 'QItem',
48 | 'QItemSection',
49 | 'QItemLabel',
50 | 'QInput',
51 | 'QChatMessage',
52 | 'QScrollArea'
53 | ],
54 |
55 | directives: [
56 | 'Ripple'
57 | ],
58 |
59 | // Quasar plugins
60 | plugins: [
61 | 'Notify'
62 | ]
63 | },
64 |
65 | supportIE: false,
66 |
67 | build: {
68 | scopeHoisting: true,
69 | // vueRouterMode: 'history',
70 | // vueCompiler: true,
71 | // gzip: true,
72 | // analyze: true,
73 | // extractCSS: false,
74 | extendWebpack (cfg) {
75 | cfg.module.rules.push({
76 | enforce: 'pre',
77 | test: /\.(js|vue)$/,
78 | loader: 'eslint-loader',
79 | exclude: /node_modules/,
80 | options: {
81 | formatter: require('eslint').CLIEngine.getFormatter('stylish')
82 | }
83 | })
84 | }
85 | },
86 |
87 | devServer: {
88 | // https: true,
89 | // port: 8080,
90 | open: true // opens browser window automatically
91 | },
92 |
93 | // animations: 'all', // --- includes all animations
94 | animations: [],
95 |
96 | ssr: {
97 | pwa: false
98 | },
99 |
100 | pwa: {
101 | // workboxPluginMode: 'InjectManifest',
102 | // workboxOptions: {}, // only for NON InjectManifest
103 | manifest: {
104 | // name: 'W3 Texto Fala Desktop',
105 | // short_name: 'W3 Texto Fala Desktop',
106 | // description: 'Projeto de texto fala desktop usando Electron + Socket.io',
107 | display: 'standalone',
108 | orientation: 'portrait',
109 | background_color: '#ffffff',
110 | theme_color: '#027be3',
111 | icons: [
112 | {
113 | 'src': 'statics/icons/icon-128x128.png',
114 | 'sizes': '128x128',
115 | 'type': 'image/png'
116 | },
117 | {
118 | 'src': 'statics/icons/icon-192x192.png',
119 | 'sizes': '192x192',
120 | 'type': 'image/png'
121 | },
122 | {
123 | 'src': 'statics/icons/icon-256x256.png',
124 | 'sizes': '256x256',
125 | 'type': 'image/png'
126 | },
127 | {
128 | 'src': 'statics/icons/icon-384x384.png',
129 | 'sizes': '384x384',
130 | 'type': 'image/png'
131 | },
132 | {
133 | 'src': 'statics/icons/icon-512x512.png',
134 | 'sizes': '512x512',
135 | 'type': 'image/png'
136 | }
137 | ]
138 | }
139 | },
140 |
141 | cordova: {
142 | // id: 'org.cordova.quasar.app',
143 | // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
144 | },
145 |
146 | electron: {
147 | bundler: 'packager', // builder or 'packager'
148 |
149 | extendWebpack (cfg) {
150 | // do something with Electron main process Webpack cfg
151 | // chainWebpack also available besides this extendWebpack
152 | },
153 |
154 | packager: {
155 | // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
156 |
157 | // OS X / Mac App Store
158 | // appBundleId: '',
159 | // appCategoryType: '',
160 | // osxSign: '',
161 | // protocol: 'myapp://path',
162 |
163 | // Windows only
164 | // win32metadata: { ... }
165 | },
166 |
167 | builder: {
168 | // https://www.electron.build/configuration/configuration
169 |
170 | // appId: 'w3-texto-fala-desktop'
171 | }
172 | }
173 | }
174 | }
175 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
Sorry, nothing here...(404)
10 |