Skip to content

WorldHealthOrganization/GDHCNOnboardingWizard

Repository files navigation

WHO Onboarding Wizard (Beta)

Overview

WHO Onboarding Wizard is a Windows desktop application built with Electron, Node.js, and Flask. It packages the desktop UI, backend, and required runtime tools together into a Windows application.

The application is intended to run as a local desktop application, but it also supports HTTPS-based local backend communication for stronger transport security between the Electron frontend and the backend service.

Supported Platform

This application currently supports:

  • Windows 10 (64-bit)
  • Windows 11 (64-bit)

It is not intended for:

  • 32-bit Windows
  • macOS
  • Linux
  • Mobile platforms

Prerequisites

Before you build or test the application locally, make sure the following are available.

Node.js

Install Node.js on your local machine and verify it is working.

node -v
npm -v

Repository

Clone the repository and open the project folder.

git clone <your-repository-url>
cd <repository-folder>

Runtime resources

Before packaging the application, add the required runtime files manually in the following folders.

resources/
├── bin/
└── python/

resources/bin

Add the required executable tools used by the application, such as:

  • Git
  • GnuPG / GPG
  • other related runtime binaries required by the application

resources/python

Add the Python runtime required by the packaged application.

Install Dependencies

Run the following command in the project folder.

npm install

Local Testing

Run without HTTPS

For simple local development and troubleshooting, you can start the application without HTTPS.

npm start

Run with HTTPS

For local testing with HTTPS enabled, use PowerShell:

$env:WIZARD_BACKEND_SCHEME="https"
npm start

HTTP and HTTPS Note

Although this is a local desktop application, the frontend and backend still communicate locally. For that communication, the application supports both HTTP and HTTPS modes during development and testing.

Why HTTPS is used

The final application is intended to run in HTTPS mode because HTTPS provides stronger protection for the communication channel between the Electron application and the local backend.

Using HTTPS helps with:

  • protecting local frontend-to-backend communication
  • reducing the risk of interception or tampering on the local communication path
  • providing stronger transport security for sensitive workflow operations
  • aligning the application with a more secure production-style runtime model

Even on a local machine, HTTPS is used as an additional hardening measure for the desktop application architecture.

Why HTTP is still used during testing

For local development and troubleshooting, running without HTTPS can be useful because it is simpler and easier to start quickly during testing.

That is why:

  • testing/development can be done without HTTPS
  • the final application runtime is intended to use HTTPS

Recommended use

  • Use HTTP for quick local testing when simplicity is enough
  • Use HTTPS when validating the secure local runtime behavior
  • Treat HTTPS as the intended final application mode

Build the Application

To create the Windows build:

npm run dist

Build Output

After a successful build, the generated application will be available in:

dist/

Typical Flow

Local testing without HTTPS

git clone <your-repository-url>
cd <repository-folder>
npm install
npm start

Local testing with HTTPS

git clone <your-repository-url>
cd <repository-folder>
npm install
$env:WIZARD_BACKEND_SCHEME="https"
npm start

Build package

git clone <your-repository-url>
cd <repository-folder>
npm install
npm run dist

Notes

  • Use npm start for local testing.
  • Use npm run dist to generate the Windows package.
  • Make sure resources/bin and resources/python are populated before building.
  • The final application is intended to run in HTTPS mode.
  • During development, you can test with or without HTTPS as needed.

Troubleshooting

electron is not recognized

Run:

npm install

Then retry:

npm start

Application builds but does not work properly

Verify that the required runtime files were added correctly under:

resources/bin
resources/python

HTTPS mode does not start

Make sure you are running the command in PowerShell:

$env:WIZARD_BACKEND_SCHEME="https"
npm start

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors