3.8 KiB
3.8 KiB
DEPLOYMENT GUIDE - API & FLUTTER APP
📱 DEPLOYMENT FLUTTER APP
Step 1: Build APK (Android)
cd c:\fluuter.u\permintaandanprediksi_stok_bahan_kue\finalproject
flutter clean
flutter pub get
flutter build apk --release
Output APK: build\app\outputs\flutter-apk\app-release.apk
Step 2: Build AppBundle (Google Play)
flutter build appbundle --release
Output: build\app\outputs\bundle\release\app-release.aab
Step 3: Install APK to Device
flutter install
# OR
adb install build\app\outputs\flutter-apk\app-release.apk
🚀 DEPLOYMENT PYTHON API
Option A: Heroku (Cloud - Recommended)
1. Install Heroku CLI
https://devcenter.heroku.com/articles/heroku-cli
2. Create Procfile
File: ml_model/Procfile
web: gunicorn app:app
3. Update requirements.txt
cd ml_model
pip freeze > requirements.txt
# Add gunicorn:
echo "gunicorn==20.1.0" >> requirements.txt
4. Deploy to Heroku
heroku login
heroku create prediksi-stok-api
git push heroku main
5. Access API
https://prediksi-stok-api.herokuapp.com/health
6. Update Flutter API URL
lib/services/ml_service.dart:
static const String baseUrl = 'https://prediksi-stok-api.herokuapp.com';
Option B: Local Server (Development)
1. Keep API Running
cd ml_model
python app.py
2. Access from Phone
Use IP address instead of localhost:
http://192.168.1.75:5000
Ganti 192.168.1.75 dengan IP lokal Anda.
3. Update Flutter API URL
lib/services/ml_service.dart:
static const String baseUrl = 'http://192.168.1.75:5000';
Option C: AWS EC2 (Advanced)
- Launch EC2 instance (Ubuntu)
- Install Python & dependencies
- Deploy Flask with Gunicorn + Nginx
- Get Elastic IP
- Update Flutter API URL
✅ CHECKLIST SEBELUM DEPLOY
Backend
- API running locally? (
python app.py) - All endpoints working? (Test 1-4)
- Models loaded correctly?
- CORS enabled?
- Requirements.txt updated?
Frontend
- ML Service created? (
ml_service.dart) - Prediction Page created? (
prediction_page.dart) - main.dart updated? (imports PredictionPage)
- pubspec.yaml has
httppackage? - API URL configured?
- App builds without errors?
flutter clean
flutter pub get
flutter build apk --release
🔍 TESTING DEPLOYED APP
1. Test API Health
curl https://prediksi-stok-api.herokuapp.com/health
# Expected: status: "healthy"
2. Test App on Device
- Install APK
- Open app
- Fill form
- Click PREDIKSI
- Check result
🆘 COMMON DEPLOYMENT ISSUES
Issue 1: "API tidak tersedia"
Solution:
- API not running? Start it:
python app.py - Wrong IP address? Check:
ipconfig - Firewall blocking port 5000?
Issue 2: "Connection refused"
Solution:
- Use IP instead of localhost
- Both API & app on same WiFi?
- Firewall allows port 5000?
Issue 3: "Endpoint tidak ditemukan"
Solution:
- API URL correct?
- Endpoint spelling correct? (
/prediksinot/prediksi/) - Headers correct? (
Content-Type: application/json)
📊 DEPLOYMENT SUMMARY
| Step | Status | Notes |
|---|---|---|
| API Running | ✅ | python app.py |
| Flutter UI | ✅ | PredictionPage created |
| ML Service | ✅ | ml_service.dart created |
| API URL | ⚙️ | Configure for production |
| Build APK | ⚙️ | flutter build apk |
| Deploy API | ⚙️ | Choose Heroku/AWS/Local |
| Publish App | ⚙️ | Google Play Store |
Status: Ready for Production Deployment ✅