Go to file
bimabuana ce118a806b feat: implementasikan visualisasi isometrik 2.5D, heatmap sensor, range slider suhu, debit air, dan panduan budidaya 2026-07-06 15:51:30 +07:00
android wip: simpan perubahan sebelum revisi heatmap dan sensor 2026-07-06 15:43:06 +07:00
assets/images wip: simpan perubahan sebelum revisi heatmap dan sensor 2026-07-06 15:43:06 +07:00
lib feat: implementasikan visualisasi isometrik 2.5D, heatmap sensor, range slider suhu, debit air, dan panduan budidaya 2026-07-06 15:51:30 +07:00
test Initial commit 2026-05-21 04:34:12 +07:00
.gitignore Initial commit 2026-05-21 04:34:12 +07:00
.metadata Initial commit 2026-05-21 04:34:12 +07:00
README.md Initial commit 2026-05-21 04:34:12 +07:00
analysis_options.yaml Initial commit 2026-05-21 04:34:12 +07:00
laporan_414_arsitektur_integrasi.md Initial commit 2026-05-21 04:34:12 +07:00
laporan_421_implementasi_android.md Initial commit 2026-05-21 04:34:12 +07:00
laporan_alur_aplikasi.md wip: simpan perubahan sebelum revisi heatmap dan sensor 2026-07-06 15:43:06 +07:00
laporan_autentikasi_baru.md wip: simpan perubahan sebelum revisi heatmap dan sensor 2026-07-06 15:43:06 +07:00
laporan_usecase_diagram.md wip: simpan perubahan sebelum revisi heatmap dan sensor 2026-07-06 15:43:06 +07:00
pubspec.lock Initial commit 2026-05-21 04:34:12 +07:00
pubspec.yaml Initial commit 2026-05-21 04:34:12 +07:00
rencana.md wip: simpan perubahan sebelum revisi heatmap dan sensor 2026-07-06 15:43:06 +07:00

README.md

🍄 JTA Jamur Tiram Antirogo (Aplikasi Mobile IoT)

Aplikasi mobile JTA (Jamur Tiram Antirogo) merupakan komponen antarmuka (frontend) dalam ekosistem IoT budidaya jamur tiram. Aplikasi ini memungkinkan pengguna untuk memantau kondisi lingkungan (suhu dan kelembapan) serta mengontrol perangkat keras penyiram (sprayer) secara near real-time.


🌟 Fitur Utama

  • Near Real-Time Monitoring: Pemantauan suhu dan kelembapan kumbung jamur secara berkala (polling otomatis setiap 5 detik) dilengkapi grafik historis harian dan per jam.
  • IoT Remote Control: Pengaturan mode operasi (Otomatis / Manual) dan tombol penyiraman instan.
  • Threshold Settings: Batasi rentang suhu dan kelembapan ideal untuk mengaktifkan penyiraman otomatis.
  • Irrigation Scheduling: Penjadwalan penyiraman otomatis berdasarkan waktu/jam tertentu.
  • Secure Authentication: Keamanan akun pengguna (login/register) serta persistensi sesi menggunakan layanan Supabase Auth.
  • Push Notifications: Notifikasi status perangkat atau peringatan kondisi kumbung via OneSignal.

🏗️ Arsitektur Sistem

Aplikasi dikembangkan menggunakan Layered Architecture dengan pembagian tanggung jawab sebagai berikut:

  1. Presentation Layer: Antarmuka pengguna (UI) reaktif (MonitoringPage, ControlPage, SchedulePage, dsb.).
  2. State Management (Riverpod): Manajemen state terpusat (MonitoringNotifier, ControlNotifier, AuthNotifier).
  3. Repository Layer: Abstraksi akses data (IotRepository, AuthRepository).
  4. Service Layer: Jaringan komunikasi HTTP menggunakan Dio (ApiIotService, ApiControlService) dan Supabase Flutter SDK (SupabaseAuthService).

🛠️ Teknologi & Dependensi

  • Framework: Flutter (Dart)
  • State Management: Flutter Riverpod & StateNotifier
  • Database & Auth: Supabase Flutter
  • HTTP Client: Dio
  • Notification Service: OneSignal Flutter
  • Chart Visuals: Fl Chart / Grafik Kustom

🚀 Langkah Persiapan & Cara Menjalankan Proyek

Ikuti langkah-langkah di bawah ini untuk mengkloning dan menjalankan proyek ini di lingkungan lokal Anda.

1. Kloning Repositori

Jalankan perintah berikut di terminal komputer Anda:

git clone <URL_REPOSITORI_GITHUB_ANDA>
cd JTA

2. Konfigurasi Lingkungan Lokal (PENTING 🔑)

Untuk keamanan kredensial, berkas asli env.dart tidak diunggah ke GitHub (sudah terdaftar di .gitignore). Anda harus membuat berkas tersebut secara manual menggunakan template contoh:

  1. Salin berkas template lib/core/env.example.dart dan buat berkas baru dengan nama lib/core/env.dart.
  2. Buka berkas lib/core/env.dart, kemudian hilangkan komentar pada kelas Env dan isi dengan kredensial proyek Supabase & OneSignal Anda sendiri:
class Env {
  // --- BASE API URL ---
  static const String baseUrl = 'https://api.jta.web.id/api'; // Ganti jika memakai emulator/WiFi lokal

  // --- SUPABASE CONFIGURATION ---
  static const String supabaseUrl = 'https://YOUR_SUPABASE_PROJECT.supabase.co';
  static const String supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY';

  // --- ONESIGNAL CONFIGURATION ---
  static const String oneSignalAppId = 'YOUR_ONESIGNAL_APP_ID';
}

3. Install Dependensi

Jalankan perintah berikut untuk mengunduh semua paket dependensi Flutter yang dibutuhkan:

flutter pub get

4. Jalankan Aplikasi

Hubungkan ponsel asli (aktifkan USB Debugging) atau jalankan emulator Android/iOS Anda, kemudian ketik:

flutter run

📁 Struktur Direktori Utama

lib/
├── core/            # Tema aplikasi, rute navigasi, dan konfigurasi Env
├── features/        # Modul fitur utama (auth, monitoring, control, schedule)
│   ├── auth/
│   ├── monitoring/
│   ├── control/
│   └── schedule/
├── services/        # Akses layanan eksternal (Supabase Auth & API REST)
└── main.dart        # Titik masuk utama (Entry point) aplikasi