Hosting Views

MyDataHelps views are web pages/applications that must be hosted on an external web server. This article describes some hosting options and best practices.

Starter Kit

The MyDataHelpsStarterKit is a React web application template that you can clone/fork to accelerate your custom view development. It supports best practices using the architecture described in CI/CD Using GitHub and Amplify.

The starter kit includes:

To use the starter kit, just copy, clone, or fork the repository in GitHub and follow the instructions.

Best Practices

MyDataHelps views can be hosted on any web server. Whatever platform you use, we strongly suggest that you follow these best practices in order to maintain project stability.

For an example of a complete architecture leveraging these suggestions, see CI/CD Using GitHub and Amplify.

Source Control

Your view’s source code and web pages should be managed in a version control system such as GitHub. This gives you a revision history, the ability to revert changes, easier collaboration, and many other benefits.

Within your version control system, you will generally want to maintain separate branches for testing and production. This allows you to update and test your code (on the test branch) without affecting your real users in your live project.

Continuous Integration and Delivery

Manually deploying your view’s code/pages to your server can be tedious and error-prone. A Continuous Integration and Delivery (CI/CD) pipeline can automate this process. Changes made in your source control repository will be automatically built and deployed to your server.

For added stability, you can use two separate CI/CD pipelines–one for testing and one for production. Each is tied to their respective branches in your source control system, and has their own website and URL.

Project Implementation

Just as you should have two separate branches in your source control system for testing and production, we recommend utilizing two separate MyDataHelps projects within your organization to support healthy development:

  • A test project (e.g., “Sleep Study Dry Run”), containing only fake/test participants, utilizing the test URL from your CI/CD pipeline.
  • A production project (e.g., “Sleep Study Live”) containing the real participants, utilizing the production URL from your CI/CD pipeline.

Typically you would begin with the test version of the project for initial development and testing. When ready to go live, you can:

  1. Copy the test project to create the production project. (See Copying Projects. for details.)
  2. Promote the code in GitHub from the test branch to the production branch.
  3. Update the production project to utilize the production URL for the custom view.

This architecture will also help you test surveys, schedules, and segments. After launch, you can make changes to the test project, test them internally, and then promote those changes to the Production project. This avoids unnecessary risk and instability for participant experience.

CI/CD Using Amplify and GitHub

This section describes the architecture recommended by CareEvolution for managing your views. It implements the best practices described above through a CI/CD pipeline using GitHub for source control and AWS Amplify for hosting.

Should you have any questions about this architecture, or difficulty setting it up for your views, please contact us.

GitHub

A GitHub repository stores the web pages and source code for the view. Within the repository, there are two branches:

  • main (for testing)
  • prod (for production)

Initial development is done on the main branch. When testing is complete, code can be promoted (merged) to the prod branch.

Should you need to modify the code later (to fix something or add a new feature), you would do that on the main branch. This leaves the production project untouched and stable. Only after internal testing would you once again promote the code to prod.

Amplify

AWS Amplify is a cloud hosting service. In this architecture, there are Amplify sites–one for testing and one for production. During the Amplify setup process, you can use its GitHub integration to connect the test site to the main branch and the production site to the prod branch.

Whenever you make a commit in GitHub, Amplify will automatically build and deploy that code to the appropriate Amplify site. This process takes just a few minutes.

The test site and production site will have their own individual URLs. By default, Amplify sites are given an auto-generated URL like https://prod-ab12345.amplifyapp.com. You can optionally configure Amplify to use your own custom domain.

Project Implementation

As mentioned in the best practices, we suggest having two separate MyDataHelps projects–one for testing and one for production. The test project will utilize the URL from the Amplify test site in its view configuration, while the production project uses the production URL.