Professional · Node.js / Web UI / System Design
UTEST Web App Launcher
A hub that lets one demo panel run any of the UTEST machine web applications installed on it.
- Status
- Delivered professional work
- Source
- Private source
- Period
- 2026 — present
- Role
- Designer and developer of the hub
- Node.js
- TypeScript
- JavaScript
- HTML
- CSS
- nginx
- Debian packaging
- GitHub Actions
- Software Architecture & System Design
- Full-Stack Software Development
- systemd
01Interactive exhibit
Stages
Optional / parallel path
Registry · web roots
Discover applications
Builds the list from registry metadata and from the web roots installed on the panel. Applications that are not installed are not shown.
02
Context & challenge
A demo panel has to show several machine families, but each product web application normally owns the whole device. Switching between them by hand means changing the web server, the update target and the backend services every time.
03
Approach
A small service and a static hub page. The hub shows the applications that are actually installed; choosing one runs a fixed sequence that makes it the active application, pins the updater to it and restarts the services it needs.
Applications are discovered from registry data and from the installed web roots, so a newly installed application can appear without a launcher code change. Machine configuration is deliberately left untouched.
04
My role
I designed and built the launcher service, the hub interface, its packaging and its CI workflow.
05
What was delivered
Hub interface
A static page listing each installed application with its name, product family, installed version, update track and active state. English and Turkish, light and dark.
Application switching
A sequential activation: check that no update is running, record the active application, pin the updater, switch the web server to the selected application and restart the backend services.
Discovery from data
Registry metadata plus a scan of installed web roots. Applications that are not installed are not shown.
Updater and desktop tools
Shows its own update status through the Web App Updater and lists desktop tools with per-platform installer downloads.
06
Engineering decisions
Demo panels only
Installing the launcher takes ownership of the device's web server, so it is meant for UTEST demo panels and never for customer machines.
Machine configuration stays separate
Switching changes only launcher and runtime state. The product applications stay installed independently.
Data over code
No hard-coded catalogue of applications: supporting another one is a registry entry.
Documented limits
Activation is sequential and has no rollback transaction, and the documentation says so.
07
Status & outcome
One demo panel can present any installed UTEST machine application, with the update path following the application that is shown.
08
Attribution & publication notes
- The launcher is for UTEST demo panels only and is not installed on customer machines. Repository is private.
Next project
UTEST Delivery & Release Tooling
