Skip to content

LM+ Locator documentation

LM+ Locator is a Flutter app that helps members of LM Plus (Liberale Mutualiteit, a Belgian health insurance fund) find their nearest office or mailbox drop-off point. This app is not affiliated with LM Plus.

What it does

  • Find the nearest office using the device’s GPS, or by typing an address (with live autocomplete)
  • Filter results by name, street, or number, narrowing the current GPS/address results instantly, with no network call
  • Browse offices and mailboxes sorted by distance, with opening hours and an “open now” status
  • Open any location in Maps (Google Maps / Apple Maps) with one tap
  • Save offices to a Saved tab (bookmarked locally; synced to the cloud when signed in)
  • Offline-first: bundled office data and GPS search work with no internet; an animated banner appears when offline
  • Multilingual: Dutch, French, German, English, following the device language by default
  • Light/dark theme, following the system by default
  • Optional account (email/password via Firebase), not required to use the locator; enables favorites cloud sync
  • An experimental send-document tab for photographing and emailing a document

Where to go next

DocWhat’s in it
architecture.mdTech stack, project structure, navigation, theming, state & persistence
features.mdHow each feature works, screen by screen, with source file references
data-pipeline.mdWhere the office data comes from and how to refresh it

Quick map of the codebase

PathContains
lib/main.dartApp entry point, theme/locale bootstrapping
lib/screens/Top-level screens (RootScreen, HomeScreen, SendDocumentScreen)
lib/widgets/Reusable widgets and bottom sheets
lib/services/Stateless helper classes wrapping platform/plugin/API calls
lib/models/Plain data classes (Office, AddressSuggestion, …)
lib/theme/App-wide colors and ThemeData
lib/l10n/Translations (.arb files) and generated localization code
assets/lm_offices.jsonThe office/mailbox dataset bundled with the app
scripts/Python scripts to (re)build that dataset and the app icon