|
|
||
|---|---|---|
| .. | ||
| .vscode | ||
| android | ||
| assets/images | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| node_modules | ||
| railway-worker | ||
| test | ||
| web | ||
| windows | ||
| .dockerignore | ||
| .env | ||
| .env.example | ||
| .env.template | ||
| .gitignore | ||
| .metadata | ||
| CARA_UBAH_ICON_APK.md | ||
| Dockerfile | ||
| FIREBASE_KEY_FIX.md | ||
| README.md | ||
| analysis_options.yaml | ||
| cekworker.txt | ||
| check-queue.js | ||
| clear-and-populate-dummy-data.js | ||
| debug.js | ||
| extract-credentials.js | ||
| firebase-example.json | ||
| firebase-structure-complete.json | ||
| firebase.json | ||
| migrate-history-source.js | ||
| package-lock.json | ||
| package.json | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| railway.json | ||
| setup-firebase-jadwal.js | ||
| setup-firebase-threshold.js | ||
| test-firebase-connection.js | ||
| test-firebase-direct.js | ||
| worker.js | ||
README.md
ApsGo - Sistem Penjadwalan Penyiraman Otomatis
Aplikasi Flutter untuk kontrol otomatis sistem penyiraman tanaman berbasis IoT dengan Firebase Realtime Database dan Railway Worker.
Status Terkini
✅ Sistem berjalan real-time dengan delay 20 detik/section ⚠️ Catatan: 1 waktu penjadwalan digunakan untuk banyak pompa sekaligus
Komponen Sistem
1. Flutter Mobile App
- Kontrol manual aktuator (pompa & mosvet)
- Penjadwalan otomatis (waktu mode)
- Monitoring sensor real-time
- History logging
2. Railway Worker (Node.js)
- Background automation 24/7
- Scheduler dengan timezone Asia/Jakarta
- Firebase SDK dengan REST API fallback
- BullMQ job queue untuk reliability
- Auto-recovery dari timeout issues
Fitur Utama
- Dual Mode: Kontrol manual + penjadwalan otomatis
- Real-time Sync: Firebase Realtime Database
- Reliable Execution: Timeout handling + REST API fallback
- History Tracking: Log semua aktivitas penyiraman
- Safety Mechanisms: Auto-shutoff jika error
Teknologi
- Frontend: Flutter (Dart)
- Backend Worker: Node.js v18+
- Database: Firebase Realtime Database
- Queue: Redis + BullMQ
- Deployment: Railway.app
- Authentication: Firebase Auth + Google Sign-In
Getting Started
Mobile App
flutter pub get
flutter run
Railway Worker
cd railway-worker
npm install
node worker.js