Build log · Software & apps

School Shield

Software & appsdoneNetworkingDNSBypass

reflection not written yet · every fact below is generated from this project’s own spec and files

What it is

Network shield — toggles school-filter DNS blocking.

By the numbers

Measured from the real working folder ~/Documents/projects/network-tools/school-shield — not a claim, a count.

9
files
776
lines of code
3
file types used
2026-08-11
oldest file
2026-08-11
last touched

Mostly: Python ×6 · TOML ×1 · Markdown ×1

What broke, and what I’d change

Not written yet. This is the part only I can write — what actually went wrong, and what I’d do differently. It lives in builds/reflections/school-shield.md (see _TEMPLATE.md); as soon as that file has words in it, this section fills in on the next build.

Everything else on this page — the spec, the version history, the file counts — is generated from the project’s own build notes and files, so nothing here is guesswork.

Build spec

The project’s own build notes, rendered. Open the raw .md ↗

Show the spec

School Shield

Category: Software & Apps · Status: Done

Network shield — toggles school-filter DNS blocking.

Stack / Tools: Networking, DNS, Bypass

Location: ~/school-shield

Where it lives

  • Source folder: ~/Documents/projects/network-tools/school-shield
  • Artefacts on the site: 11 files · 776 lines of text · 67 KB

Stack

  • Python ×6 · .lock ×1 · TOML ×1 · Markdown ×1 · pyproject

What's in the code

  • shield.py — 208 lines (Python)
  • dashboard.py — 144 lines (Python)
  • doh_proxy.py — 143 lines (Python)
  • detector.py — 132 lines (Python)
  • firewall.py — 130 lines (Python)
  • pyproject.toml — 13 lines (TOML)
  • main.py — 6 lines (Python)
  • README.md — 0 lines (Markdown)

Verified in the Python source

  • routes: get /, get /status
  • classes: DoHProxy, _DNSProtocol
  • functions: _disable_all, _is_doh_running, _require_root, _run_pfctl, _start_doh_background, _stop_doh_background, _write_rules, create_app, dashboard, disable_killswitch, enable_killswitch, get_current_dns, get_current_wifi, get_network_info, is_school_network, main

_Spec generated from the project's own files on 2026-10-22 (gen-project-specs.py). Everything above was read from the listed files — file counts, line counts, names, routes, headings and script comments. No description was invented._