-
Notifications
You must be signed in to change notification settings - Fork 26
Description
@xJREB I was not able to create a project so I'm dumping everything into this issue for now.
@Efode-r2d2 I have pushed a branch https://github.com/adr/adr-manager/tree/vue3 which is an orphan branch. For now, I have copied most of the existing readme and the license into it. @xJREB I would like to add a line Copyright (c) 2024 Novo Nordisk A/S
to the license file once we contribute something meaningful.
I also added a basic docker compose setup which makes it easier to run the frontend and pocketbase together for local development.
Apart from the upgrade to Vue 3, reorganizing the codebase and using TypeScript will be the biggest changes. I would like to change the project structure to something that is inspired by hexagonal architecture and a bit of domain-driven design (DDD). Please see the figure below for a first draft of what I mean. The use of interfaces and concrete implementations is will supported by TypeScript.
Since there is no project, I didn't see the point of making issues, but the below task list should be converted to individual issues.
Task List
- Rewrite application in Vue 3
- migrate old settings and code where it makes sense
- use composition API
- use single file components (SFCs)
- use TypeScript https://vuejs.org/guide/typescript/overview.html
- strictly separate stateful containers and presentational components
- apply hexagonal architecture code layers
- enforce dependencies using https://github.com/sverweij/dependency-cruiser
- enable configuration via environment
- make auth service dependencies optional (firebase, pocketbase, msal)
- make repo services dependencies optional (github, gitlab)
Decisions
A number of decisions have already been taken just by setting up the project and should be converted to ADRs:
- Vue 3
- Use
create-vue
- TypeScript
- vite
- vitest
- pinia
- cypress
- eslint
- prettier
- add editorconfig
- add Docker
- use pocketbase for local development