PlanKP adalah aplikasi mobile & desktop berbasis Flutter yang dirancang khusus untuk mempermudah tim General Affairs (GA), IT Support, dan Driver di lingkungan Kencana Print dalam mengelola, merencanakan, serta memonitor realisasi kegiatan preventive maintenance aset perusahaan secara periodik.
- Autentikasi & Otorisasi: Manajemen sesi aman dengan JWT, login/register, dan pembatasan hak akses berbasis Jabatan (Admin, Teknisi, IT Support, dll.) serta Divisi.
- Master Data: Kelola jenis aset, daftar inventaris aktif, template checklist pemeriksaan, data pabrik, dan akun user.
- Preventive Maintenance: Penjadwalan otomatis berdasarkan frekuensi (Harian, Mingguan, dan Bulanan) dengan target unit per periode.
- Eksekusi Realisasi: Pengisian lembar checklist kerja secara digital, unggah bukti foto maintenance, dan pembubuhan tanda tangan (signature) digital langsung dari aplikasi.
- Dashboard & Analitik: Ringkasan capaian preventive maintenance, jadwal terdekat, tingkat kepatuhan (kepatuhan %), dan alur panduan operasional admin baru.
lib/
├── core/
│ ├── constants/ # Konstanta global, rute navigasi, & kunci storage
│ └── utils/ # Klien HTTP kustom (ApiClient) & helper
├── features/
│ ├── auth/ # Modul login, register, dan Provider autentikasi
│ ├── dashboard/ # Layar dashboard utama & grafik ringkasan KPI
│ ├── jadwal/ # Modul penjadwalan & form realisasi
│ └── master/ # CRUD Jenis, Inventaris, User, Checklist Template, dll.
└── main.dart # Titik masuk utama aplikasi (setup tema, routing, & provider)
Sebelum memulai, pastikan perangkat Anda telah terpasang software berikut:
- Flutter SDK:
>= 3.0.0 < 4.0.0 - Dart SDK: Terintegrasi dengan Flutter SDK
- Java Development Kit (JDK): Versi 11 atau yang lebih baru (untuk build Android)
- Android Studio / VS Code beserta ekstensi Flutter & Dart
Jalankan perintah berikut pada direktori proyek untuk mengunduh semua package yang dideklarasikan pada pubspec.yaml:
flutter pub getAplikasi ini mendukung konfigurasi environment menggunakan fitur bawaan Flutter --dart-define-from-file.
- Salin berkas
.env.examplemenjadi.envdi root direktori proyek:cp .env.example .env
- Buka berkas
.envbaru tersebut dan sesuaikan URL sesuai lingkungan development Anda:Catatan: Jika Anda menguji menggunakan emulator Android, gunakan IPAPI_BASE_URL=http://localhost:3003/api UPDATE_MANIFEST_URL=http://localhost:8183/releases/latest.json
http://10.0.2.2:3003/api.
Jalankan aplikasi di perangkat emulator, physical device, atau browser dengan menyertakan konfigurasi environment:
flutter run --dart-define-from-file=.envJika Anda ingin menjalankan tanpa file .env (fallback otomatis akan mengarah ke alamat server produksi internal Kencana Print):
flutter runUntuk mendistribusikan aplikasi ke lingkungan produksi, jalankan perintah build dengan menyertakan file .env produksi:
flutter build apk --release --dart-define-from-file=.envHasil file APK dapat ditemukan di direktori: build/app/outputs/flutter-apk/app-release.apk.
flutter build appbundle --release --dart-define-from-file=.envflutter build windows --release --dart-define-from-file=.envflutter build ipa --release --dart-define-from-file=.env- Token autentikasi JWT disimpan secara aman di dalam memori penyimpanan perangkat menggunakan Flutter Secure Storage (Keychain untuk iOS, Keystore untuk Android) sehingga tidak mudah diakses oleh aplikasi luar.
- Konfigurasi API tersimpan di dalam berkas app_constants.dart menggunakan konstruktor
constagar nilai environment di-inject langsung saat build-time, menghindari overhead pembacaan berkas pada runtime.