The Ministry of Energy, Mines, and Low Carbon Innovation (EMLI), Ministry of Environment and Climate Change Strategy (ENV), and Environmental Assessment Office (EAO) have collaborated to make information on the Province’s oversight of major mines in British Columbia accessible.
The application is being developed as an open source solution.
- Getting Started
- Running tests
- Deployment
- Architecture
- How to Contribute
- License
- Additional Documentation
To get a local copy up and running follow these steps.
Git commit signing is required for commits. How to setup git commit signing
Software Requirements
- Node 20 must be used.
- @angular/cli should be installed.
- Docker should be installed.
To run/develop using docker:
- Set the KEYCLOAK_CLIENT_SECRET env in docker-compose
- Run
docker compose up
To run the frontend locally:
- Install angular/cli
npm i -g @angular/cli
cd bcmi
npm install
npm run start
To run Strapi locally:
- create an .env file in the cms folder using the .env.template, find secrets in openshift
cd cms
npm install
npm run develop
- Login to strapi admin at http://localhost:1337/admin
- See graphql queries at http://localhost:1337/graphql (ensure the strappi content has the 'find' role enabled)
Set up via Jest.
- Run
npm test
to execute the unit tests.
Set up with BDDStack and BrowserStack. Modify GebConfig.groovy
to customise your preferred browser. Configured remotes, confirmed to work with current tests include Chrome, Firefox, and Edge. Internet explorer and Safari are available as well, but tests fail due to driver compatiblity with current tests.
Open Source projects have free access to Browserstack Live and Automate, for up to 5 team members. To run tests with Browserstack you need to set the following environemnt variables:
- BROWSERSTACK_USERNAME
- BROWSERSTACK_TOKEN
- DEBUG_MODE (true or false)
-
Run
ng run e2e
to automatically start the application locally and execute the end-to-end tests against a headless Chrome.OR
-
Download BrowserStack binary set
BASEURL
to your local application address, and run./gradlew remoteChrome
Note, e2e functional testing requires Java 10+.
- Determine the URL at which the application is running.
- Update the baseurl to the URL from step 1:
- Either modify the GebConfig.groovy baseUrl directly.
- Or set a
BASEURL
environment variable
- See
functional-tests/readme.md
for how to execute the tests.
See the BDDStack Wiki for more information.
BCMI is built using TypeScript and Angular for the front end, with Jest for testing. It employs PostgreSQL for database management and Node.js for the server, alongside Bootstrap and jQuery for design and interactivity. Apollo & GraphQL facilitates data querying, while Strapi acts as the headless CMS.
BCMI uses the quickstart openshift template and is deployed using github actions and helm charts found in the .github/workflows
and charts
folders.
When a PR is opened unique pr deployment is deployed to the dev environment. Once the dev is satisfied with the PR and it is merged the changes are automatically deployed to the test environment for user testing. Once ready the changes can be deployed to production by manually triggering the Deploy to production
workflow.
Feel free to create pull requests from the default "master" branch, click here to create one automatically: https://github.com/bcgov/mem-mmti-public/pull/new/master
Government employees, the public and members of the private sector are encouraged to contribute. Check the BC Developer Exchange website, where paid opportunities to build features are posted. Please read and follow our Code of Conduct.
All contributors retain original copyright, but are granting a world-wide, royalty-free, perpetual, irrevocable, non-exclusive, transferable license to all users. This project is covered by an Apache v2.0 license.
Code released under the Apache License, Version 2.0.
More documentation for the repository can be found in the following places