Skip to content

uncharted-aske/HMI

Repository files navigation

ASKE Uncharted HMI

client

Uncharted's Human Machine Interface for the DARPA ASKE program is designed to support visual exploration, curation, construction and execution of meta-models in a number of scientific domains.

Setup

yarn install

A .env file containing environment variables necessary for the application's operation must be placed under ./client/. The repository contains a template .env file containing all the keys the application expects with dummy values. The fully populated .env file must not be be pushed to the repository.

Please duplicate the ./client/.env file into ./client/.env.local for local development. .env.local has been added to the .gitignore to avoid unintentional upload of the environment variables.

Docker Compose

The client's docker image requires configuration via environment files. The environment files that are required are ./client/.env.nginx and ./client/.env.dist. Contact Uncharted Software for default configuration parameters.

Start docker compose:

docker-compose up --build

Navigate to http://localhost/#/.

Deployment

Contact Uncharted Software for deployment instructions.

Development

PR review process

Writing a good PR description helps the reviewer to understand what you have done and how to review it. Below, we describe a PR description template to follow. Sections with a * are considered a must-have.

  • What *: explain the changes you've made. It doesn't need to be fancy or technical, just explicit prose on the change. Reference a ticket in your issue if appropriate, but by all means, don't just reference the ticket.
  • Why *: explain the engineering goal this change achieves but also some higher-level goal that is satisfied.
  • How *: brief explanation of the approach taken and design decisions.
  • Testing *: explain the steps to test this change and let the reviewer also know if some conditions or edge cases were not tested, why they weren't tested, and any associated risks.
  • Screenshots : this applies to UI-related tasks. A simple screenshot of the before and after helps the reviewer to understand the current state vs the development state.
  • Anything else: you might want to call out challenges, technical debts, etc.

Example of a PR description ref:

  • What *: I've added support for authentication to implement Key Result 2 of OKR1. It includes model, table, controller and test. For more background, see ticket X.
  • Why *: These changes complete the user login and account creation experience. See #JIRA-123 for more information.
  • How *: This includes a migration, model and controller for user authentication. I'm using Devise to do the heavy lifting. I ran Devise migrations and those are included here.
  • Testing *: I've added coverage for testing all new methods. I used Faker for a few random user emails and names.
  • Screenshots : 0
  • Anything else: Let's consider using a 3rd party authentication provider for this, to offload MFA and other considerations as they arise and as the privacy landscape evolves. AWS Cognito is a good option, so is Firebase. I'm happy to start researching this path. Let's also consider breaking this out into its own service. We can then re-use it or share the accounts with other apps in the future.