Skip to content

About

Aplikasi dibangun sebagai pemenuhan tugas akhir Mata Kuliah Pemrograman Mobile. Aplikasi ini dibangun dengan bahasa Dart dan Framework Flutter, yang dalam perancangannya terintegrasi dengan ERP Odoo dalam Mata Kuliah Perencanaan Sumber Daya. Tujuan dari aplikasi ini adalah untuk mempermudah dalam p

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RouteWise (route_wise)

Industrial Dispatch, Fleet Telematics & Decision Support System (SPK SAW)
Terintegrasi dengan Odoo ERP melalui protokol JSON-RPC untuk rantai pasok dan distribusi barang terpadu.


πŸ“‘ Daftar Isi

  1. Ringkasan Eksekutif & Filosofi Desain
  2. Kredensial Autentikasi Operasional (Siap Pakai)
  3. Arsitektur Responsif Dual-Mode
  4. Fitur-Fitur Utama Sistem
  5. Metodologi SPK (Simple Additive Weighting - SAW)
  6. Integrasi Odoo ERP (JSON-RPC)
  7. Peta Interaktif & Telematika GPS Armada
  8. Struktur Direktori Proyek
  9. Panduan Instalasi & Menjalankan Aplikasi
  10. Pengujian Otomatis (Quality Assurance)
  11. Tim Pengembang & Pembagian Tugas

🏭 Ringkasan Eksekutif & Filosofi Desain

RouteWise adalah platform manajemen logistik dan ekspedisi pergudangan modern yang dirancang khusus untuk operasional distribusi barang antar-agen. Sistem ini memadukan:

  • ERP Odoo Integration untuk sinkronisasi pesanan penjualan (Sales Order) dan status transfer gudang (Delivery Order/Picking).
  • Sistem Pendukung Keputusan (SPK) berbasis metode Simple Additive Weighting (SAW) guna menentukan urutan prioritas toko/agen tujuan pengiriman.
  • Peta Interaktif & Telematika Armada dengan kalkulasi rute OSRM (Open Source Routing Machine), simulasi pergerakan armada secara real-time, dan navigasi turn-by-turn.

🎨 Filosofi Desain: Anti-AI-Slop Industrial Dispatch & Manifest Ledger

Antarmuka RouteWise menolak estetika generik AI (gradient ungu mengambang, rounded corners berlebihan, drop shadow buram, dan ilustrasi kosong tanpa konteks). Desain dibangun berlandaskan prinsip dokumen manifes logistik riil:

  • Tipografi Terstruktur: Kombinasi Roboto Mono untuk data metrik, koordinat GPS, NIP, nilai numerik tabular, serta Montserrat tebal untuk tajuk dokumen operasional.
  • Palet Warna Nyata: Kanvas perkamen hangat (#F4F1EA), permukaan putih tulang (#FFFFFF), teks arang pekat (#1A1715), dan aksen bata industri (#9E3A1A).
  • Micro-detail Taktil: Border tegas 1px, cap status fisik (Approved / Pending / Standby), garis putus-putus tanda sobekan karcis manifes (dashed rules), dan tabel densitas tinggi.

πŸ” Kredensial Autentikasi Operasional (Siap Pakai)

Sistem telah dilengkapi dengan profil personel pra-konfigurasi untuk masing-masing wewenang operasional:

Peran Operasional Email / NIP Kata Sandi Nama Personel Wewenang & Hak Akses
Kepala Gudang david@routewise.id password123 David Timoteus Ringkasan stok gudang, verifikasi & persetujuan permintaan pasar, sinkronisasi Odoo ERP.
Driver Ekspedisi Maulana@gmail.com password123 Ilham Maulana Ahmad Manajemen manifest muatan, update status pengiriman (Success/On Progress), telematika GPS & navigasi rute.
Admin SPK iqbal@routewise.id password123 Moh Iqbal Fatoni Konfigurasi bobot kriteria SAW, analisis matriks normalisasi, audit skor preferensi alternatif toko.

Catatan Keamanan: Kolom input email dan sandi tidak pernah diisi otomatis (zero hardcoded auto-fill) demi menjaga integritas data autentikasi. Pengguna juga dapat mendaftar akun mandiri melalui menu "Daftar Akun Baru".


πŸ–₯️ Arsitektur Responsif Dual-Mode

RouteWise memiliki mesin adaptif yang mendeteksi resolusi layar secara dinamis:

  1. Mode Desktop Dispatch Console (Widescreen > 900px):
    • Sidebar navigasi tetap di sisi kiri dengan info personel aktif dan status koneksi ERP.
    • Layout multi-kolom berdampingan: Peta Radar GPS di sisi kiri (58%) dan Manifes Rekomendasi Rute di sisi kanan (42%).
  2. Mode Smartphone Viewport Simulator:
    • Tersedia tombol "LIHAT TAMPILAN HP" di sidebar desktop untuk menguji langsung tata letak perangkat seluler 380px tanpa perlu mengubah ukuran jendela peramban (browser).
    • Dilengkapi notch, speaker bar, dan Bottom Navigation Bar khas aplikasi mobile asli.

βš™οΈ Fitur-Fitur Utama Sistem

                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚          RouteWise Portal Hub           β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                      β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                            β”‚                            β”‚
         β–Ό                            β–Ό                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Kepala Gudang   β”‚        β”‚ Driver Ekspedisi β”‚        β”‚    Admin SPK     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€        β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€        β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚β€’ Stok Gudang     β”‚        β”‚β€’ Manifest Kirim  β”‚        β”‚β€’ Matriks SAW     β”‚
β”‚β€’ Validasi Order  β”‚        β”‚β€’ Radar GPS OSRM  β”‚        β”‚β€’ Bobot Kriteria  β”‚
β”‚β€’ Sinkron Odoo    β”‚        β”‚β€’ Simulasi Armada β”‚        β”‚β€’ Urutan Prioritasβ”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Portal Autentikasi: Login multi-peran dengan segmen tombol chip peran terintegrasi.
  2. Dashboard Kepala Gudang:
    • Kartu metrik: Total Permintaan, Pengiriman Aktif, Selesai, dan Sinkronisasi ERP.
    • Grafik batang visualisasi produk terlaris (Djava Mild, Djava Ocha, Djava Traditional).
    • Ledger ringkas pengiriman hari ini dengan tombol persetujuan cepat.
  3. List Permintaan Pasar:
    • Pencarian instan dan filter tab status (Semua, Menunggu, Disetujui, Ditolak).
    • Dialog penolakan dengan catatan alasan resmi.
    • Setiap permintaan yang disetujui otomatis masuk ke jadwal muatan pengiriman.
  4. Proses Pengiriman Barang:
    • Monitoring manifest pengiriman dengan live status toggle (On Progress $\leftrightarrow$ Success).
    • Informasi koordinat drop-off, agen penerima, dan kuantitas pack rokok.
  5. Pengelolaan SPK (Metode SAW):
    • Panel konfigurasi bobot dinamis untuk 4 kriteria utama.
    • Visualisasi matriks ternormalisasi dan skor akhir preferensi ($V_i$).
  6. Rekomendasi Pemilihan Rute:
    • Peta interaktif berbasis koordinat nyata Hub Kebonsari Malang.
    • Perhitungan jarak otomatis (Haversine & OSRM Routing).
  7. Kelola Profil Personel:
    • Pembaruan nama, nomor kontak, email, dan kata sandi akun aktif.

πŸ“ Metodologi SPK (Simple Additive Weighting - SAW)

Sistem Pendukung Keputusan (SPK) di RouteWise menggunakan algoritma Simple Additive Weighting (SAW) untuk mencari penjumlahan terbobot dari rating kinerja setiap alternatif toko pada seluruh kriteria.

1. Kriteria Penilaian

Kode Nama Kriteria Kategori Bobot ($W_j$) Keterangan
$C_1$ Jarak Tempuh Gudang Cost (Biaya) $0.25$ Semakin dekat jarak, semakin tinggi prioritas.
$C_2$ Jumlah Muatan Barang Benefit (Keuntungan) $0.30$ Semakin banyak muatan pesanan, semakin diprioritaskan.
$C_3$ Estimasi Biaya Operasional Cost (Biaya) $0.25$ Semakin hemat biaya solar/operasional, semakin disukai.
$C_4$ Estimasi Waktu Tempuh Cost (Biaya) $0.20$ Semakin singkat durasi perjalanan, semakin efisien.

$$\sum_{j=1}^{4} W_j = 0.25 + 0.30 + 0.25 + 0.20 = 1.00$$

2. Rumus Normalisasi Matriks ($R_{ij}$)

Untuk kriteria bertipe Benefit: $$R_{ij} = \frac{x_{ij}}{\max_i(x_{ij})}$$

Untuk kriteria bertipe Cost: $$R_{ij} = \frac{\min_i(x_{ij})}{x_{ij}}$$

3. Rumus Nilai Preferensi Alternatif ($V_i$)

$$V_i = \sum_{j=1}^{n} W_j \cdot R_{ij}$$

Alternatif dengan nilai $V_i$ terbesar menjadi Rekomendasi Stop Prioritas #1 dalam manifes pengiriman armada.


πŸ”— Integrasi Odoo ERP (JSON-RPC)

RouteWise dilengkapi dengan layanan OdooService yang berkomunikasi langsung dengan Odoo ERP melalui endpoint JSON-RPC:

  • Autentikasi: Endpoint /jsonrpc memanggil common.authenticate dengan parameter database, username, dan API key/password.
  • Pengambilan Sales Order: Membaca model sale.order dan sale.order.line untuk mengonversi pesanan agen menjadi daftar permintaan pasar (MarketRequest).
  • Pengambilan Delivery Orders: Membaca model stock.picking dan stock.move untuk melacak nomor resi surat jalan ekspedisi (DeliveryOrder).
  • Resilient Fallback: Jika server Odoo offline atau belum terhubung, aplikasi beralih secara mulus ke memori lokal tanpa memblokir antarmuka pengguna.

πŸ—ΊοΈ Peta Interaktif & Telematika GPS Armada

Layar Rekomendasi Rute menyediakan konsol telematika armada tingkat lanjut:

  1. Interactive Vector Canvas:
    • Mendukung Pan & Drag bebas dengan klik/seret kursor mouse atau sentuhan jari.
    • Kontrol zoom bertingkat (+, -, dan βŠ™ Recenter).
  2. 3 Preset Tema Visual Peta:
    • πŸ“œ Kertas Gudang (Ledger): Desain perkamen industri hangat dengan kontur arang pekat.
    • πŸŒ™ Radar Night Ops: Mode gelap taktikal dengan jalur neon emerald (#10B981).
    • πŸ“ Blueprint CAD: Latar biru arsitektural dengan garis koordinat cyan terang.
  3. Simulasi Armada Bergerak (Fleet Telematics HUD):
    • Tombol β–Ά JALANKAN SIMULASI menganimasikan truk ekspedisi melintasi kurva Bezier dari Hub Malang ke toko tujuan.
    • Truk otomatis memutar orientasi bodi (heading rotation) sesuai sudut belokan rute.
    • Dilengkapi speedometer dinamis (38–48 Km/jam), kalkulator sisa ETA, dan progress bar tempuh (0%–100%).
  4. Quick-Stop Carousel:
    • Strip tombol horizontal di atas peta untuk berpindah antar-toko tujuan secara instan.
  5. Inspeksi Waypoint & Panduan Langkah:
    • Klik pin toko mana saja untuk membuka kartu manifes detail dan estimasi biaya bahan bakar.
    • Tombol πŸ“‹ PANDUAN LANGKAH menyajikan instruksi rute per segmen jalan.

πŸ“‚ Struktur Direktori Proyek

route_wise/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ Components/
β”‚   β”‚   β”œβ”€β”€ bottom_nav_bar.dart      # Navigasi responsif (Desktop & Mobile Frame)
β”‚   β”‚   └── text_field.dart          # Komponen input teks standar
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   └── route_models.dart        # Model data (User, Request, Delivery, SPK)
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ DashboardKepalaGudang.dart # Dasbor ringkasan KPI gudang
β”‚   β”‚   β”œβ”€β”€ KelolaProfil.dart        # Form pembaruan profil pengguna
β”‚   β”‚   β”œβ”€β”€ ListPermintaan.dart      # Verifikasi & approval permintaan pasar
β”‚   β”‚   β”œβ”€β”€ Login.dart               # Halaman login bebas hardcoded value
β”‚   β”‚   β”œβ”€β”€ PengelolaanSPK.dart      # Konfigurasi bobot & kalkulasi SAW
β”‚   β”‚   β”œβ”€β”€ PengirimanBarang.dart    # Manifes pelacakan status pengiriman
β”‚   β”‚   β”œβ”€β”€ Profil.dart              # Tampilan ringkasan profil personel
β”‚   β”‚   β”œβ”€β”€ RekomendasiRute.dart     # Peta interaktif OSRM & telematika GPS
β”‚   β”‚   β”œβ”€β”€ SignUp.dart              # Pendaftaran akun personel baru
β”‚   β”‚   └── WelcomeScreen.dart       # Landing page awal sistem
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ app_state.dart           # State management terpusat (ChangeNotifier)
β”‚   β”‚   β”œβ”€β”€ odoo_service.dart        # Klien JSON-RPC Odoo ERP
β”‚   β”‚   └── spk_calculator.dart      # Mesin kalkulator algoritma SAW & Haversine
β”‚   β”œβ”€β”€ theme/
β”‚   β”‚   └── app_theme.dart           # Sistem token desain Industrial Ledger
β”‚   └── main.dart                    # Entry point aplikasi
β”œβ”€β”€ test/
β”‚   └── widget_test.dart             # Unit test & Widget test otomatis
β”œβ”€β”€ web/                             # Aset & konfigurasi web runner
β”œβ”€β”€ android/                         # Konfigurasi native platform Android
β”œβ”€β”€ pubspec.yaml                     # Manifest paket dependensi Flutter
└── README.md                        # Dokumentasi komprehensif sistem

πŸš€ Panduan Instalasi & Menjalankan Aplikasi

1. Prasyarat Sistem

  • Flutter SDK: Versi 3.10.0 atau yang lebih baru.
  • Dart SDK: Versi ^3.1.0.
  • Web Browser: Google Chrome / Microsoft Edge / Mozilla Firefox.

2. Kloning Repository

git clone https://github.com/DavidTimoteus/route_wise.git
cd route_wise

3. Unduh Dependensi

flutter pub get

4. Menjalankan di Browser Web

Untuk menjalankan mode pengembangan dengan Hot Reload:

flutter run -d chrome

Atau kompilasi bundel produksi web:

flutter build web

Hasil kompilasi akan berada di folder build/web/ dan dapat disajikan menggunakan web server lokal (misalnya Python):

python -m http.server 8088 --directory build/web

Akses melalui peramban di: http://localhost:8088.

5. Menghubungkan ke Server Odoo ERP (Opsional)

Jalankan aplikasi dengan menyertakan argumen --dart-define:

flutter run -d chrome --dart-define=ODOO_URL=http://localhost:8069 --dart-define=ODOO_DB=routewise_erp

πŸ§ͺ Pengujian Otomatis (Quality Assurance)

RouteWise dilengkapi rangkaian uji otomatis (Unit Test & Widget Test) untuk menjamin keandalan alur bisnis dan matematika SPK:

flutter test

Cakupan pengujian mencakup:

  1. WelcomeScreen renders login and signup actions β€” Memverifikasi ketersediaan tombol navigasi utama.
  2. Tapping MASUK KE SISTEM navigates to Login screen β€” Memverifikasi perpindahan rute dan form autentikasi.
  3. SpkCalculator ranks alternatives accurately using SAW method β€” Memverifikasi keakuratan normalisasi kriteria Cost/Benefit dan perangkingan toko.

πŸ‘₯ Tim Pengembang & Pembagian Tugas

Proyek ini dikembangkan oleh tim mahasiswa sebagai tugas implementasi sistem informasi logistik terpadu:

No. Nama Pengembang Profil GitHub Fokus Pembagian Tugas
1 David Timoteus Arya Bakti Pamungkas @DavidTimoteus System Architecture, Welcome Screen, Login & Sign-Up, Dashboard Kepala Gudang, Desain Responsif Desktop/Mobile, dan Integrasi Odoo ERP.
2 Ilham Maulana Ahmad @Maulanailham289 Kelola Profil Personel, Sidebar Menu Profil, Navigasi Bottom Nav, dan Dokumentasi Sistem.
3 Moh Iqbal Fatoni @iqbalfatoni10 Modul Rekomendasi Rute, Algoritma SPK SAW, List Permintaan Pasar, dan Monitoring Pengiriman Barang.

πŸ“„ Lisensi

Proyek ini didistribusikan di bawah lisensi terbuka untuk keperluan akademik dan pengembangan sistem distribusi logistik. Hak cipta Β© 2026 Tim Pengembang RouteWise.

About

Aplikasi dibangun sebagai pemenuhan tugas akhir Mata Kuliah Pemrograman Mobile. Aplikasi ini dibangun dengan bahasa Dart dan Framework Flutter, yang dalam perancangannya terintegrasi dengan ERP Odoo dalam Mata Kuliah Perencanaan Sumber Daya. Tujuan dari aplikasi ini adalah untuk mempermudah dalam p

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages