├── .babelrc ├── .editorconfig ├── .env.example ├── .eslintrc.js ├── .firebaserc ├── .gitignore ├── .prettierrc ├── README.md ├── assets ├── README.md └── css │ └── tailwind.css ├── components ├── README.md ├── common │ ├── AppAccordion.vue │ ├── AppNavbar.vue │ ├── TheFooter.vue │ └── signIn │ │ ├── SignInButton.vue │ │ ├── SignInButtonNav.vue │ │ └── SingIn.vue └── partials │ ├── AccountDropdown.vue │ ├── ButtonPostCreate.vue │ ├── NodeTreeEditor │ ├── NodeTreeEdit.vue │ ├── NodeTreeEditor.vue │ ├── QustionNodeEdit.vue │ └── ResultNodeEdit.vue │ └── post │ ├── InputTags.vue │ ├── PostForm.vue │ ├── PostList.vue │ ├── PostListRecent.vue │ └── PostPlay.vue ├── firebase.json ├── firestore.indexes.json ├── firestore.rules ├── jest.config.js ├── jsconfig.json ├── layouts ├── README.md └── default.vue ├── middleware └── README.md ├── now.json ├── nuxt.config.js ├── package.json ├── pages ├── README.md ├── index.vue ├── posts │ ├── _id │ │ ├── edit.vue │ │ └── index.vue │ └── create.vue └── users │ └── _userId │ └── posts │ └── index.vue ├── plugins ├── README.md ├── firebase.ts └── vue-tags-input.js ├── static ├── README.md ├── favicon.ico ├── icon.png └── images │ └── ogp.png ├── store └── README.md ├── stylelint.config.js ├── tailwind.config.js ├── tsconfig.json ├── types ├── error.ts └── struct.ts ├── utils ├── constants │ ├── defalutNodeTreeData.ts │ └── nodeTreeSamples.ts ├── externals │ └── firebase.ts └── transformer │ └── toObject.ts └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "test": { 4 | "presets": [ 5 | [ 6 | "@babel/preset-env", 7 | { 8 | "targets": { 9 | "node": "current" 10 | } 11 | } 12 | ] 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | BASE_URL=http://localhost:3000 2 | OGP_API_URL= 3 | 4 | FIREBASE_API_KEY= 5 | FIREBASE_AUTH_DOMAIN= 6 | FIREBASE_DATABASEURL= 7 | FIREBASE_PROJECT_ID= 8 | FIREBASE_STORAGE_BUCKET= 9 | FIREBASE_MESSAGING_SENDER_ID= 10 | FIREBASE_APP_ID= 11 | FIREBASE_MEASUREMENT_ID= -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true 6 | }, 7 | extends: [ 8 | '@nuxtjs/eslint-config-typescript', 9 | 'prettier', 10 | 'prettier/vue', 11 | 'plugin:prettier/recommended', 12 | 'plugin:nuxt/recommended' 13 | ], 14 | plugins: [ 15 | 'prettier' 16 | ], 17 | // add your custom rules here 18 | rules: { 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "shindan-chart-maker" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Node template 3 | # Logs 4 | /logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # TypeScript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | 62 | # parcel-bundler cache (https://parceljs.org/) 63 | .cache 64 | 65 | # next.js build output 66 | .next 67 | 68 | # nuxt.js build output 69 | .nuxt 70 | 71 | # Nuxt generate 72 | dist 73 | 74 | # vuepress build output 75 | .vuepress/dist 76 | 77 | # Serverless directories 78 | .serverless 79 | 80 | # IDE / Editor 81 | .idea 82 | 83 | # Service worker 84 | sw.* 85 | 86 | # macOS 87 | .DS_Store 88 | 89 | # Vim swap files 90 | *.swp 91 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "arrowParens": "always", 4 | "singleQuote": true 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 診断チャートメーカー 2 | 3 | ![img](./static/images/ogp.png) 4 | 5 | ## 動的OGP画像のAPI 🌄 6 | [retoruto\-carry/shindan\-chart\-maker\-ogp](https://github.com/retoruto-carry/shindan-chart-maker-ogp) 7 | 8 | 環境変数のOGP_API_URLにはこのAPIのエンドポイントを指定する 9 | 10 | ## Build Setup 🏗️ 11 | ```bash 12 | # install dependencies 13 | $ yarn install 14 | 15 | # serve with hot reload at localhost:3000 16 | $ yarn dev 17 | 18 | # build for production and launch server 19 | $ yarn build 20 | $ yarn start 21 | 22 | # generate static project 23 | $ yarn generate 24 | ``` 25 | 26 | For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org). 27 | 28 | ## 参考にしたコード 🙏 29 | 30 | - [pokemon63/README\.md at master · potato4d/pokemon63](https://github.com/potato4d/pokemon63/blob/master/README.md) 31 | - Nuxt × Typescript × Firebaseの雛形として参考にした 32 | 33 | - [Tree view from unordered list](https://codepen.io/ross-angus/pen/jwxMjL?__cf_chl_jschl_tk__=b500ef43c274ced69c7789135ae5f91dc41a5715-1592141349-0-AdPgBdhmtpDdcEolihJ21YSARcg6WRbMriSlAPjrWsPgVKYiQGxhxX-Q31P4zm0q6BkG4uM_54CeBVcs3L3khMq0QI1tf2BPou_eS8ZV12KQZd6O67IntsyyWPwit0lWQl78gUUYV62-lyo20r1MuDIKBos3M6Iu6xV8CZoeLFhzr7VHFMasY8VZ6sc3drm8fJFExMtPZ85KU6DaavBiOOrHpeqcNOZP47U2elfubZnNMt_pNa78AfEteY3yuBys63e1Rhm5_-yJ3zau5cO_y5gVdpFlL047KNPDbDp-kWOPzBFqp32WmTxi9HD6D5Xoin_rhnlyfahU7a3GxV4C56lVbDj5IZpDdOb7OMpuZDff) 34 | - フローチャートのCSSの参考にした -------------------------------------------------------------------------------- /assets/README.md: -------------------------------------------------------------------------------- 1 | # ASSETS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked). 8 | -------------------------------------------------------------------------------- /assets/css/tailwind.css: -------------------------------------------------------------------------------- 1 | /* purgecss start ignore */ 2 | @import 'tailwindcss/base'; 3 | @import 'tailwindcss/components'; 4 | /* purgecss end ignore */ 5 | @import 'tailwindcss/utilities'; 6 | -------------------------------------------------------------------------------- /components/README.md: -------------------------------------------------------------------------------- 1 | # COMPONENTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | The components directory contains your Vue.js Components. 6 | 7 | _Nuxt.js doesn't supercharge these components._ 8 | -------------------------------------------------------------------------------- /components/common/AppAccordion.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 48 | -------------------------------------------------------------------------------- /components/common/AppNavbar.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 53 | 54 | 59 | -------------------------------------------------------------------------------- /components/common/TheFooter.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 20 | -------------------------------------------------------------------------------- /components/common/signIn/SignInButton.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 28 | -------------------------------------------------------------------------------- /components/common/signIn/SignInButtonNav.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 28 | 29 | 46 | -------------------------------------------------------------------------------- /components/common/signIn/SingIn.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 48 | -------------------------------------------------------------------------------- /components/partials/AccountDropdown.vue: -------------------------------------------------------------------------------- 1 | 44 | 45 | 62 | -------------------------------------------------------------------------------- /components/partials/ButtonPostCreate.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 21 | -------------------------------------------------------------------------------- /components/partials/NodeTreeEditor/NodeTreeEdit.vue: -------------------------------------------------------------------------------- 1 | 52 | 53 | 152 | 153 | 234 | -------------------------------------------------------------------------------- /components/partials/NodeTreeEditor/NodeTreeEditor.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 23 | -------------------------------------------------------------------------------- /components/partials/NodeTreeEditor/QustionNodeEdit.vue: -------------------------------------------------------------------------------- 1 |