mirror of
https://github.com/rzuasti/oott.git
synced 2026-07-08 19:21:54 +02:00
Break the 372-line frontend API client into focused files under lib/utils/api/: error mapping (api_error.dart), Dio setup behind a buildDio factory (dio_config.dart), and device/scanner/notification endpoints as extensions in part files. Collapse the five near-identical scanner-status methods via a generic _getModel helper and de-duplicate the pagination logic via a shared _paginate helper. The BackendAPI singleton and dioErrorToUserMessage remain importable from oott_api.dart unchanged, so no call sites are affected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
OOTT ToDo list
- Add linting to CLAUDE.md for both Rust and Dart
- Review and document the release process
- Add support for push notifications to the app (iOS and Android)
- Review the README.md file
Backend
- Add configuration options to enable/disable each scanner
- Implement the pushover API call directly to support HTML content and review notification text to use it
- Add "devices seen on last scan" to the ARP and SNMP scanners status
- Modify the passive scanners status to count devices seen in the last hour
- Simplify the code of scanners (repeated logic)
- Modify the event management to ignore duplicate events if they happen within a time threshold
- Review the recommended timings for the ARP scanner (change defaults) — SNMP defaults set to 10m/5s
Frontend
- Can we add front-end tests?
- Break down oott_api.dart in modules
Improve engine
Passive (low noise, no probing):
- Passive packet capture — observe any broadcast/multicast traffic; a device that never responds to ARP still generates traffic
Active (you probe the network):
- NDP (Neighbor Discovery Protocol) — IPv6 equivalent of ARP; important if the network uses IPv6
Via infrastructure:
- SNMP query to router/firewall — pull the ARP table directly via SNMPv2c (no local probing); see
[snmp_scanner]config - Extend the SNMP scanner: SNMPv3 support, and switch MAC/forwarding table (port/VLAN) polling