Skip to content

PANTHER User Interface - #119

Open
umer901 wants to merge 8 commits into
ElNiak:productionfrom
umer901:production
Open

PANTHER User Interface#119
umer901 wants to merge 8 commits into
ElNiak:productionfrom
umer901:production

Conversation

@umer901

@umer901 umer901 commented Jul 23, 2026

Copy link
Copy Markdown

Summary

This PR introduces a browser-based graphical interface for PANTHER as developed for my master's thesis. The interface extends the existing framework without modifying its core experiment workflow, providing a visual layer for experiment configuration, execution, monitoring, and result inspection.

The implementation remains compatible with PANTHER's existing plugin architecture, YAML configuration model, and experiment execution pipeline.

Features

Configuration Management

  • Add guided configuration builder based on Pydantic models
  • Add YAML editor with integrated validation
  • Support loading and saving existing experiment configurations
  • Preserve compatibility with existing CLI workflows

Experiment Execution

  • Add experiment launcher from the web interface
  • Add live experiment status updates
  • Display execution progress and logs
  • Integrate asynchronous execution using the existing observer system

Topology Visualization

  • Add topology graph generation from experiment configurations
  • Visualize services and protocol relationships
  • Synchronize graph generation with the underlying YAML configuration

Plugin Discovery

  • Add browser for available implementations, protocols, testers, and environments
  • Display plugin metadata and documentation

Results Exploration

  • Add results browser
  • Display logs, metrics, and generated artefacts
  • Organize experiment outputs for easier inspection

Architecture

The implementation introduces a service-oriented web layer consisting of:

  • NiceGUI-based frontend
  • Reusable UI components
  • Configuration, Experiment, Plugin, Results, and Topology services
  • WebObserver adapter for event propagation
  • Integration with existing PANTHER managers and Pydantic models

No changes are required to the existing CLI or experiment execution pipeline.

Testing

The implementation includes:

  • Unit tests
  • Integration tests
  • End-to-end browser tests

Testing covers:

  • Configuration handling
  • YAML validation
  • Page routing
  • Topology generation
  • Plugin discovery
  • Experiment execution
  • Results loading

umer901 and others added 8 commits April 26, 2026 22:17
-Created feature where clicking a node brings you to the config builder to make changes
-Fixed refresh diagram button, so that changes made to yaml will be visible upon refresh
-More information about tests in UI
-8 Test cases for the topology section

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @umer901, your pull request is larger than the review limit of 150000 diff characters

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for improving my baby <3

@codacy-production

Copy link
Copy Markdown

Not up to standards ⛔

🔴 Issues 4 high · 23 medium · 59 minor

Alerts:
⚠ 86 issues (≤ 0 issues of at least minor severity)

Results:
86 new issues

Category Results
UnusedCode 2 minor
Documentation 1 minor
ErrorProne 4 high
CodeStyle 56 minor
Complexity 10 medium
Performance 13 medium

View in Codacy

🟢 Metrics 142 complexity

Metric Results
Complexity 142

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant