|
18 | 18 | - Package manager: npm |
19 | 19 | - Single Page App |
20 | 20 |
|
21 | | -### JS Framework (TBD) |
| 21 | +### JS Framework |
22 | 22 | - Vue.js 3 |
23 | | - - Nuxt.js (easy routing, state management, plugins etc) |
24 | | - |
25 | | -Criteria, results by @sverhoeven: |
26 | | -- first page loads quickly |
27 | | - * nuxtjs: out of the box with static deployment (pre rendered) |
28 | | - * vue js: slower with https://router.vuejs.org/guide/advanced/lazy-loading.html |
29 | | -- seo |
30 | | - * nuxtjs: out of the box |
31 | | - * vuejs: a plugin away https://vue-meta.nuxtjs.org/, but requires search indexer to run JS |
32 | | -- only want static hosting, no nodejs server of lambda functions |
33 | | - * both OK |
34 | | -- least amount of moving parts that I have to maintain |
35 | | - * In vuejs all direct deps need to be kept up 2 date, while in nuxtjs most are indirect deps |
36 | | - * vuejs+our direct deps is less complicated then nuxtjs |
37 | | -@verhoeven prefers to start with Vue.js and if not performant or if we are recreating nuxt then switch to Nuxt.js. |
38 | | - |
39 | | -### UI Framework (TBD) |
40 | | - - Vuetify.js |
| 23 | + |
| 24 | +### UI Framework |
41 | 25 | - Quasar |
42 | | - - Primer.css (from GitHub) |
43 | | - - Tailwind.css |
44 | | - - Buefy |
45 | | - |
46 | | -Criteria, results by @sverhoeven: |
47 | | -- supports vue3 |
48 | | - - primer.css has no support for vue3 |
49 | | - - Tailwind.css only vue2 |
50 | | -- has stepper widget which can be configured to our design |
51 | | - - vuetify3 has no stepper, while veutify2 does |
52 | | - - quasar has vertical stepper, however example shows single column design instead of 2 stepper + form page |
53 | | - - primer.css no stepper |
54 | | - - Tailwind.css no stepper |
55 | | - - Buefy has vertical stepper |
56 | | -- can be themed to make own branding |
57 | | - - they all can, some more than other |
58 | | -@verhoeven prefers to use quasar |
59 | 26 |
|
60 | 27 | ### State management |
61 | | - - vuex |
62 | | - - Vue 3 / Nuxt composition API |
63 | | - |
64 | | -### Storing informatio |
65 | | - - local storage |
| 28 | + - Vue 3 with composition API |
66 | 29 |
|
67 | | -### Deployment (TBD) |
| 30 | +### Deployment |
68 | 31 | - GitHub.io page |
69 | | - - Do we want a custom domain? |
70 | | - |
71 | | -@verhoeven prefers to use GH pages |
72 | 32 |
|
73 | 33 | ### Language |
74 | 34 | - Typescript |
75 | 35 |
|
76 | | -### Schema validation (TBD) |
77 | | - - AJV |
78 | | - - JSON schema --> Typescript convertion |
79 | | - |
80 | | -@sverhoeven prefers to use both, |
81 | | - AJV for sanity check if generated YAML is OK |
82 | | - jsonschema2ts for typing store |
83 | | - |
84 | 36 | ### CSS flavor |
85 | | - - CSS |
| 37 | + - Plain CSS |
86 | 38 |
|
87 | | -### YAML syntax higlighting (TBD) |
88 | | - - prism.js |
89 | | - - highlight.js <- preferred by @sverhoeven, more downloads, more GH stars, more vue wrappers, can be themed to match UI framework |
90 | | - |
91 | | - |
92 | | -### Testing: |
93 | | - - Unit testing |
94 | | - - Jest (comes with coverage reporting?) |
95 | | - - e2e testing (TBD) |
96 | | - - WebdriverIO |
97 | | - - Storybook.js |
| 39 | +### YAML syntax higlighting |
| 40 | + - highlight.js |
98 | 41 |
|
99 | 42 | ### Linting: |
100 | 43 | - ESLint |
101 | | - - Prettier (Jesus: eslint is sufficient, eslint+prettier may be conflicting) |
102 | 44 | - StyleLint |
103 | 45 |
|
104 | 46 | ### Commit hooks |
105 | | - - GitHook |
106 | | - - Husky <- preferred by @sverhoeven, due to popularity and easy of maintenance (config easier to maintain then shell script) |
| 47 | + - Husky |
| 48 | + |
| 49 | +### Testing: |
| 50 | + - Unit testing |
| 51 | + - Jest |
107 | 52 |
|
108 | 53 | ### Artwork |
109 | | - - icons (TBD) |
110 | | - - material-design-icons |
111 | | - - font awesome (Jesus: use SVG) |
112 | | - - octicons (from GitHub) |
113 | | - - hero-icons (https://heroicons.com/) |
114 | | - - feather-icons (https://feathericons.com/) |
115 | | - - fonts (Jesus: don't use fonts, use system fonts) |
| 54 | + |
| 55 | + - icons |
| 56 | + Quasar support a few options (https://quasar.dev/vue-components/icon) |
| 57 | + - we chose ion-icons from quasar (https://ionic.io/ionicons) |
| 58 | + - fonts |
116 | 59 | - Roboto Condensed |
117 | 60 | - Roboto Mono |
118 | 61 |
|
119 | 62 | ## To be decided: |
| 63 | + |
| 64 | +### e2e testing (TBD) |
| 65 | +- WebdriverIO |
| 66 | +- Storybook.js |
| 67 | + |
| 68 | +### Schema validation (TBD) |
| 69 | + - AJV |
| 70 | + - JSON schema --> Typescript conversion |
| 71 | + |
| 72 | +@sverhoeven prefers to use both, |
| 73 | + AJV for sanity check if generated YAML is OK |
| 74 | + jsonschema2ts for typing store |
| 75 | + |
120 | 76 | ### Documentation |
| 77 | + |
121 | 78 | ### Code coverage |
| 79 | + |
0 commit comments