A beautiful, premium, and fully featured Clinical Simulation Scenario Management and Run-time System designed to align directly with ASPiH (Association for Simulated Practice in Healthcare) standards.
SimHub enables healthcare educators to draft, organise, run, and debrief high-fidelity clinical simulation scenarios from a single, unified, modern web interface.
- ASPiH-Aligned Scenario Builder: Standardised schemas covering clinical governance, learning outcomes, environmental setups, equipment/medication checklists, structured prebriefs, and multi-phase progression states.
- Interactive Simulation HUD: A premium, real-time control interface for simulation facilitators. It includes:
- Dynamic vitals monitor simulation with active waveform styles.
- Phase-by-phase clinical progression tracking.
- Built-in timer, event logger, and quick-action triggers.
- Bedside nurse confederate script cues.
- PEARLS Debriefing Guide: Integrated debrief template using the PEARLS (Promoting Excellence and Reflective Learning in Simulation) framework, featuring structural prompts for Reactions, Description, Analysis (Advocacy-Inquiry, Directive Feedback, Plus-Delta), and Summary.
- Curriculum Programme Mapping: Group scenarios into specific academic or clinical development tracks (e.g., Year 5 Undergraduate Medicine, Foundation Year 1 Induction).
- Role-Based Security: Built-in simple token authentication with distinct access rules for Admin (Full CRUD) and Clinical Faculty (Read-Only catalog exploration and interactive runs).
- User Administration Area: A premium, secure control panel for Admin users to add, edit, and delete faculty access accounts, configure permissions, and manage passwords, equipped with self-lockout guards.
- Premium Visuals & Dual Themes: Modern, high-contrast dark mode and premium light mode layouts built with clean, zero-dependency responsive styles.
- Robust QA & UI Test Suites: Bundled integration tests verifying REST endpoints and Puppeteer end-to-end headless browser workflows for scenario compilation.
Here is a visual overview of SimHub's premium interface and high-fidelity simulation features:
| π Login Gateway | π Faculty Dashboard |
|---|---|
![]() |
![]() |
| π©Ί Scenario Details | π» Interactive Run HUD |
|---|---|
![]() |
![]() |
| π£οΈ PEARLS Debrief Guide | βοΈ High-Contrast Light Mode |
|---|---|
![]() |
![]() |
- Backend: Node.js + Express.js (REST API, lightweight middleware, and static asset serving).
- Database: Flat-file JSON database (highly portable, zero external DB configuration required).
- Frontend: Vanilla HTML5, CSS3 CSS Variables (no Tailwind/build frameworks, ensuring instant load times and complete customisation).
- Automation & Testing: Puppeteer-core + local Google Chrome execution for visual screenshot generation and form validation.
- Node.js (v16.0.0 or higher recommended).
- Google Chrome (installed in standard system paths if you want to run headless UI tests/screenshots).
-
Clone the Repository:
git clone https://github.com/yourusername/simhub.git cd simhub -
Install NPM Dependencies:
npm install
-
Seed the Database: SimHub includes an extensive pre-seeded clinical scenario for Acute Pulmonary Embolism (Sam Phillips) mapped to Year 5 Undergraduate curriculum. Seed the local JSON storage by running:
npm run seed
-
Launch SimHub:
npm start
-
Access the Application: Open your web browser and navigate to
http://localhost:3000.
SimHub comes with two pre-configured faculty accounts for clinical training teams:
| User Role | Preconfigured Email | Password | Allowed Operations |
|---|---|---|---|
| Admin | admin@simhub.local |
admin123 |
Full access. Create, edit, delete, view, run scenarios & programmes. |
| Clinical Faculty | faculty@simhub.local |
faculty123 |
Read-only. Catalog browse, detail sheet view, launch active HUD, view debriefs. Cannot save/delete. |
SimHub comes equipped with automated tests to verify API endpoints, validate complex UI forms, and capture high-resolution screenshots.
Execute the local integration test suite to verify Express endpoints, authorisation middleware, and flat-file CRUD persistence:
npm run testLaunches a headless browser instance to open SimHub, authenticate as Admin, complete the multi-tab scenario creation wizard, submit the new scenario, and verify persistent entry on the dashboard before cleaning up:
npm run test:uiRun the Puppeteer-driven screenshot script to automatically capture high-resolution images of your SimHub installation (Login, Dashboard, Light Mode, Scenario Details, Active HUD, PEARLS Debrief):
npm run screenshotssimhub/
βββ .github/ # GitHub Community Templates
β βββ ISSUE_TEMPLATE/ # Standard Bug & Feature Requests
βββ data/ # Local JSON Flat-File Database (git ignored)
β βββ scenarios/ # Mapped Scenario Files
β βββ programmes/ # Structured Programme Tracks
β βββ users.json # Persistent Faculty Access Profiles
βββ public/ # Frontend Static Files
β βββ css/ # Premium styles and themes
β βββ js/ # SPA logic & state controller
β βββ index.html # Main Application Shell
βββ .gitignore # Standard Node.js & local storage exclusion
βββ LICENSE # MIT Licence Terms
βββ README.md # Comprehensive Documentation
βββ capture-screenshots.js # Puppeteer visual asset generator
βββ package.json # Node dependencies and runtime commands
βββ scenario_template.md # ASPiH Markdown blueprint for reference
βββ seed.js # Core clinical dataset generator
βββ server.js # Main Express Application Server
βββ test-qa.js # API testing module
βββ test-ui-save.js # Automated UI browser wizard tests
We welcome contributions to make clinical simulation more structured and accessible! Please read our Contributing Guide to understand how you can help.
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
- Scenario Backup & Restore (Export/Import): Added secure, Admin-only JSON scenario database export and import endpoints protected by Bearer token auth, integrated a premium sidebar control widget, and expanded Puppeteer/QA test suites to 37 successful checkpoints.
- Clinical Code Base Fixes: Resolved a leftover conflict marker (
<<<<<<< HEAD) incomponents.jsto restore flawless, instant catalog loading. - User Administration: Migrated credentials to JSON flat-file storage (
data/users.json) and added Admin-only CRUD routes protected with lockout guards. - Scenario PDF Export: Integrated client-side vector PDF downloading using
html2pdf.jsstyled with print-contrast clinical layouts. - Scenario Recycle Bin: Re-routed deletions to a recovery folder (
data/recycle_bin/) enabling Admin-only file restoration or hard erasure.
This project is licensed under the MIT Licence - see the LICENSE file for details.





