IPR is part of the platform for oncogenomic reporting and interpretation.
The IPR client is designed to consume API data from IPR's API. The primary function is the production and management of various reports.
This project only includes the report functionality. Tracking and biopsy input are available in the IPR-Tracking application.
The client utilizes the React web framework. The UI library used is Material-UI (MUI) for React.
Before running the client, the npm dependencies need to be installed:
npm install
A dev version of the client can be run using:
npm start
Dev in the above example can also be replaced by local or prod to run againt those APIs (local would be your own API instance).
Local environment will map API's to the machine's IP address and is meant to be used in parallel with a locally running API server. After starting, the local web server will watch for changes on any files in the app and rebuild the affected areas, then trigger the client (if open in browser) to reload.
The development environment maps API calls to the iprdev-api.bcgsc.ca API server that uses the separate development database. This client is built automatically by the Bamboo CI server upon merging or committing/pushing to development branch on the Bitbucket server.
The production environment maps API calls to the ipr-api.bcgsc.ca API server and uses the production database. This is built automatically by the Bamboo CI upon approving a PR merge onto the production branch.
Other build options include npm run build
. This will create the static files in the dist directory, but not
launch the local dev server.
The app directory contains all of the application logic.
components
- Common components used across the applicationviews
- Page views which can be routed toservices
- React helper modulesstyles
- General style related files and variablesstatics
- Files and images not expected to changeutils
- Short helper functionshooks
- Custom React hookscontext
- React contexts
A demo site is available at https://pori-demo.bcgsc.ca
Contributions are welcome! Before doing so, please open an issue with the feature that would be added. In addition, make sure that the code that is being added is linted using the rules in our .eslintrc file.