עברית
Motion
AccessibilityPrivacy
Case study14 / 15Apr 2022 – Jul 2023

Project P.I.N.G.E.R.

A full-screen live map that watches every switch on a separate network that only connects them, and sounds an alarm the moment one drops.

Role
Sole developer
Organisation
Tikshuv AKA – the C4I and digital branch of the IDF Personnel Directorate (AKA)
Period
Apr 2022 – Jul 2023
Context
Military service at Tikshuv AKA

01 / The challenge

At sites across the country, the network team looked after switches: the devices that connect each site's equipment to the network. The switches talked to each other over a separate network used only for that. To find out whether a site had dropped off it, someone had to ping its switches by hand (send each one a quick "are you there?" test), one address at a time, from a list. With no efficient way to do it, a full round happened only once or twice every few months.

Nothing raised the alarm by itself, and there was no single view of which sites were up. The team needed one screen that showed the whole network at a glance and alerted them the moment something went down.

  • Checks were manual, one switch at a time
  • No single picture of which sites were up
  • A drop went unnoticed until someone looked

02 / What I built

I built a full-screen desktop app for the team's monitoring station. A map of Israel shows a pin for every site, and behind each pin are the switches at that site. Every minute the app checks all of them, and each pin and card turns green or red with the answer.

When a switch stops answering, an alarm keeps sounding until someone mutes it, and the switch joins a numbered list of everything that is offline, so the operator sees what dropped and where. Clicking a pin opens that site's switches, and a switch's details can be changed, or the switch deleted, right on screen.

How it came together

  1. Apr 2022From a script to a mapA 72-line script pinged each site's main switch in parallel. Two days later it had a full-screen map.
  2. May 2022Alarm and editorAdded an alarm, a switch editor, each site's list of switches, and four log files that recorded every change.
  3. Jul 2022First big rewriteReorganised the whole program so every site and switch manages its own data, checks and place on screen.
  4. Sep 2022V1 released and in serviceStation self-check, three map styles, adding and moving sites, and a single Windows program anyone could run.
  5. Jun 2023V2 from scratchBegan a clean rewrite on a set of reusable buttons, input boxes and cards that I prototyped first on their own.
  6. Jul 2023V2 complete and in service2,069 lines with Excel import and export, animated popups and live counters.

03 / Highlights

01

All sites on a map

Each site is a green or red pin on a map of Israel. Click it to see the switches behind it.

02

Checks each minute

Each site's switches are checked in the background every 60 seconds and after every edit.

03

A can't-miss alarm

A dropped switch sounds an alarm until someone mutes it, and joins a numbered offline list.

04

Edit on screen

Change a switch's name, address, notes or model, or delete it; saving re-checks it at once.

05

Works with Excel

The switch list comes from Excel; Settings can import a new sheet or export a dated copy.

06

Station self-check

V1 also checked its own connection, so a local fault never looked like a nationwide outage.

04 / Screens

8 screens

Design noteOne layout for any screen: Pinger is laid out at 4K with every position written as a ratio, and rescaled once for the screen it runs on, so the map and the status cards keep their proportions everywhere.

The main screen: every site is a pin on a map of Israel, offline switches are listed on the right, and live online/offline counters sit next to the mute button.
01 The main screen: every site is a pin on a map of Israel, offline switches are listed on the right, and live online/offline counters sit next to the mute button.
A site's panel listing its switches, one green and one red, with their IP addresses
02 Clicking a site's pin opens the switches behind it, each one green or red, with its address.
The edit screen for one switch, with name, IP, additional info and model fields and delete and save buttons
03 Editing a switch on screen: name, IP address, additional info and model, with delete and save buttons in the title bar.
An "Update! The data loaded successfully!" popup with an animated tick over a blurred map
04 The switch list has loaded from its Excel file. A matching "data saved" popup confirms every save.
The "New screen detected: loading assets" screen with a progress bar
05 On a new screen resolution, the app rescales all of its images once and shows its progress.
The full-screen "Network error" screen
06 V1 checked the station's own connection and showed this screen when it was lost.
The three map styles: normal, satellite and terrain, each under the "Project Pinger" top bar
07 The three map styles the operator can switch between: normal, satellite and terrain (shown here without the site pins).
Lines of code in each dated save: from 72 lines in April 2022 to 2,878 lines in V1 (September 2022), then 2,069 lines in the V2 rewrite (July 2023)
08 Lines of code in each dated save: from a 72-line script to 2,878 lines in V1, then the V2 rewrite in 2,069 lines.

05 / Impact

~35sites on the map
Over 300switches monitored
60 sbetween automatic checks
Monthsbetween full rounds of checks by hand, before Pinger

Pinger replaced a manual routine with automatic checks: more than 300 switches at about 35 sites, each checked every 60 seconds, where a full round by hand used to happen only once or twice every few months. Both versions were used in service by the network team: 7 people on 2 monitoring stations.

It was also my first complete product. In five months I grew it from a first script into a finished V1, and in 2023 I rewrote it from scratch, with much less code. It was a forerunner of a later tool of mine, the Hamal Monitoring App, which took the same idea of a live status screen into operations rooms.

06 / Role and tech

I built Pinger on my own, from the first idea to the finished program: the monitoring logic, the screens and the code behind them, the data files and the Windows build. I kept a dated save at every step, twelve of them before V1, and when the code became hard to change I rewrote it: once in July 2022, and again from scratch in 2023. The network team used both V1 and V2 in service.

Tech

  • Python
  • pygame
  • Pillow
  • pandas
  • OpenCV
  • netifaces
  • tkinter
  • PyInstaller
  • Excel / CSV

How it's built

Pinger is a Python desktop program rendered with pygame. Each site has its own background thread that pings its switches, while separate threads run the alarm, the offline list, the popups and the log files. Every position on screen is laid out at 4K and scaled to whatever screen it runs on, and V1 shipped as a single Windows program built with PyInstaller. In V2 its buttons, input boxes, list cards and map pins are reusable widget classes I wrote, and I reused that code in my later desktop tools. It began as a 72-line script, and V2 is about 800 lines shorter than V1.

Pinger turned a manual ping routine into a map that raises the alarm by itself.

It taught me to take a tool from a first script to a product used in service.

Chapters