MIF_E31232435/DEPLOYMENT_GUIDE.md

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

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)

  1. Launch EC2 instance (Ubuntu)
  2. Install Python & dependencies
  3. Deploy Flask with Gunicorn + Nginx
  4. Get Elastic IP
  5. 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 http package?
  • 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? (/prediksi not /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