Catatan Akademik: Proyek ini merupakan implementasi tugas besar perkuliahan mata kuliah Teknologi Web Service (TWS). Dikembangkan sebagai demonstrasi integrasi aplikasi mobile Flutter dengan RESTful API PHP Native. Tidak ada klaim atas konsep asli studi kasus ini.
Repositori Backend API: Lihat REST API PHP Native di vigenesia-backend
Aplikasi mobile Vigenesia (Visi Generasi Indonesia) — platform berbagi motivasi & inspirasi antar pengguna. Dibangun menggunakan Flutter dan berkomunikasi dengan backend PHP Native melalui REST API.
| Komponen | Detail |
|---|---|
| Framework | Flutter SDK ≥ 3.0.0 |
| Bahasa | Dart 3.x |
| State Management | setState (Native Flutter) |
| HTTP Client | http ^1.1.0 & dio ^5.3.0 |
| UI | curved_navigation_bar, font_awesome_flutter, flutter_svg |
| Form | flutter_form_builder ^9.0.0 |
| Notifikasi | another_flushbar ^1.12.30 |
| Upload Foto | image_picker ^1.0.4 |
- Flutter SDK sudah terinstal (versi ≥ 3.0.0).
- Backend Vigenesia sudah berjalan di PC (lihat vigenesia-backend).
- HP dan PC terhubung ke jaringan Wi-Fi yang sama.
1. Clone Repositori
git clone https://github.com/drizaldi/vigenesia-mobile.git
cd vigenesia-mobile2. Konfigurasi IP Server
Salin file template dan sesuaikan IP-nya:
cp lib/Constant/const.dart.example lib/Constant/const.dartBuka lib/Constant/const.dart dan ubah IP sesuai jaringan Wi-Fi Anda:
// Cari IP PC Anda: buka CMD → ketik "ipconfig" → lihat "IPv4 Address"
// Pastikan HP dan PC di jaringan Wi-Fi yang SAMA
String url = "http://192.168.x.x/vigenesia"; // Ganti dengan IP Anda3. Install Dependensi
flutter pub get4. Jalankan Aplikasi
Pilih salah satu metode pengujian berikut:
-
Opsi A: Melalui Emulator / HP Fisik (USB Debugging)
flutter run
-
Opsi B: Langsung dari Browser HP (Jaringan Lokal / Wi-Fi yang Sama)
# Jalankan sebagai Web Server lokal flutter run -d web-server --web-hostname 0.0.0.0 --web-port 8080Tips Pengujian HP: Buka browser di ponsel Anda (Chrome/Safari) lalu ketik:
http://<IP_PC_ANDA>:8080(contoh:http://192.168.1.50:8080). Seluruh antarmuka aplikasi dapat langsung diuji tanpa perlu kabel USB atau install APK!
vigenesia-mobile/
├── lib/
│ ├── Constant/
│ │ ├── const.dart.example # Template konfigurasi IP (commit aman)
│ │ └── const.dart # Konfigurasi IP asli (DIABAIKAN git)
│ ├── Models/
│ │ ├── Login_Model.dart # Model parser response Login
│ │ └── Motivasi_Model.dart # Model parser data Motivasi
│ ├── Screens/
│ │ ├── SplashScreen.dart
│ │ ├── Login.dart
│ │ ├── Register.dart
│ │ ├── MainScreens.dart
│ │ ├── MemberDashboard.dart
│ │ ├── AdminDashboard.dart
│ │ ├── RuangTulisMotivasi.dart
│ │ ├── MotivasiPribadi.dart
│ │ ├── SemuaMotivasi.dart
│ │ ├── RiwayatMotivasi.dart
│ │ ├── DetailMotivasi.dart
│ │ ├── EditMotivasiPage.dart
│ │ ├── HapusMotivasi.dart
│ │ ├── ProfilePage.dart
│ │ ├── EditProfile.dart
│ │ ├── MotivatorProfile.dart
│ │ ├── MenuMelihatMotivasi.dart
│ │ └── EditPage.dart
│ └── main.dart
├── assets/
├── android/
├── ios/
├── .gitignore
├── pubspec.yaml
└── README.md
| Screen | Deskripsi |
|---|---|
| Splash Screen | Tampilan loading awal aplikasi |
| Login | Autentikasi pengguna |
| Register | Pendaftaran akun baru |
| Main Navigation | Curved Navigation Bar antar halaman utama |
| Member Dashboard | Beranda member, daftar motivasi terbaru |
| Admin Dashboard | Beranda khusus Admin dengan kontrol tambahan |
| Ruang Tulis Motivasi | Form input & publikasi motivasi baru |
| Motivasi Pribadi | Daftar motivasi milik sendiri (filter: publik/pribadi) |
| Semua Motivasi | Jelajahi semua motivasi dari seluruh pengguna |
| Riwayat Motivasi | Trash bin — motivasi yang dihapus sementara |
| Detail Motivasi | Tampilan detail, tombol Like & Favorit |
| Edit Motivasi | Form ubah konten & status publik motivasi |
| Hapus Motivasi | Konfirmasi hapus (soft delete) |
| Profil Pengguna | Tampilan profil dengan foto & statistik |
| Edit Profil | Upload foto dari galeri/kamera, ubah nama & profesi |
| Profil Motivator | Lihat profil & motivasi pengguna lain |
| Menu Kategori | Filter motivasi berdasarkan kategori |
| Edit Page | Helper page untuk operasi edit |
- Aplikasi dirancang untuk berjalan di jaringan lokal (LAN/Wi-Fi). Tidak tersedia di internet publik.
- Pastikan Laragon/XAMPP aktif sebelum menjalankan aplikasi.
Dikembangkan oleh @drizaldi — Tugas Mata Kuliah Teknologi Web Service (TWS)