Skip to content

Repository files navigation

Queueing Network Editor

An interactive web editor for building and visualizing queueing-network diagrams. Lay out sources, server pools, and queues on a drag-and-drop canvas, then import/export the exact YAML config format consumed by the DiscreteEventSimulator — so a network can be designed visually and simulated without hand-editing matrices.

Why

Queueing networks are normally specified as raw adjacency and service-rate matrices (network, mu, lam_params, ...), which are tedious and error-prone to write by hand. This tool turns that representation into a visual graph you can edit directly, and converts back to YAML losslessly.

Features

  • Drag-and-drop canvas (D3 v7) for placing and connecting queues and server pools
  • YAML import/export — round-trips the simulator's config schema (connectivity matrix, service rates μ, arrival rates λ, holding costs, initial queue sizes, pool sizes)
  • Automatic layout — server ordering via barycentric crossing minimization to reduce edge crossings for readable diagrams
  • Export to SVG and PNG for slides and reports
  • Editing niceties — undo/redo, zoom, and toggleable μ edge labels

Stack

Layer Tech
Backend Python, Flask
Parsing / layout PyYAML, NumPy
Frontend Vanilla JS + D3.js v7

Running

pip install -r requirements.txt
python app.py

Open http://localhost:5000.

Note: app.py is the Flask entry point. (main.py is an unused scaffold.)

API

Endpoint Method Description
/ GET Editor UI
/api/parse-yaml POST Parse an uploaded YAML config into editor state
/api/export-yaml POST Serialize editor state back to a downloadable YAML config
/api/auto-layout POST Compute server/queue positions with crossing minimization

About

Interactive web editor for queueing-network diagrams — YAML round-trip with the simulator and auto-layout via barycentric crossing minimization

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages