Overview
MOSA is a hardware dock platform for secure bike parking and bike sharing services. The platform enables secure bike locking and unlocking operations using NFC (Near Field Communication) and Bluetooth Low Energy (BLE) communication.
Product Overview
MOSA hardware docks provide a secure, offline-capable solution for managing bike parking and bike sharing operations. The platform consists of:
- Hardware Docks: Physical lean retrofit docks equipped with NFC and BLE communication capabilities
- Mobile SDKs: Native SDKs for Android, iOS, and Flutter that handle NFC scanning, BLE communication, and session management
Core Capabilities
- NFC + BLE Communication: Secure dock interaction using NFC scanning to discover docks and BLE for command transmission
- Session Management: Automatic session creation and tracking from bike unlock to lock completion
- Offline Operation: SDKs support offline-first operation with automatic data synchronization when connectivity is restored
- Real-time Callbacks: Event-driven architecture for UI updates during dock operations
- Multi-Platform Support: Native SDKs for Android, iOS, and Flutter
Supported Platforms
Android
- Minimum API Level: 24 (Android 7.0 Nougat)
- Language: Kotlin
- Key Requirements: NFC and BLE support
iOS
- Minimum iOS Version: 13.0
- Language: Swift
- Key Requirements: NFC and BLE support (iPhone 7 and later)
Flutter
- Platform Support: Android and iOS
- Language: Dart
- Requirements: Same as native platform requirements
Architecture at a Glance
Data Flow
A typical user flow for unlocking a MOSA dock follows these steps:
-
Display Available Areas: Your app displays available parking or sharing areas to the user, allowing them to select the area where they want to park or rent a bike.
-
Request Unlock Key: Your app (via the MOSA SDK) requests an unlock key from the MOSA Server for the selected area. A new session is created or an existing session is used—session management is handled automatically by the MOSA Server.
-
NFC Scan: The SDK scans the NFC tag on the dock to wake it and establish a connection using its unique identifier.
-
BLE Connection: The SDK establishes a BLE connection to the dock for secure key transfer, validating that the dock is available for the operation (bike parking or bike sharing). Connection occurs only after the unlock key is downloaded from the MOSA Server.
-
Key Transfer: The SDK securely transfers the unlock key to the dock via BLE and waits for the user to lock their bike (bike parking) or rent a bike (bike sharing).
-
User Action: The user locks their bike into the dock or removes the bike from the dock.
-
Callback Events: The SDK emits callback events at different stages (NFC scan, BLE connection, key transmission, dock status changes) to notify your app of the operation status.
-
UI Updates: Your app processes callback events to display real-time status updates to the user.
-
Session Synchronization: On successful completion, session updates are automatically sent to the MOSA Server and cached locally by the SDK for offline access.
Key Concepts
Areas
Geographic locations where docks are deployed. Areas can be parking locations or sharing stations. Users select an area before requesting unlock keys for dock operations.
Unlock Keys
Temporary cryptographic keys used to authenticate and authorize dock operations. Keys are requested from the MOSA Server and have a limited validity period (typically 15 minutes). See the API Reference for complete documentation.
Sessions
A session represents a single bike usage period, from unlock to lock completion. Sessions are automatically created and managed by the SDK and MOSA Server—no manual session management is required.
SDK Callbacks
Event-driven notifications from the SDK to your app, used to update UI during dock operations (e.g., NFC scan completed, BLE connected, dock unlocked). See SDK Callbacks for complete callback documentation.
Next Steps
- Install the SDK for your platform
- Understand the Key Request Flow and available unlock key types
- Set up Callbacks to handle SDK events
- Follow a Use Case Guide for bike parking or bike sharing
For detailed technical information, see the API Reference and Platform Guides.