$ npm install
$ npm run serve
$ npm run build
$ npm run test:unit
npm run test:e2e
npm run lint
- Simple UI with Bulma framework
- Products crud that support uploading product images
- User register/login with JWT
- Simple validation
- State management using Vuex
-
ApiService
to globally support interceptors to add headers, retrying requests and handle API errors. -
EventBusService
to require authentication if access token is invalid or missing -
TokenService
to encapsulate the storage of the access token to provide low-coupling, more flexibility, and testability - Architectural designs: MVC, Modular and Atomic
- Refreshing token mechanism with
HttpInterceptorService
to retry the API request again without generating a new token - Single point of app configuration management
config.js
that can support different environments - Unit tests with Jest. Check productList.spec.js and productAdd.spec.js
- Integration test with Cypress. Check userAuth.e2e.spec.js
- Coverage with Codecov
- Linters
- Semantic releasing to manage package versions and generate changelog documentation
- CICD Pipeline with Github actions. It checks npm audit, lint, run tests, upload to Codecov, deploy, and semantic release
- Conventional commit messages with Git-cz and Husky