Files
deflock-app/README.md

2.7 KiB
Raw Blame History

Flock Map App (Stage 1)

A minimal Flutter scaffold for mapping and tagging Flockstyle ALPR cameras in OpenStreetMap.

OAuth Setup

Before you can upload to OpenStreetMap (production or sandbox), you must register your own OAuth2 application on each OSM API you wish to support:

Copy your generated client IDs into a new file:

// lib/keys.dart
const String kOsmProdClientId = 'YOUR_PROD_CLIENT_ID_HERE';
const String kOsmSandboxClientId = 'YOUR_SANDBOX_CLIENT_ID_HERE';

For open source: use lib/keys.dart.example as a template and do not commit your real secrets.

If you discover a bug that causes bad behavior w/rt OSM API, register a new OAuth client to distinguish patched versions and, if needed, delete the old app to prevent misuse.

Upload Modes

In Settings, you can now choose your "Upload Destination":

  • Production: Live OSM database (visible to all users).
  • Sandbox: OSM's dedicated test database; safe for development/testing. More info.
  • Simulate: Does not contact any server. Actions are fully offline for testing UI/flows.

TODO for Beta/RC Release

COMPLETED

  • Queue view/retry/clear - Implemented with test mode support
  • Fix login not opening browser - Fixed OAuth scope and client ID issues
  • Add "new profile" text to button in settings - Enhanced profile management UI
  • Profile management (create/edit/delete) - Full CRUD operations integrated

🔄 REMAINING FOR BETA/RC

  • Better icons for cameras, prettier/wider FOV cones
  • North up mode, satellite view mode
  • Error handling when clicking "add camera" but no profiles enabled
  • Camera point details popup (tap to view full details, edit if user-submitted)
  • One-time popup about "this app trusts the user to know what they are doing" + credits/attributions
  • Optional height tag for cameras
  • Direction should be optional actually (for things like gunshot detectors) - maybe a profile setting?
  • More (unspecified items)

FUTURE (Post-Beta)

  • Wayfinding to avoid cameras

Stuff for build env

Install from GUI:

Xcode, Android Studio. Xcode cmdline tools Android cmdline tools + NDK

Terminal

brew install openjdk@17 sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

brew install ruby

gem install cocoapods

sdkmanager --install "ndk;27.0.12077973"

export PATH="/Users/bob/.gem/ruby/3.4.0/bin:$PATH"

export PATH=$HOME/development/flutter/bin:$PATH

flutter clean flutter pub get flutter run