Skip to content

chf3198/mini-scada-hmi-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

49 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Mini SCADA HMI Dashboard

Mini SCADA HMI Dashboard

๐Ÿญ Mini SCADA HMI Dashboard

A zero-build, browser-ready demo of a SCADA Human-Machine Interface for factory monitoring

Quick Start ยท Features ยท Screenshots ยท Tech Stack ยท Glossary ยท Contributing

No Build Required Works Offline File Protocol Ready
JavaScript ES6+ Tailwind CSS PolyForm Noncommercial ~800 Lines


Mini SCADA HMI Dashboard is a zero-build, browser-ready simulation of an industrial Human-Machine Interface (HMI) for factory floor monitoring. It demonstrates SCADA concepts โ€” alarm management, runbooks (SOPs), commissioning checklists (FAT/SAT), and real-time machine status โ€” in a safe, offline-capable sandbox. Built for students learning industrial automation, developers exploring HMI/SCADA UI patterns, and trainers who need a demo environment without enterprise SCADA software. Runs directly from index.html with no server, no npm, and no bundler โ€” all dependencies load via CDN.

SCADA = Supervisory Control and Data Acquisition ยท HMI = Human-Machine Interface


Overview Dashboard


Quick Start

Getting started takes less than 30 seconds.

Option 1: Download and open (recommended)

  1. Click the green "Code" button โ†’ "Download ZIP"
  2. Unzip anywhere on your computer
  3. Double-click index.html โ€” that's it! ๐ŸŽ‰

Option 2: Clone with Git

git clone https://github.com/chf3198/mini-scada-hmi-dashboard.git
cd mini-scada-hmi-dashboard
open index.html        # macOS
xdg-open index.html    # Linux
start index.html       # Windows

๐Ÿ’ก Works via file:// protocol โ€” no web server required!


Features

๐Ÿ“Š Real-Time Dashboard

Live machine status cards with health scores. Color-coded severity indicators (๐Ÿ”ด Critical โ†’ ๐ŸŸข OK). Animated charts for downtime and events. Automatic refresh during simulation.

๐Ÿ”” Alarm Management

Severity-based event logging with one-click acknowledgment. Timestamp tracking with relative time display. Filter events by machine.

๐Ÿ“‹ Runbooks (SOPs)

Searchable troubleshooting guides with accordion-style expandable sections. Step-by-step procedures for common issues. Ready for your custom procedures.

โœ… Commissioning Checklists

FAT/SAT-style validation checklists with progress bars. LocalStorage persistence (survives page refresh). JSON export/import for sharing.

๐ŸŽฎ Simulation Mode

Start/stop realistic event generation with random alarm triggers and machine status changes. Perfect for demos and training.

๐ŸŒ™ Operator-Friendly UI

Dark mode for night shifts. Responsive design for tablets. Tooltips explain SCADA terminology. Built-in Help/User Manual page.


Screenshots

๐Ÿ“Š Overview Dashboard
Overview Dashboard
Real-time machine status, KPIs, severity charts, and event log
๐Ÿ”ง Machine Detail
Machine Detail
Drill-down view with metrics, alerts, and quick actions
๐Ÿ“‹ Runbooks (SOPs)
Runbooks
Searchable troubleshooting guides with step-by-step procedures
โœ… Commissioning Checklists
Commissioning
FAT/SAT validation with progress tracking and persistence
โ“ Help & User Manual
Help Page
Built-in documentation with SCADA terminology and app guidance

Project Structure

mini-scada-hmi-dashboard/
โ”œโ”€โ”€ index.html         # Entry point โ€” just open this
โ”œโ”€โ”€ assets/
โ”‚   โ”œโ”€โ”€ app.js         # Main app logic, routing, views
โ”‚   โ”œโ”€โ”€ data.js        # Seed data (machines, events, runbooks)
โ”‚   โ”œโ”€โ”€ utils.js       # Helpers, simulation, persistence
โ”‚   โ”œโ”€โ”€ styles.css     # Minimal custom styles
โ”‚   โ””โ”€โ”€ tests.js       # Self-tests (run with ?test=1)
โ”œโ”€โ”€ docs/
โ”‚   โ””โ”€โ”€ *.png          # Screenshots
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ CONTRIBUTING.md

Total codebase: ~800 lines โ€” small enough to read in an afternoon.


Technology Stack

All dependencies load via CDN โ€” no npm, no webpack, no bundlers.

Library Purpose Why It Was Chosen
Tailwind CSS Styling Utility-first, no build required
Chart.js Charts Simple, beautiful, well-documented
Lucide Icons Icons Clean, open-source icon set
Tippy.js Tooltips Accessible, customizable
Alpine.js Reactivity Minimal declarative JS framework

Running Tests

index.html?test=1

Open in your browser with the test flag above and check the console. All tests should pass.


Customization

Customization Difficulty File to Edit
Add more machines โญ Easy assets/data.js
Create new runbooks โญ Easy assets/data.js
Change color scheme โญ Easy Tailwind classes in app.js
Add new dashboard views โญโญ Medium assets/app.js
Connect to real MQTT broker โญโญโญ Advanced New integration needed
Add OPC-UA data source โญโญโญ Advanced Backend required

From Demo to Production

This project is educational only. For real industrial deployments, you would need:

Requirement Description
OPC-UA / MQTT Real protocol connections for live PLC data
Authentication User login and role-based access (operators vs. admins)
Historian database Store events and downtime in SQL/NoSQL for analysis
WebSockets Push updates instead of polling
Backend API Node.js or Python for data processing
Redundancy High-availability architecture for critical systems

Contributing

Contributions are welcome โ€” bug reports, feature suggestions, documentation improvements, and UI/UX enhancements. Read CONTRIBUTING.md before submitting a pull request.


License

PolyForm Noncommercial 1.0.0 โ€” free for personal, educational, and non-commercial use. Commercial use requires a paid license. See COMMERCIAL-LICENSE.md or contact curtisfranks@gmail.com.

ยฉ 2026 Curtis Franks


Glossary

New to SCADA? Here are the key terms:

Term Definition
SCADA Supervisory Control and Data Acquisition โ€” systems that monitor and control industrial processes
HMI Human-Machine Interface โ€” the screen operators use to interact with machines
PLC Programmable Logic Controller โ€” industrial computer that controls machinery
OPC-UA Open Platform Communications Unified Architecture โ€” industrial data exchange standard
FAT Factory Acceptance Test โ€” validation performed before shipping equipment
SAT Site Acceptance Test โ€” validation performed after installation on-site

โญ Found this useful? Give it a star!
Built with โค๏ธ for the industrial automation community

About

๐Ÿญ A zero-build, browser-ready SCADA HMI dashboard demo. Perfect for learning industrial monitoring concepts. No installation required - just download and open!

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors