Git Product home page Git Product logo

bcgov / nr-compliance-enforcement Goto Github PK

View Code? Open in Web Editor NEW
1.0 5.0 1.0 61.17 MB

A scalable solution that manages public complaints as well as investigative case files for multiple Compliance and Enforcement divisions across the natural resource sector.

License: Apache License 2.0

JavaScript 0.16% Dockerfile 0.26% TypeScript 88.65% HTML 0.15% SCSS 5.91% PLpgSQL 4.60% Smarty 0.27%
compliance enforcement env nr nrs cicd devops typescript

nr-compliance-enforcement's Introduction

Quality Gate Status Merge to Main Unit Tests and Analysis

Issues Pull Requests MIT License Lifecycle

Compliance and Enforcement: OpenShift, TypeScript and Postgres/PostGIS

Manages public complaints as well as investigative case files for multiple Compliance and Enforcement divisions across the natural resource sector.

Dev URLs: Test URL: https://nr-compliance-enforcement-test-frontend.apps.silver.devops.gov.bc.ca/ Prod URL: tbd

Pipelines are run using GitHub Actions.

Features:

  • Pull Request-based pipeline
  • Sandboxed development deployments
  • Gated production deployments
  • Container publishing (ghcr.io) and importing (OpenShift)
  • Security, vulnerability, infrastructure and container scan tools
  • Automatic Dependabot dependency patching with Pull Requests
  • Enforced code reviews and pipeline checks
  • Templates and setup documentation
  • Starter TypeScript application stack
  • Cypress e2e github action

Environments

The workflows are triggered via github actions, and allow the migration of the application through the dev, test, and production Openshift environments. The term "dev" is a Ministry Openshift naming standard, and can be thought of as a "delivery" environment.

Dev Environment

The Openshift dev environment is the environment in which the application is prepared and packaged for deployment. It is a staging environment where the latest code changes are integrated, compiled, and tested in Openshift to ensure that they are ready for deployment to the upper tier environments (test and prod). Several automated tests are performed here, which will help the code reviewer to verify that the application is behaving as expected, eliminating the need for the code reviewer to setup the application in their own environment.

Multiple sandboxed applications can be deployed here simultaneously, each associated with a pull request. This allows developers to verify that their changes are in a deployable state. The sandboxed application is deleted once migrated to test.

Test environment:

The test environment is where the software is tested thoroughly before deployment to production. It is designed to replicate the production environment as closely as possible and is used to run various types of tests such as unit tests, integration tests, performance tests, and acceptance tests. This environment helps ensure that the software meets the required quality standards and that it is stable and reliable.

Production environment:

The production environment is the live environment where the software is deployed and used by end-users. It is the final destination for the software and is where it will be accessed and used by customers. The production environment must be carefully managed and maintained to ensure the software remains available, stable, and secure.

In summary, the delivery environment is where software is prepared for deployment, the test environment is where software is tested to ensure it is reliable, and the production environment is where the software is deployed and used by end-users.

Workflows

An initial pull request will deploy the application to a sandboxed deployment environment in Openshift's dev namespace. There can be multiple instances of the application running in this environment, each related to different pull requests. Refering to the github actions page (https://github.com/bcgov/nr-compliance-enforcement/actions), developers can review the automated actions that are triggered by a pull request. Each additional commit to the same pull request will trigger additional workflow runs, each using the same sandboxed deployment environment dedicated to the individual pull request.

Each pull request will automatically create a comment on the pull request itself indicating how to access the URL of the sandboxed environment associated with the pull request. For example, clicking on a pull request will display something similar to the following:

Note the hyperlink named "Frontend". This will open up the application in the dev sandboxed environment.

Github protection rules have been setup to require an approval before a pull request is merged into main. Developers cannot approve their own pull request.

Approving the pull request will trigger a migration request to TEST. To complete the migration, an approved member of the team will need to review and approve the deployment.

Similarly, once deployed to test, there is an option to approve the migration to production.

Pull Request Opened

Runs on pull request submission. Also runs if new commits are made on existing pull request.

  • Provides safe, sandboxed deployment environments
  • Build action pushes to GitHub Container Registry (ghcr.io)
  • Build triggers select new builds vs reusing builds
  • Deployment includes curl checks and optional penetration tests
  • Other checks and updates as required
  • Cypress e2e test

Pull Request Closed

Runs on pull request close or merge.

  • Cleans up OpenShift objects/artifacts
  • Merge promotes successful build images to TEST

Merge to Main

Runs on merge to main branch.

  • Code scanning and reporting to GitHub Security overview
  • Zero-downtime* TEST deployment
  • Penetration tests on TEST deployment
  • Zero-downtime* PROD deployment.
  • Labels successful deployment images as PROD
  • Guarded migrations to test and production. Each require a review

* excludes database changes

Unit Tests

Runs on pull request submission or merge to main.

  • Unit tests (should include coverage)
  • Optionally, report results to Sonarcloud

Cypress Tests

Automated user interaction tests are executed on pull requests. The test is recorded as a video and can be downloaded by clicking the "cypress-videos" artifact (green arrow below). Note that this is only available on the summary of the pull request workflow (red arrow below).

Feedback

Please contribute your ideas! Issues and Pull Requests are appreciated.

Acknowledgements

This Action is provided courtesty of the Forestry Suite of Applications, part of the Government of British Columbia.

nr-compliance-enforcement's People

Contributors

afwilcox avatar barrfalk avatar cnesmithsalus avatar dependabot[bot] avatar dmitri-korin-bcps avatar gregorylavery avatar jeznorth avatar marqueone-ps avatar mishraomp avatar scarlett-truong avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

jeznorth

nr-compliance-enforcement's Issues

Lets use common phrasing

TL;DR ๐ŸŽ๏ธ

Teams are encouraged to favour modern inclusive phrasing both in their communication as well as in any source checked into their repositories. You'll find a table at the end of this text with preferred phrasing to socialize with your team.

Words Matter

We're aligning our development community to favour inclusive phrasing for common technical expressions. There is a table below that outlines the phrases that are being retired along with the preferred alternatives.

During your team scrum, technical meetings, documentation, the code you write, etc. use the inclusive phrasing from the table below. That's it - it really is that easy.

For the curious mind, the Public Service Agency (PSA) has published a guide describing how Words Matter in our daily communication. Its an insightful read and a good reminder to be curious and open minded.

What about the master branch?

The word "master" is not inherently bad or non-inclusive. For example people get a masters degree; become a master of their craft; or master a skill. It's generally when the word "master" is used along side the word "slave" that it becomes non-inclusive.

Some teams choose to use the word main for the default branch of a repo as opposed to the more commonly used master branch. While it's not required or recommended, your team is empowered to do what works for them. If you do rename the master branch consider using main so that we have consistency among the repos within our organization.

Preferred Phrasing

Non-Inclusive Inclusive
Whitelist => Allowlist
Blacklist => Denylist
Master / Slave => Leader / Follower; Primary / Standby; etc
Grandfathered => Legacy status
Sanity check => Quick check; Confidence check; etc
Dummy value => Placeholder value; Sample value; etc

Pro Tip ๐Ÿค“

This list is not comprehensive. If you're aware of other outdated nomenclature please create an issue (PR preferred) with your suggestion.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Warning

These dependencies are deprecated:

