Service in Monorepo | SonarCloud |
---|---|
frontend | |
backend | |
doc-gen-service | |
backend-external |
Pay Transparency Reporting Tool is a webapp that employers use to generate a pdf report. The Gender equity - Pay transparency website has more information and a link to the tool.
- OpenShift and helm charts
- PostgreSQL and Prisma
- node.js
- Vue and Vuetify
- Vite
- jest, vitest, and playwright
- ESLint and Prettier
- SonarCloud
- Pull requests automatically create a temporary instance on OpenShift and are automatically removed when merged to main
- Unit tests, integration tests, and end-to-end test are automatically performed.
- SonarCloud scans
- Deploy to Test environment
- Deploy to Prod environment
- BC Gov VPN
- Keycloak and BCeID authorization
- Podman (or equivalent for running docker containers)
- Node.js
- Ports need to be available for the application to work locally
- 8081 frontend
- 3000 backend
- 3001 doc-gen-service
- 3002 backend-external
- 5432 postgres
-
Clone repo
-
Create .env for backend
-
(Optional) A VSCode workspace is provided in .vscode/fin-pay-transparency.code-workspace which can easily install npm packages and launch all services.
-
Install npm packages for each project in repo
npm -C backend install
npm -C backend-external install
npm -C doc-gen-service install
npm -C frontend install
-
Build and start the database container
podman-compose up --build -d database
-
Run the database migrations to create/update the database for this project
podman-compose up -d database-migrations
- The backend requires the doc-gen-service and the database docker container to be running.
- The backend-external requires the backend service to be running.
- The frontend requires the backend to be running in order to login.
npm -C backend run dev
npm -C backend-external run dev
npm -C doc-gen-service run dev
npm -C frontend run serve
All projects have unit tests and can be run with
npm run test
Only backend-external has integration tests. Requires that backend-external and backend services be running.
npm run test:integration
The frontend end-to-end test is performed by playwright.
First install playwright tools:
npx playwright install --with-deps
Then run the tests:
npm run e2e