- Dart 99.8%
- Kotlin 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Align client paths and response parsing with docs/TRANSPORT_API.md so login, assignment, GPS, and scan IN/OUT work against demoschool. |
||
| android | ||
| docs | ||
| lib | ||
| test | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
iRedu Driver / Conductor
Flutter app for Hi-Scholar / iRedu school bus drivers and conductors.
| Package | com.irinfotech.iredu_driver |
| Path | /run/media/harish/New Volume/irinfotech/school/iredu_driver_app/ |
| Demo school | https://demoschool.irinfotech.com |
| School code | HISCHOLAR |
Features
- School code → URL lookup (same SaaS discovery as student Hi-Scholar app)
- Staff login (driver / conductor) with role permissions when API returns them
- Today's bus / route assignment
- Start / end trip
- Google Map: bus GPS, route stops, optional student stops (or placeholder if no Maps key)
- Foreground GPS upload while trip is active
- QR / barcode / admission-number scan for IN (onboard) and OUT (deboard)
- On-bus list + recent scans
Login
- Open app → enter school code
HISCHOLAR(or paste school URL) - Driver demo: username
DRV01/ passwordDriver@123 - Start trip → use Map / Scan / On bus tabs
APIs: {school}/api/Transportapi/... (see docs/TRANSPORT_API.md)
Google Maps API key
Maps tiles need a key. Without one, use the in-app map placeholder (stops + GPS text still work).
Option A — android/local.properties:
MAPS_API_KEY=your_key_here
# or
GOOGLE_MAPS_API_KEY=your_key_here
Option B — AndroidManifest meta-data com.google.android.geo.API_KEY (already wired via ${MAPS_API_KEY}).
Enable Maps SDK for Android for the key in Google Cloud Console.
API contract
This app calls endpoints documented in demoschool docs/TRANSPORT_API.md.
Client path constants: lib/config/api_paths.dart
Summary: docs/TRANSPORT_API_CLIENT.md
Base: {school}/api/transport/...
When the server doc changes path names, update api_paths.dart only.
Build debug APK
cd "/run/media/harish/New Volume/irinfotech/school/iredu_driver_app"
flutter pub get
flutter build apk --debug
APK output:
build/app/outputs/flutter-apk/app-debug.apk
Install (if adb / device available):
adb install -r build/app/outputs/flutter-apk/app-debug.apk
Permissions
- Location (fine + background declared; GPS upload runs while trip active in foreground)
- Camera (QR/barcode scan)
- Internet
Notes
- Separate package from student app (
com.irinfotech.hischolar) - Does not touch Pundi
- Driver and conductor share this APK; UI gates scan/trip/GPS using role/permissions from API when present