1. Browsing & Licensing Waypoint Packs

The Pack Catalog Screen ([`pack_catalog_screen.dart`](file:///d:/prfndr/spotlocker/flutter_app/lib/screens/pack_catalog_screen.dart)) displays available fishing intelligence packs created by tournament pros, guides, and marine cartographers.

Pack Metadata & Previews

Each pack listing includes:

  • Waterbody & Region (e.g. Lake Norman NC, Lake Oconee GA, Gulf Offshore Ledges)
  • Waypoint Count & Structure Tags (e.g. 150 Verified Brush Piles, 45 Deep Ledges)
  • Target Species & Seasonality (e.g. Spring Pre-Spawn Bass, Summer Deep Crappie)
  • License Term & Price (e.g. Annual License $49.99)

2. Data-at-Rest AES-256 Encrypted Offline Storage

Because cell service on lakes and offshore ocean grounds is frequently spotty or unavailable, SpotLocker allows users to download licensed packs for offline use ([`offline_cache_service.dart`](file:///d:/prfndr/spotlocker/flutter_app/lib/services/offline_cache_service.dart)).

πŸ”’ Hardware Keystore Encryption

Local waypoint database files are encrypted on disk using AES-256 in CBC mode. The master encryption key is generated uniquely during app installation and stored inside hardware-backed secure storage (iOS Keychain / Android Keystore). The raw coordinates cannot be retrieved by extracting the app's SQLite file over USB.

3. Selective GPX/KML Exporting & Watermarking

When permitted by pack administrators, users can export selected waypoints to standard .gpx or .kml files for transfer to marine chartplotters (Lowrance, Humminbird, Garmin, Raymarine).

Dynamic Watermarking Security

To deter unauthorized file sharing across internet forums, SpotLocker embeds dynamic user identity watermarks into the exported GPX metadata structures ([`exports.py`](file:///d:/prfndr/spotlocker/backend/app/exports.py)):

<?xml version="1.0" encoding="UTF-8"?> <gpx version="1.1" creator="SpotLocker Engine"> <metadata> <name>Lake Norman Bass Pack</name> <desc>LICENSED TO: user_id=8491 (angler.john@example.com) - SIG: a9f8c7b6</desc> </metadata> <wpt lat="35.0124" lon="-80.8912"> <name>Brush Pile A01</name> <cmt>Target Depth: 18ft | Structure: Oak Brush</cmt> </wpt> </gpx>