A smart running assistant Flutter mobile app with AI powered voice guidance and route tracking designed to provide a seamless user experience on both Android and iOS platforms.
RunSight is a smart running assistance system consisting of a Flutter mobile app that pairs with IoT smart glasses for AI-powered running guidance. The system features autonomous IoT devices that provide real-time voice navigation and obstacle detection, while the mobile app serves as a companion for viewing run history, statistics, and device management. The architecture follows an offline-first approach where runs are processed locally on the IoT device and synced to the backend when connectivity is available.
- Cross-platform support (iOS & Android)
- Device pairing with IoT smart glasses via 6-digit codes
- Run history and performance analytics with charts
- Real-time device status monitoring (battery, sync status)
- User authentication and profile management
- Responsive UI with custom fonts (Poppins)
- Autonomous running sessions on smart glasses
- AI-powered obstacle detection and voice guidance
- Local data processing with offline-first architecture
- Automatic data synchronization when connected
- Real-time telemetry and frame processing
- Flutter SDK (version 3.9 or above)
- Android Studio or VS Code with Flutter & Dart plugins
- An Android/iOS device or emulator
- Clone the repo
git clone https://github.com/labmino/runsight_app.git
cd runsight_app
- Install dependencies
flutter pub get
- Run the app
flutter run
After launching the app, you can:
- Register or log in to your account
- Start a run with voice-guided instructions
- Track your route in real-time on the map
- View performance charts and statistics
- Capture and save run photos
- Sync data across devices
RunSight follows a distributed architecture with three main components:
- IoT Smart Glasses: Autonomous devices running local AI models for real-time obstacle detection and voice guidance
- Mobile App: Flutter companion app for device management, run history, and analytics
- Backend API: RESTful service (http://localhost:8080/api/v1) handling authentication, device pairing, and data synchronization
- Database: PostgreSQL for storing user data, device information, and run metrics
Get
for state management and routingProvider
for additional state managementGet_it
for dependency injectionpbp_django_auth
for backend authentication- Modular codebase with separate modules for controllers, presentation, and widgets
- IoT Autonomy: Runs start/stop on device; mobile app not required for sessions
- Offline-First: IoT devices store runs locally and sync when network available
- Stateless Backend: No persistent server-side sessions
- Mobile View-Only: App primarily reads history and manages devices
- Flutter
- Dart
- Get
- Provider
- Flutter Map
- Flutter TTS
- FL Chart
- Image Picker
- Cached Network Image
- Google Fonts
- Lottie
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your code follows the existing style and is well-documented.
Distributed under the MIT License. See LICENSE
for more information.