HealthPro is being developed to facilitate in-person enrollment and other operations of the All of Us Research Program. We are developing this project in the open, and publishing the code with an open-source license, to share knowledge and provide insight and sample code for the community. We welcome your feedback! Please send any security concerns to security@pmi-ops.org, and feel free to file other issues via GitHub. Please note that we do not plan to incorporate external code contributions at this time, given that HealthPro exists to meet the specific operational needs of the All of Us Research Program.
Prerequisites:
- Google Cloud SDK
- Follow platform-specific instructions for downloading and installing the Google Cloud SDK
- NOTE: For WSL, use the generic Linux directions and the tar.gz file, NOT the apt-get option for Ubuntu. Gcloud has a built-in package manager that doesn't work if it's installed through apt.
- Run the
install.sh
command so thatgcloud
is available from your path (for Mac and WSL) - Run
gcloud init
- When asked for your "authorization code", sign into Google with your PMI-OPS account
- When asked to "pick cloud project to use", enter
pmi-hpo-dev
- Install additional gcloud components:
gcloud components install cloud-datastore-emulator
gcloud components install cloud_sql_proxy
gcloud components install app-engine-php
NOTE: This is not available in WSL and may not be required
- Follow platform-specific instructions for downloading and installing the Google Cloud SDK
- NodeJS (latest LTS should be fine)
- MySQL (select version 5.7 which is used by Google Cloud SQL)
- Composer
- git-secrets
- Symfony CLI
- Docker
Install PHP dependencies via Composer:
composer install
Install front end assets and build tooling via NPM:
npm install
Compile assets using Webpack Encore and recompile on the fly as assets change:
npm run watch
Run Docker containers
docker compose up
Important: Install and use git-secrets
to avoid exposing API keys and certificates by screening commits for matched strings. After installing that utility, run the script below to configure the hooks for this project.
./bin/installHooks
Configure your local development parameters by copying the dev_config/config.yml.dist
file to dev_config/config.yml
. Edit config.yml
as needed. This file is .gitignore'd. See comments in the config.yml.dist
file for more details.
Create a new MySQL for this application. Configure the MySQL connection in config.yml
.
Then, run bin/console doctine:migrations:migrate
to build your local database.
Then, run bin/dx bin/console doctrine:migrations:migrate
to execute the necessary Doctrine migrations.
(bin/dx
is a convenience wrapper for executing a command inside the Docker web container. You can also run bin/dx bash
to open a shell into the container.)
To create security approval comment
./bin/console pmi:jira --comment=approval
To attach deploy output
./bin/console pmi:jira --comment=file