Datasource Name Replacement PR?
npm @types/faker Unavailable
npm @types/react-datepicker Unavailable
npm @types/react-leaflet Unavailable
npm @types/react-phone-number-input Unavailable
npm @types/redux-persist Unavailable
npm faker Available
npm react-leaflet-markercluster Unavailable

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update jest monorepo (@types/jest, jest)

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • fix(deps): replace dependency faker with @faker-js/faker ^5.5.3
  • chore(deps): update postgis/postgis:15-master docker digest to 47f4560
  • chore(deps): update registry.access.redhat.com/ubi8/nodejs-18-minimal docker digest to a62b321
  • chore(deps): update dependency @types/node to v18.19.39
  • chore(deps): update github actions all dependencies (aquasecurity/trivy-action, bcgov-nr/action-builder-ghcr)
  • fix(deps): update all non-major dependencies (@golevelup/ts-jest, caddy, cypress-delete-downloads-folder, flyway/flyway, make-fetch-happen, nats, passport, postgresql, registry.access.redhat.com/ubi8/nodejs-18-minimal, registry.access.redhat.com/ubi8/ubi-micro, ts-jest)
  • fix(deps): update dependency @swc/helpers to ^0.5.0
  • fix(deps): update dependency reflect-metadata to ^0.2.0
  • chore(deps): update dependency @tsconfig/node16 to v16
  • chore(deps): update dependency lint-staged to v15
  • chore(deps): update dependency prettier to v3
  • chore(deps): update dependency supertest to v7
  • chore(deps): update dependency typescript to v5
  • chore(deps): update github actions all dependencies to v4 (major) (actions/checkout, actions/upload-artifact)
  • fix(deps): update definitelytyped (major) (@types/faker, @types/node, @types/passport-jwt, @types/react-datepicker, @types/supertest, @types/uuid)
  • fix(deps): update dependency faker to v6
  • fix(deps): update dependency jsdom to v24
  • fix(deps): update dependency jwt-decode to v4
  • fix(deps): update dependency keycloak-js to v25
  • fix(deps): update dependency make-fetch-happen to v13
  • fix(deps): update dependency npm to v10
  • fix(deps): update dependency react-datepicker to v7
  • fix(deps): update dependency react-icons to v5
  • fix(deps): update dependency react-is to v18
  • fix(deps): update dependency react-toastify to v10
  • fix(deps): update dependency rimraf to v6
  • fix(deps): update dependency swagger-ui-express to v5
  • fix(deps): update dependency urlpattern-polyfill to v10
  • fix(deps): update dependency uuid to v10
  • fix(deps): update dependency web-vitals to v4
  • fix(deps): update nestjs (major) (@nestjs/cli, @nestjs/common, @nestjs/config, @nestjs/core, @nestjs/passport, @nestjs/platform-express, @nestjs/schematics, @nestjs/swagger, @nestjs/testing, @nestjs/typeorm)
  • fix(deps): update node.js to v22
  • fix(deps): update redux (major) (@reduxjs/toolkit, react-redux)
  • fix(deps): update testing-library (major) (@testing-library/jest-dom, @testing-library/react)
  • chore(deps): lock file maintenance
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Detected dependencies

docker-compose
docker-compose.yml
  • flyway/flyway 10-alpine
  • registry.access.redhat.com/ubi8/nodejs-18-minimal sha256:dfaa7bbc56a7fb02046d2e89e74a65693c522d8e25d4f318c676f0ad15e67168
  • registry.access.redhat.com/ubi8/nodejs-18-minimal sha256:dfaa7bbc56a7fb02046d2e89e74a65693c522d8e25d4f318c676f0ad15e67168
  • registry.access.redhat.com/ubi8/nodejs-18-minimal sha256:dfaa7bbc56a7fb02046d2e89e74a65693c522d8e25d4f318c676f0ad15e67168
dockerfile
backend/Dockerfile
  • registry.access.redhat.com/ubi8/nodejs-18-minimal 1-33.1679485315@sha256:74af9dc2b620022c77fcd712b811f64a03c1444ff1e9b9596a242b2edf3cf96f
  • registry.access.redhat.com/ubi8/ubi-micro 8.7-6@sha256:af0a83c2fb7db1b63a5655c85f3f37d32b114443b8969fd8a40d47429cd87016
database/Dockerfile
  • postgis/postgis 15-master@sha256:11d424c70a9bfbec79fcfcd6fdacfefa9895c790c45146915f06bbb5403004fa
database/postgis/Dockerfile
  • postgis/postgis 15-master@sha256:11d424c70a9bfbec79fcfcd6fdacfefa9895c790c45146915f06bbb5403004fa
frontend/Dockerfile
  • node 19-bullseye
  • caddy 2.7.6-alpine
migrations/Dockerfile
  • flyway/flyway 9.10-alpine
webeoc/Dockerfile
  • registry.access.redhat.com/ubi8/nodejs-18-minimal 1-33.1679485315@sha256:74af9dc2b620022c77fcd712b811f64a03c1444ff1e9b9596a242b2edf3cf96f
  • registry.access.redhat.com/ubi8/ubi-micro 8.7-6@sha256:af0a83c2fb7db1b63a5655c85f3f37d32b114443b8969fd8a40d47429cd87016
github-actions
.github/workflows/.tests.yml
  • actions/checkout v3
  • cypress-io/github-action v5
  • actions/upload-artifact v3
