RideAssist: High-Precision Offline-First Motorcycle Maintenance & GPS Tracker
A sleek, privacy-focused mobile application built with Flutter & Riverpod. It utilizes intelligent GPS noise-filtering to track real-time odometer metrics and dynamically compute engine health status, 100% offline.

Latar Belakang & Solusi Proyek
Pemilik sepeda motor sering kesulitan melacak riwayat servis dan masa pakai komponen penting secara akurat. Aplikasi pelacak yang ada di pasar umumnya membebani baterai karena sinkronisasi cloud yang terus-menerus, memerlukan internet stabil, dan berisiko membocorkan data rute perjalanan pribadi pengguna.
RideAssist hadir dengan konsep offline-first yang menyimpan seluruh data riwayat servis, odometer, dan log perjalanan secara lokal menggunakan SQLite. Dilengkapi mesin pelacak GPS dengan filtering noise adaptif, aplikasi ini mencatat total jarak tempuh secara akurat di latar belakang tanpa membebani daya baterai berlebih.
Handling GPS Drift & Noise Filtering in Real-Time Tracking
Saat melakukan pengujian pada sepeda motor, posisi GPS yang aktif di latar belakang mengalami drift (pergeseran koordinat) yang cukup parah saat pengendara berhenti di lampu merah atau kemacetan. Noise ini menggelembungkan total odometer hingga 15% pada rute pendek.
Mengimplementasikan filter koordinat berlapis pada Dart stream. Aplikasi menyaring titik koordinat dengan akurasi horizontal lebih buruk dari 15 meter, mengabaikan perpindahan jarak di bawah 5 meter, serta menyaring data kecepatan tidak masuk akal (di atas 120 km/jam) atau di bawah batas minimum idle (3 km/jam) sebelum diakumulasikan ke total odometer.
- Horizontal Accuracy Filter: Membuang update koordinat dengan deviasi akurasi horizontal > 15 meter.
- Distance Threshold: Mengabaikan pergerakan mikro di bawah 5 meter untuk mencegah lonjakan jarak saat berhenti.
- Dynamic Idle Threshold: Menjaga state motor tetap 'idle' jika kecepatan di bawah 3 km/jam selama lebih dari 5 detik.
Data Flow & Tracking Pipeline
Urutan eksekusi transaksi, validasi sesi autentikasi, dan pipeline sinkronisasi data real-time pada arsitektur sistem.
Stream Initialization
User mengaktifkan tracking; aplikasi memeriksa izin lokasi (Permission Handler) dan menginisialisasi GPS stream latar belakang.
Intelligent GPS Filtering
Dart stream memproses koordinat secara real-time, menyaring pergeseran (drift) menggunakan Geolocator berdasarkan horizontal accuracy (toleransi < 15 meter) dan idle threshold (kecepatan < 3 km/jam atau pergerakan < 5 meter).
Trip Consolidation & Local Commit
Data perjalanan yang telah difilter dikonsolidasikan dan disimpan ke database SQLite lokal (Sqflite). State Riverpod diperbarui untuk memicu kalkulasi ulang persentase kesehatan suku cadang (part health) dan memperbarui tampilan UI dashboard.
Firebase Auth & Firestore Cloud Sync
Jika perangkat terhubung dengan internet, data lokal yang baru disimpan akan disinkronisasikan secara asinkron (di latar belakang) ke Cloud Firestore menggunakan kredensial dari Firebase Authentication.
Tech Stack
Rasional pemilihan fondasi teknologi, bahasa pemrograman, database, dan protokol integrasi eksternal.
Flutter 3 & Dart SDK
Membangun antarmuka mobile speedometer digital dan pelacak log pemeliharaan motor dengan rendering 60fps yang mulus serta responsivitas tinggi di platform Android dan iOS.
Riverpod (StateNotifier)
Mengelola aliran data reaktif global, menghubungkan stream koordinat GPS perangkat dengan algoritma kalkulasi odometer dan status degradasi masa pakai oli/busi secara terisolasi tanpa memory leak.
SQLite (sqflite) & SharedPreferences
Menyimpan seluruh catatan riwayat servis motor, jadwal penggantian sparepart, dan log jarak tempuh harian secara lokal di memori perangkat, sehingga aplikasi dapat beroperasi 100% tanpa jaringan internet.
Firebase Auth & Cloud Firestore
Menangani autentikasi identitas pengendara dan sinkronisasi cadangan (cloud backup) profil motor serta bukti kuitansi bengkel ke database NoSQL Firestore saat koneksi internet terdeteksi.
Geolocator API & Background Stream
Mengeksekusi pembacaan sensor GPS perangkat secara berkala di latar belakang dengan filter noise deviasi horizontal (<15m) untuk menghitung odometer aktual dengan tingkat presisi 98.4%.
Image Picker & Cropper
Memfasilitasi pengambilan foto kuitansi nota servis dari kamera atau galeri serta pemotongan rasio gambar sebelum diarsipkan ke log riwayat pemeliharaan kendaraan.
Core Capabilities
Rincian fitur fungsional utama, kemampuan penanganan transaksi, dan mekanisme keandalan sistem.
GPS Odometer
Kalkulasi jarak perjalanan real-time menggunakan GPS latar belakang dengan filter drift akurasi tinggi.
Masa Pakai Part
Monitoring sisa masa pakai suku cadang (oli, busi, ban) secara dinamis berdasarkan akumulasi kilometer tempuh.
Manajemen Garasi
Kelola beberapa sepeda motor dalam satu aplikasi terintegrasi dengan data riwayat servis yang terpisah.
Penyimpanan Lokal
Seluruh data riwayat servis, trip log, dan nota disimpan 100% offline di database SQLite lokal demi privasi.
A Deep Dive into RideAssist Interfaces
Tampilan aplikasi mobile RideAssist dengan dashboard modern, kartu informasi kesehatan motor, dan visual timeline riwayat servis.

Pelacakan Perjalanan GPS
Merekam trip perjalanan dan kecepatan rata-rata menggunakan background GPS tracking dengan filtering koordinat presisi.

Merekam trip perjalanan dan kecepatan rata-rata menggunakan background GPS tracking dengan filtering koordinat presisi.
IDAMAN-TSL
Portal manajemen dan pengolahan data pemanfaatan flora dan fauna liar terintegrasi untuk Balai Besar Konservasi Sumber Daya Alam (BBKSDA) Jawa Barat. Dilengkapi fitur statistik interaktif, manajemen izin penangkar, serta database referensi taksonomi.
