Desktop tool that packages a complete support case — filtered controller logs and matching site video — from a single form submission.
Sole Developer & Owner · Feb 2026 – Apr 2026 · Team of 1 · 4 key work items · 4 evidence-backed
What I owned
Owned the system end-to-end: requirements with the support team, 4-component pipeline architecture with explicit failure-isolation semantics, Tkinter GUI + Python backend, SSH gateway and credential management, vendored open-source integration, and rollout to the CS team across 6 customer sites.
In daily production use across 6 customer sites. Real cases have been packaged through partial failures (single missing log stream, video unavailable for a specific time window) and the support engineer still got the usable subset.
Adopted into daily production use by the Customer Support team before the internship ended, with no external training rolled out. The form itself was the documentation.
The registry currently lists two streams. The extension point is documented in a code comment so the next engineer can extend it without reading the pipeline implementation.
Verified manually by killing the GUI mid-run. No orphan SSH processes remain, and no zombie accumulation observed across the support team's daily use.
| From | To | Type | Description |
|---|---|---|---|
| gui.py | window_logs.py | software | Threaded invocation of the backend pipeline on form submission. UI thread stays responsive while the backend runs. |
| window_logs.py | SSH Gateways | process | Detect, reuse, start, and shutdown-handler cleanup of SOCKS proxy tunnels. No persistent gateway state between runs. |
| window_logs.py | Deployed Controller | data | Time-windowed log fetching over SSH. Handles rotated archives and gzip decompression on-host. |
| window_logs.py | protect-archiver | software | Subprocess invocation of the vendored MIT-licensed NVR client. Communication via stdout and return code. |
| protect-archiver | Site Camera NVR | api | HTTPS API client routed through an ephemeral SSH port-forward. Tunnel lifetime scoped to the video download only. |

Click-only Tkinter form — controller, incident timestamp, deliverables, log detail level. Zero text entry anywhere.

Sanitized view of the 6 customer-site controllers reachable through one form.

Sanitized view of the 6 customer-site controllers reachable through one form.

Architectural map: containers, sub-components, external systems, and cross-cutting design properties.
Limitations
Lessons