.github/workflows/analysis.yml
  • bcgov-nr/action-test-and-analyse v1.2.1
  • actions/checkout v4
  • aquasecurity/trivy-action 0.23.0
  • github/codeql-action v3
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
.github/workflows/merge-main.yml
  • bcgov-nr/action-get-pr v0.0.1
  • bcgov/quickstart-openshift-helpers v0.5.0
  • bcgov/quickstart-openshift-helpers v0.5.0
  • shrink/actions-docker-registry-tag v4
  • ubuntu 22.04
  • ubuntu 22.04
.github/workflows/pr-close.yml
  • bcgov/quickstart-openshift-helpers v0.5.0
.github/workflows/pr-open.yml
  • bcgov-nr/action-builder-ghcr v2.0.2
  • bcgov/quickstart-openshift-helpers v0.5.0
  • ubuntu 22.04
  • ubuntu 22.04
.github/workflows/pr-validate.yml
  • bcgov/quickstart-openshift-helpers v0.5.0
  • ubuntu 22.04
.github/workflows/scheduled.yml
  • actions/checkout v4
  • flyway/flyway 10
  • JamesIves/github-pages-deploy-action v4
  • zaproxy/action-full-scan v0.10.0
  • zaproxy/action-full-scan v0.10.0
  • postgis/postgis 16-3.4
  • ubuntu 22.04
helm-values
charts/app/values.yaml
  • ghcr.io/bcgov/nr-containers/bitnami/postgresql 15.7.0
helmv3
charts/app/Chart.yaml
  • postgresql 15.5.13
  • nats 1.1.12
npm
backend/package.json
  • @automapper/classes ^8.7.7
  • @automapper/core ^8.7.7
  • @automapper/nestjs ^8.7.7
  • @automapper/pojos ^8.7.7
  • @automapper/types ^6.3.1
  • @golevelup/ts-jest ^0.4.0
  • @nestjs/axios ^3.0.0
  • @nestjs/cli ^9.3.0
  • @nestjs/common ^9.2.1
  • @nestjs/config ^2.2.0
  • @nestjs/core ^9.2.1
  • @nestjs/jwt ^10.0.3
  • @nestjs/passport ^9.0.3
  • @nestjs/platform-express ^9.2.1
  • @nestjs/schedule ^4.0.2
  • @nestjs/schematics ^9.0.4
  • @nestjs/swagger ^6.1.4
  • @nestjs/testing ^9.2.1
  • @nestjs/typeorm ^9.0.1
  • axios ^1.6.0
  • cron ^3.1.7
  • date-fns ^3.6.0
  • date-fns-tz ^3.1.3
  • dotenv ^16.0.1
  • escape-html ^1.0.3
  • form-data ^4.0.0
  • geojson ^0.5.0
  • jest-mock ^29.6.1
  • jwks-rsa ^3.0.1
  • linq-to-typescript ^11.0.0
  • nest-winston ^1.9.2
  • passport ^0.6.0
  • passport-jwt ^4.0.1
  • pg ^8.7.3
  • react-phone-number-input ^3.4.3
  • reflect-metadata ^0.1.13
  • rimraf ^4.0.0
  • rxjs ^7.8.0
  • swagger-ui-express ^4.6.0
  • typeorm ^0.3.14
  • winston ^3.9.0
  • @types/express ^4.17.15
  • @types/geojson ^7946.0.10
  • @types/jest ^29.5.1
  • @types/node ^18.11.18
  • @types/passport-jwt ^3.0.8
  • @types/supertest ^2.0.11
  • istanbul-badges-readme ^1.8.4
  • jest ^29.7.0
  • jest-badges ^0.1.3
  • jest-fetch-mock ^3.0.3
  • jest-sonar-reporter ^2.0.0
  • lint-staged ^13.1.0
  • prettier ^2.8.3
  • source-map-support ^0.5.20
  • supertest ^6.3.3
  • ts-jest ^29.1.1
  • ts-loader ^9.4.2
  • ts-node ^10.3.0
  • tsconfig-paths ^4.1.2
  • typescript ^4.9.4
frontend/package.json
  • @faker-js/faker ^8.0.2
  • @fortawesome/fontawesome-svg-core ^6.4.2
  • @fortawesome/free-regular-svg-icons ^6.4.2
  • @fortawesome/free-solid-svg-icons ^6.4.2
  • @fortawesome/react-fontawesome ^0.2.0
  • @popperjs/core ^2.11.7
  • @react-aria/ssr ^3.6.0
  • @reduxjs/toolkit ^1.8.1
  • @restart/hooks ^0.4.9
  • @restart/ui ^1.6.5
  • @swc/helpers ^0.4.14
  • @testing-library/jest-dom ^5.16.5
  • @testing-library/react ^14.0.0
  • @testing-library/user-event ^14.1.1
  • @types/faker ^5.5.9
  • @types/leaflet ^1.9.3
  • @types/lodash ^4.14.195
  • @types/node ^18.0.0
  • @types/omggif ^1.0.5
  • @types/react ^18.0.6
  • @types/react-datepicker ^4.11.2
  • @types/react-dom ^18.0.2
  • @types/react-leaflet ^3.0.0
  • @types/react-leaflet-markercluster ^3.0.1
  • @types/react-phone-number-input ^3.0.14
  • @types/react-transition-group ^4.4.6
  • @types/redux-persist ^4.3.1
  • @types/uuid ^9.0.8
  • @types/warning ^3.0.0
  • assert ^2.1.0
  • axios ^1.6.0
  • bootstrap ^5.2.3
  • bootstrap-icons ^1.10.5
  • chart.js ^4.3.0
  • child_process ^1.0.2
  • classnames ^2.3.2
  • date-fns ^3.6.0
  • dequal ^2.0.3
  • dom-helpers ^5.2.1
  • dotenv ^16.0.3
  • faker ^5.5.3
  • fs ^0.0.1-security
  • immutable ^4.3.0
  • imtool ^1.2.1
  • install ^0.13.0
  • invariant ^2.2.4
  • jest-jasmine2 ^29.7.0
  • jsdom ^21.0.0
  • jwt-decode ^3.1.2
  • keycloak-js ^21.0.0
  • leaflet ^1.9.4
  • leaflet-gesture-handling ^1.2.2
  • leaflet.markercluster ^1.5.3
  • linq-to-typescript ^11.0.0
  • lodash ^4.17.21
  • make-fetch-happen 11.0.3
  • node ^21.6.1
  • npm ^9.8.1
  • omggif ^1.0.10
  • os-browserify ^0.3.0
  • path-browserify ^1.0.1
  • prop-types-extra ^1.1.1
  • pure-react-carousel ^1.30.1
  • react ^18.2.0
  • react-bootstrap ^2.7.4
  • react-chartjs-2 ^5.2.0
  • react-collapsed ^4.0.2
  • react-collapsible ^2.10.0
  • react-datepicker ^4.14.0
  • react-dom ^18.2.0
  • react-icons ^4.2.0
  • react-is ^16.13.1
  • react-leaflet ^4.2.1
  • react-leaflet-cluster ^2.1.0
  • react-leaflet-markercluster ^3.0.0-rc1
  • react-lifecycles-compat ^3.0.4
  • react-phone-number-input ^3.3.6
  • react-redux ^8.0.1
  • react-router-dom ^6.3.0
  • react-scripts ^5.0.1
  • react-select ^5.7.3
  • react-test-renderer ^18.2.0
  • react-toastify ^9.1.3
  • react-tooltip ^5.23.0
  • react-transition-group ^4.4.5
  • redux-persist ^6.0.0
  • stream-browserify ^3.0.0
  • typescript *
  • uncontrollable ^8.0.2
  • urlpattern-polyfill ^9.0.0
  • util ^0.12.5
  • uuid ^9.0.1
  • warning ^4.0.3
  • web-vitals ^3.0.0
  • @tsconfig/node16 ^1.0.3
  • @types/jest ^29.5.1
  • @types/react-test-renderer ^18.0.0
  • cy-verify-downloads ^0.2.4
  • cypress ^13.6.1
  • cypress-delete-downloads-folder ^0.0.5
  • jest ^29.5.0
  • playwright-webkit ^1.27.1
  • prettier ^3.0.3
  • sass ^1.62.1
  • ts-jest ^29.1.0
  • typescript ^5.0.4
  • typescript ^5.0.4
package.json
  • @types/lodash ^4.14.197
  • geojson ^0.5.0
  • imtool ^1.2.1
  • lodash ^4.17.21
  • react-datepicker ^4.14.0
webeoc/package.json
  • @nestjs/axios ^3.0.1
  • @nestjs/cli ^9.0.0
  • @nestjs/common ^9.0.0
  • @nestjs/core ^9.0.0
  • @nestjs/platform-express ^9.0.0
  • @nestjs/schedule ^4.0.0
  • cron ^3.1.6
  • date-fns ^3.6.0
  • date-fns-tz ^3.1.3
  • dotenv ^16.3.1
  • nats ^2.23.0
  • reflect-metadata ^0.1.13
  • rxjs ^7.2.0
  • @nestjs/schematics ^9.0.0
  • @nestjs/testing ^9.0.0
  • @types/express ^4.17.13
  • @types/jest 29.5.0
  • @types/node 18.15.11
  • @types/supertest ^2.0.11
  • jest 29.5.0
  • prettier ^2.3.2
  • source-map-support ^0.5.20
  • supertest ^6.1.3
  • ts-jest 29.0.5
  • ts-loader ^9.2.3
  • ts-node ^10.0.0
  • tsconfig-paths 4.2.0
  • typescript ^4.7.4

  • Check this box to trigger a request for Renovate to run again on this repository

test

Describe the task
A clear and concise description of what the task is.

Acceptance Criteria

  • first
  • second
  • third

Additional context

  • Add any other context about the task here.
  • Or here

ZAP: name_unset

View the following link to download the report.
RunnerID:8806409114


ZAP is supported by the Crash Override Open Source Fellowship

test epic

As a (User Type/Persona) I want (Feature/enhancement) So That (Value, why is this wanted, what is the user trying to accomplish)

Additional Context

  • enter text here
  • enter text here

Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Add missing topics

TL;DR

Topics greatly improve the discoverability of repos; please add the short code from the table below to the topics of your repo so that ministries can use GitHub's search to find out what repos belong to them and other visitors can find useful content (and reuse it!).

Why Topic

In short order we'll add our 800th repo. This large number clearly demonstrates the success of using GitHub and our Open Source initiative. This huge success means it's critical that we work to make our content as discoverable as possible. Through discoverability, we promote code reuse across a large decentralized organization like the Government of British Columbia as well as allow ministries to find the repos they own.

What to do

Below is a table of abbreviation a.k.a short codes for each ministry; they're the ones used in all @gov.bc.ca email addresses. Please add the short codes of the ministry or organization that "owns" this repo as a topic.

add a topic

That's it, you're done!!!

How to use

Once topics are added, you can use them in GitHub's search. For example, enter something like org:bcgov topic:citz to find all the repos that belong to Citizens' Services. You can refine this search by adding key words specific to a subject you're interested in. To learn more about searching through repos check out GitHub's doc on searching.

Pro Tip ๐Ÿค“

  • If your org is not in the list below, or the table contains errors, please create an issue here.

  • While you're doing this, add additional topics that would help someone searching for "something". These can be the language used javascript or R; something like opendata or data for data only repos; or any other key words that are useful.

  • Add a meaningful description to your repo. This is hugely valuable to people looking through our repositories.

  • If your application is live, add the production URL.

Ministry Short Codes

Short Code Organization Name
AEST Advanced Education, Skills & Training
AGRI Agriculture
ALC Agriculture Land Commission
AG Attorney General
MCF Children & Family Development
CITZ Citizens' Services
DBC Destination BC
EMBC Emergency Management BC
EAO Environmental Assessment Office
EDUC Education
EMPR Energy, Mines & Petroleum Resources
ENV Environment & Climate Change Strategy
FIN Finance
FLNR Forests, Lands, Natural Resource Operations & Rural Development
HLTH Health
IRR Indigenous Relations & Reconciliation
JEDC Jobs, Economic Development & Competitiveness
LBR Labour Policy & Legislation
LDB BC Liquor Distribution Branch
MMHA Mental Health & Addictions
MAH Municipal Affairs & Housing
BCPC Pension Corporation
PSA Public Service Agency
PSSG Public Safety and Solicitor General
SDPR Social Development & Poverty Reduction
TCA Tourism, Arts & Culture
TRAN Transportation & Infrastructure

NOTE See an error or omission? Please create an issue here to get it remedied.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.