Technologies Overview - bcgov/SIMS GitHub Wiki
Frontend
Please find below some references to the main technologies being used on the application Frontend.
- Typescript: https://www.typescriptlang.org
- Vuejs: https://v3.vuejs.org
- Vuetify: https://vuetifyjs.com
- Form.io: https://help.form.io/master/overview
- PrimeVue: https://www.primefaces.org/primevue (used mainly for data tables, intended to be fully replaced by Vuetify once Vuetify is ready).
Backend
A decision was made to use technologies based on Node for the backend due to the large adoption of BC Gov projects, alongside Typescript. On top of Node, the project is using the Nestjs framework because it provides a box set of patterns and good practices that could be used as a great starting point, which means that, if we need a solution for a particular problem we can take a look first on Nestjs docs to ensure that it was not already being solved by the framework.
Please find below some references to the main technologies being used on the application backend.
- Typescript: https://www.typescriptlang.org
- Node: https://nodejs.org/en
- Nestjs: https://docs.nestjs.com
- TypeORM: https://typeorm.io
- Camunda: https://camunda.com
- Openshift: https://www.redhat.com/en/technologies/cloud-computing/openshift
Testing
- jest: https://jestjs.io/docs/getting-started
- supertest: https://github.com/ladjs/supertest
CI/CD
- GitHub Actions: https://docs.github.com/en/actions
Database
A decision was made to use PostgreSQL as the main database for the project due to the large adoption of BC Gov projects. Alongside PostgreSQL, Patroni was adopted to provide a high availability database support.
Please find below some references to the main database-related technologies being used on the application backend.
- PostgreSQL: https://www.postgresql.org
- Patroni: https://patroni.readthedocs.io/en/latest
- Redis (Queue/caching): https://redis.io