TraceMe is a powerful, lightweight Flutter application designed for on-demand device tracking. Unlike other apps, it doesn't track you continuously. Tracking only activates when you mark a device as LOST.
- Live Location Tracking: View the real-time location of your lost device on a map.
- Remote Ringing: Trigger a loud alarm on your lost device even if it's in the background.
- Lost Mode: Remotely activate location broadcasting to save battery until needed.
- Free Tier Compatible: Uses Firestore listeners instead of paid FCM limits, making it perfect for personal use on the Firebase Spark (Free) Plan.
TraceMe requires a Firebase project to function.
- Create a Firebase Project at console.firebase.google.com.
- Enable Authentication: Use Email/Password provider.
- Enable Firestore:
- Start in "Test Mode".
- Deploy the rules provided in
firestore.rulesusing:firebase deploy --only firestore:rules
- Register Apps:
- Add an Android App (use package name
com.traceme.traceme). - Download
google-services.jsonand place it inandroid/app/.
- Add an Android App (use package name
- Go to the Google Cloud Console.
- Enable the Maps SDK for Android.
- Create an API Key.
- Open
android/app/src/main/AndroidManifest.xmland replace the placeholder with your key:<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_REAL_API_KEY_HERE" />
flutter pub get
flutter runTraceMe uses a Feature-first modular architecture with Riverpod for state management:
lib/features/auth: User session and login logic.lib/features/devices: Device pairing and control panel.lib/features/map_tracking: Real-time map visualization.lib/services: Low-level services for Firebase, Audio, and Background Tracking.
- Security Rules: Only the device owner can read/write location data and commands.
- Zero Secrets: No API keys or service accounts should be committed to version control. Reference the
.gitignorefor protected files.
Built with ❤️ by the TraceMe Team.