Files
oott/TODO.md
T
2026-05-28 11:35:49 -04:00

3.0 KiB

OOTT ToDo list

  • Add linting to CLAUDE.md for both Rust and Dart

Backend

  • Add Swagger and API docs (OpenAPI)
  • Record an activity log in the database
    • One event for each device appearance
  • Add date filter to device event list method (from)
  • Add a data set (json) to store maps from vendors -> device type; modify the device creation so that it uses it automatically

Frontend

  • List recorded devices
  • Register a device
  • Forget a device
  • Extract the snack bar confirmations as a utility widget so it can be reused
  • Add a detail device page with access from notifications and devices lists
  • Extract the device type as an enum (idem Notification) and with Icon getter too
  • Extract the confirmForget and showRegisterDialog methods from both device pages
  • In the devices list add filters by owner and device type
  • View detailed log of device activity (based on event log in the backend)
  • Use date filter from backend API for device events list
  • Use favicon in web frontend
  • Style app title like favicon (font Barlow Condensed in a pill format with "primary" background)
  • Change the unkown device icon (maybe just a question mark)
  • Scan process monitor and summary page
    • Is the scan process running
    • Last run (when, how long did it take, how many devices did it found)
    • When is the next run
  • Rework notifications page into a homepage for the app
    • Notifications list
    • Summary of devices recorded (how many in total, how many seen in the last day, how many not seen for a week)
    • Scanning process summary (is it running, when will it run again)
  • About page

Improve engine

Several complementary approaches work well alongside ARP:

Passive (low noise, no probing):

  • mDNS/Bonjour listening — devices broadcast their presence on 224.0.0.251:5353; catches Apple, Android, Chromecast, printers, etc. automatically
  • SSDP/UPnP — similar but for smart devices/IoT; multicast on 239.255.255.250:1900
  • DHCP snooping — monitor DHCP DISCOVER/REQUEST packets; new devices must ask for an IP before doing anything else, so this catches them very early
  • Passive packet capture — observe any broadcast/multicast traffic; a device that never responds to ARP still generates traffic

Active (you probe the network):

  • ICMP ping sweep — ping every host in the subnet range; more universal than ARP but generates traffic
  • TCP/UDP SYN scan — probe common ports (22, 80, 443, etc.); finds devices that silently drop ICMP
  • NDP (Neighbor Discovery Protocol) — IPv6 equivalent of ARP; important if the network uses IPv6

Via infrastructure:

  • SNMP query to router/switch — pull the router's ARP table or switch MAC table directly; no need to scan at all

Best bang for the buck: mDNS + DHCP snooping as passive complements to ARP. mDNS is especially good at naming devices (hostname included in the announcement), and DHCP catches devices the moment they connect rather than waiting for an ARP sweep cycle.