Files
oott/TODO.md
T
rzuastiandClaude Sonnet 4.6 251d8a479e Redesign Home screen with device summary and scanner status
Adds a responsive Home screen combining the notification list with a
device summary panel and ARP scanner status, visible side-by-side on
wide screens and stacked on narrow ones.

Backend:
- New GET /api/devices/summary endpoint returning registered device
  counts and "seen in last 24h / 7 days" breakdowns by registration
  status
- Migration 07 adds indexes on (is_registered) and (last_seen,
  is_registered) so summary queries use index range scans instead of
  full table scans

Frontend:
- HomeScreen replaces NotificationList, embedding notifications,
  device summary card, and ArpScannerCard in a LayoutBuilder-driven
  two-column (≥700 px) or single-column layout
- ArpScannerCard extracted to a shared public widget reused by both
  HomeScreen and StatusScreen
- Nav rail entry renamed to "Home" with home icon

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 19:10:08 -04:00

3.4 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)
  • Update the device type management to consider the following list: phone, laptop, tablet, server, tv, printer, network_appliance (router, switch, firewall, etc.), home_security (camera, doorbell, etc.), home_appliance (fridge, dish washer, washer, dryer, etc.), watch, pc, gaming_console, unknown (use when a vendor cannot be clearly identified with any of the device types or a device is of a vendor not in the vendors json file)
  • 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.