- users in home page can see list of sectons starting from top: hero banner, recommended jobs, latest jobs, hot jobs
- users in home page can view 10 jobs at max in sections recommended jobs, latest jobs, hot jobs
- users in home page can navigate to job full-list page from corresponding jobs sections
- users in home page can navigate to job details page from individual job card
- users in job full-list page can lazy load jobs with infinite scroll
- users in job full-list page can navigate to job details page from individual job card
- users in job details page can see list of sectons starting from top: hero banner, job title, date, description, TBC
- users in job details page can sign up a job
- support desktop and mainstream mobile devices
- node 16.13.0 / npm 8.1.0 / typescript 4.5.2
- vite 2.6.4
- vue: 3.2.16
- GraphQL
- TailwindCSS w/ JIT
- Vue3 w/ Composition API
- Vite
- HeadlessUI
- Storybook
- Cypress, Nightwatch
- [TODO] Server-side Rendering (SSR)
- [TODO] Static Site Generation (SSG)
yarn
yarn dev
yarn test
yarn test:e2e
- Extracting components
- JIT
- purge
- dark mode
- font-families (code:
font-sc
) - headlessui
https://v3.vuejs.org/guide/composition-api-introduction.html#why-composition-api
https://v3.vuejs.org/api/sfc-script-setup.html#basic-syntax
code example
TBC
https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
https://next.router.vuejs.org/
nested named views
https://next.router.vuejs.org/guide/essentials/named-views.html#nested-named-views
https://v3.vuejs.org/cookbook/editable-svg-icons.html#base-example
https://github.com/sdras/vue-sample-svg-icons/
https://sdras.github.io/vue-sample-svg-icons/
https://v3.vuejs.org/api/built-in-components.html#teleport
https://villus.logaretm.com/guide/typescript-codgen
https://www.graphql-code-generator.com/docs/getting-started/installation
https://the-guild.dev/blog/graphql-codegen-best-practices
yarn generate
https://altair.sirmuel.design/
TODO with jest
yarn test
yarn test:e2e
https://eslint.vuejs.org/rules https://stylelint.io/user-guide/get-started/
npx husky-init && yarn
yarn lint:script
yarn lint:script --fix
yarn prettier -w -u .
yarn lint:style
"stylelint": "^13.13.1",
"stylelint-config-standard": "^22.0.0",
"stylelint-scss": "^3.21.0",
// lang/index
export const i18n = createI18n<[MessageSchema], AvailableLocales>({
locale: 'en-US',
messages: {
[Locale.en]: enUS,
[Locale.zh]: zh,
},
})
https://miyauchi.dev/posts/vite-vue3-typescript/
- Tailwindcss w/ JIT
- unit/component test [yarn test]
- integration test - cypress [yarn test:ci]
- Linter / commit hook
- GraphQL client setup
- CICD (Github Actions)
- Deploy to staging
- Storybook
- i18n
- composition API (https://v3.vuejs.org/guide/composition-api-introduction.html#why-composition-api)
- Customize font
- SSR
- SSG
- PWA