202310715130-Dwifebbryanti-EAS/ACTION_PLAN_DEPLOYMENT.md
2026-01-14 21:33:58 +07:00

11 KiB

🎯 ACTION PLAN - TAHAP DEPLOYMENT

📋 Timeline Deployment (Step-by-Step)

PHASE 1: VERIFICATION ( SUDAH SELESAI)

Status: ✅ COMPLETE

✓ Code changes implemented
  - Koordinat UBH fixed: -6.2447, 106.9956
  - Radius standardized: 250 meter
  - 3 file modifications verified

✓ Documentation created
  - 8 documentation files
  - Complete with examples & diagrams
  - Cross-referenced navigation

✓ Code review passed
  - No compilation errors
  - Logic verified
  - No import issues

Waktu: ✅ DONE (14 Jan 2026)

PHASE 2: BUILD (NEXT - Sekarang)

Timeline: ~10 menit

Langkah:
1. Buka project di Android Studio
2. File → Sync Now (tunggu Gradle sync)
3. Build → Clean Build
4. Build → Make Project
5. Tunggu "BUILD SUCCESSFUL"

Expected Output:
✓ app/build/outputs/apk/debug/app-debug.apk
✓ No errors di console
✓ Build time < 5 menit

Command Alternative:
./gradlew clean build

PHASE 3: TESTING (Setelah Build)

Timeline: ~15 menit per device

Device Setup:
1. Connect device via USB
2. Enable Developer Options
3. Enable USB Debugging
4. Authorize device

Installation:
5. adb install app/build/outputs/apk/debug/app-debug.apk
   Atau: Run button di Android Studio

Testing Checklist:
☑️ App launches without crash
☑️ Login works (use test account)
☑️ Register works (create new account)
☑️ Navigate to Absensi screen
☑️ Wait for GPS (should appear in 10s)
☑️ Check status color (green if within 250m)
☑️ Take photo (camera should work)
☑️ Submit absensi (should show toast)
☑️ Check history (record should appear)

Success Criteria:
✓ No crash at any step
✓ GPS coordinates appear
✓ Distance calculation shows correct value
✓ Color changes based on distance
✓ Photo captured successfully
✓ Data saved to database

PHASE 4: N8N VERIFICATION

Timeline: ~5 menit

Langkah:
1. Buka N8N webhook dashboard
   URL: https://n8n.lab.ubharajaya.ac.id/

2. Check webhook logs
   Endpoint: /webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254

3. Verify received data
   ✓ npm field received
   ✓ latitude field received
   ✓ longitude field received
   ✓ foto_base64 received
   ✓ timestamp received
   ✓ is_within_radius received

4. Check spreadsheet
   Link: https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs

5. Verify data entry
   ✓ New row added
   ✓ All columns filled
   ✓ Timestamp correct

PHASE 5: PRODUCTION READY

Timeline: ~1 jam total

Setelah semua testing passed:

Final Checklist:
☑️ Code verified
☑️ Build successful
☑️ Testing passed
☑️ Database working
☑️ N8N receiving data
☑️ Spreadsheet updating
☑️ Documentation complete

Status Update:
✅ PRODUCTION READY

Next:
→ Distribute APK to users
→ Create user manual
→ Monitor initial usage
→ Collect feedback

🚀 BUILD INSTRUCTIONS

1. Open Android Studio
2. File → Open → Select folder
3. Wait for Gradle sync
4. Build → Clean Build
5. Build → Make Project
6. Tunggu sampai "BUILD SUCCESSFUL"

Output location:
app/build/outputs/apk/debug/app-debug.apk

Via Terminal (Faster)

# Navigate to project directory
cd /Users/maccomputer/AndroidStudioProjects/Starter-EAS-2025-2026

# Clean previous builds
./gradlew clean

# Build APK
./gradlew build

# Install to device (if connected)
./gradlew installDebug

# Expected output:
# BUILD SUCCESSFUL in Xs
# app-debug.apk generated

Troubleshooting Build Errors

Error: Gradle sync failed
→ Solution: File → Invalidate Caches → Restart

Error: SDK not found
→ Solution: Tools → SDK Manager → Install required SDK

Error: Compilation error
→ Solution: Check AndroidManifest.xml & permissions

Error: Permission denied
→ Solution: chmod +x ./gradlew

Success: BUILD SUCCESSFUL
→ Proceed ke PHASE 3: Testing

📱 INSTALL & RUN

Method 1: Direct Install via Gradle

./gradlew installDebug
# Aplikasi otomatis launch di device

Method 2: Manual APK Install

# Find APK
ls app/build/outputs/apk/debug/

# Install
adb install app/build/outputs/apk/debug/app-debug.apk

# Uninstall (jika perlu)
adb uninstall id.ac.ubharajaya.sistemakademik

Method 3: Via Android Studio

1. Build → Make Project
2. Run → Run 'app'
3. Select device
4. Click OK
5. Tunggu build & install

🧪 TESTING PROCEDURE (LENGKAP)

TEST 1: Application Launch

Step 1: Buka aplikasi dari launcher
Step 2: Lihat Login screen muncul
Step 3: Tidak ada crash atau error

Expected: ✓ Login screen visible
Status: [  ] PASS / [  ] FAIL

TEST 2: User Registration

Step 1: Klik "Belum punya akun? Daftar"
Step 2: Isi form:
   - Nama: TestUser
   - NPM: 12345678
   - Password: test1234
Step 3: Klik "Daftar"

Expected: ✓ Toast: "Pendaftaran Berhasil"
          ✓ Kembali ke login screen
Status: [  ] PASS / [  ] FAIL

TEST 3: User Login

Step 1: Kembali ke Login screen
Step 2: Isi:
   - NPM: 12345678
   - Password: test1234
Step 3: Klik "Login"

Expected: ✓ Toast: "Login berhasil" (or no error)
          ✓ Navigate ke Absensi screen
          ✓ Lihat nama user ditampilkan
Status: [  ] PASS / [  ] FAIL

TEST 4: GPS Location Acquisition

Step 1: Pastikan GPS aktif di device
Step 2: Buka aplikasi di area outdoor
Step 3: Tunggu 5-10 detik
Step 4: Lihat koordinat muncul di screen

Expected: ✓ Latitude muncul (contoh: -6.2447)
          ✓ Longitude muncul (contoh: 106.9956)
          ✓ Jarak ditampilkan (contoh: 25.3 meter)
Status: [  ] PASS / [  ] FAIL

Note: Jika tidak muncul, tunggu 15 detik lagi

TEST 5: Location Validation

Test di area kampus:
Step 1: Lihat jarak < 250 meter
Step 2: Card harus berwarna HIJAU (#E8F5E9)
Step 3: Status text: "✓ Valid"

Expected: ✓ Green card
          ✓ "✓ Valid" status
          ✓ Jarak < 250m
Status: [  ] PASS / [  ] FAIL

Test di area luar kampus:
Step 1: Pindah ke lokasi > 250 meter dari kampus
Step 2: Card harus berwarna MERAH (#FFEBEE)
Step 3: Status text: "✗ Tidak Valid"

Expected: ✓ Red card
          ✓ "✗ Tidak Valid" status
          ✓ Jarak > 250m
Status: [  ] PASS / [  ] FAIL

TEST 6: Photo Capture

Step 1: Klik tombol "📷 Ambil Foto"
Step 2: Izinkan akses kamera (jika diminta)
Step 3: Ambil foto/selfie
Step 4: Lihat preview foto

Expected: ✓ Camera app opens
          ✓ Photo captured successfully
          ✓ Preview shows in app
Status: [  ] PASS / [  ] FAIL

TEST 7: Submit Absensi

Pre-condition: Status HIJAU + Foto sudah ada

Step 1: Klik tombol "📤 Kirim Absensi"
Step 2: Tunggu proses submit
Step 3: Lihat toast notification

Expected: ✓ Toast: "Absensi diterima server"
          atau
          "Absensi ditolak: Lokasi tidak sesuai" (jika invalid)
Status: [  ] PASS / [  ] FAIL

TEST 8: History Display

Step 1: Klik tombol "Lihat Riwayat"
Step 2: Tunggu history screen load
Step 3: Lihat list absensi records

Expected: ✓ History screen opens
          ✓ Latest record shows
          ✓ Date/time correct
          ✓ Status correct (✓ Diterima or ✗ Ditolak)
Status: [  ] PASS / [  ] FAIL

TEST 9: Logout

Step 1: Klik icon logout (top right)
Step 2: Kembali ke Login screen

Expected: ✓ Back to login screen
Status: [  ] PASS / [  ] FAIL

TESTING SUMMARY

Total Test Cases: 9

Test Results:
✓ Application Launch       [  ]
✓ User Registration        [  ]
✓ User Login               [  ]
✓ GPS Location Acquisition [  ]
✓ Location Validation      [  ]
✓ Photo Capture            [  ]
✓ Submit Absensi           [  ]
✓ History Display          [  ]
✓ Logout                   [  ]

Overall Status: [  ] ALL PASS → READY FOR PRODUCTION
                [  ] SOME FAIL → FIX & RE-TEST

🔍 DEBUG TIPS

Jika ada masalah saat testing:

Check Logs

adb logcat | grep "LocationDebug"
adb logcat | grep "DatabaseHelper"
adb logcat | grep "MainActivity"

Check Device Permissions

Settings → Apps → [App Name] → Permissions
- Location: ON (Allow while using app)
- Camera: ON
- Internet: ON

Check GPS Status

Settings → Location → High Accuracy mode
Tunggu 20 detik untuk GPS lock

Clear App Data (Reset)

adb shell pm clear id.ac.ubharajaya.sistemakademik
# atau: Settings → Apps → [App Name] → Clear Cache

🎯 SUCCESS CRITERIA

Aplikasi dianggap READY FOR PRODUCTION jika:

✓ All 9 test cases PASS
✓ No crashes or exceptions
✓ GPS location working accurately
✓ Photo capture successful
✓ Data saves to database
✓ Data sends to N8N webhook
✓ Spreadsheet gets updated
✓ UI feedback is clear
✓ Performance is acceptable
✓ All documentation reviewed

📞 QUICK REFERENCE COMMANDS

# Build project
./gradlew clean build

# Install to device
./gradlew installDebug

# Run app
./gradlew runDebug

# View logs
adb logcat

# Check connected devices
adb devices

# Uninstall app
adb uninstall id.ac.ubharajaya.sistemakademik

# List output APK
find app/build -name "*.apk"

# Clear gradle cache
./gradlew clean
rm -rf .gradle

📊 DEPLOYMENT CHECKLIST (FINAL)

BEFORE BUILD:
☑️ All code changes verified
☑️ No syntax errors
☑️ Documentation complete

DURING BUILD:
☑️ ./gradlew clean build succeeds
☑️ No compilation errors
☑️ APK generated

DURING TESTING:
☑️ All 9 tests pass
☑️ No crashes
☑️ Features working

AFTER TESTING:
☑️ Database verified
☑️ N8N webhook verified
☑️ Spreadsheet verified
☑️ Performance OK

FINAL:
☑️ Production Ready
☑️ Ready to distribute
☑️ Documentation ready
☑️ User manual ready

STATUS: ✅ APPROVED FOR DEPLOYMENT

🚀 NEXT IMMEDIATE ACTIONS

RIGHT NOW:

  1. Build Project

    cd /Users/maccomputer/AndroidStudioProjects/Starter-EAS-2025-2026
    ./gradlew clean build
    

    Estimated time: 3-5 minutes

  2. Wait for "BUILD SUCCESSFUL"

  3. Check output

    ls -lh app/build/outputs/apk/debug/app-debug.apk
    

THEN:

  1. Install to device

    adb install app/build/outputs/apk/debug/app-debug.apk
    
  2. Run testing Follow TEST 1-9 procedure above

  3. Verify N8N Submit absensi, check webhook logs

  4. Declare READY All tests passed → Production ready! 🎉


⏱️ ESTIMATED TIMELINE

Build:           5 minutes
Install:         2 minutes
Testing:         15 minutes
N8N Verification: 5 minutes
                 ─────────
TOTAL:           ~27 minutes

📝 NOTES

  • First build may take longer (gradle setup)
  • Subsequent builds are faster (cached)
  • Test on real device, not emulator (for GPS)
  • Ensure good GPS signal (outdoor)
  • Check internet connection before submit
  • Document any issues for future reference

Status: READY TO START DEPLOYMENT
Date: 14 January 2026
Next Step: Run ./gradlew clean build
Estimated Completion: 27 minutes

Let's do this! 🚀