# Testing OnTime Apps ## Backend API (test endpoint) **Base URL:** `https://apitest.semestaterpadu.my.id/` - **Health check:** `GET https://apitest.semestaterpadu.my.id/api/notification` Expected: `{"message":"Notification API ready"}` - **FCM send:** `POST https://apitest.semestaterpadu.my.id/api/notification/send_generic` Body: `{"target":"","is_topic":false,"data":{...}}` Backend notification API is reachable at the test endpoint. --- ## Android apps (User & Driver) ### Prerequisites - **JDK 17+** (project uses Gradle 8.x / AGP 8.5) - **Android SDK** (API 33; build-tools, platform-tools) - **Android device or emulator** (for install/run) - Optional: **Android Studio** (simplest: open project → Run) ### Build from command line ```bash # User app cd OnTime_User_live ./gradlew assembleDebug # Driver app cd OnTime_Driver_live ./gradlew assembleDebug ``` Debug APK output: - User: `OnTime_User_live/app/build/outputs/apk/debug/app-debug.apk` - Driver: `OnTime_Driver_live/app/build/outputs/apk/debug/app-debug.apk` ### Install and run on device/emulator ```bash # Ensure one device/emulator is connected: adb devices # User app cd OnTime_User_live && ./gradlew installDebug # Driver app cd OnTime_Driver_live && ./gradlew installDebug ``` Or in Android Studio: open `OnTime_User_live` or `OnTime_Driver_live` → Run (▶). ### User app signing (debug) User app uses a debug keystore: `OnTime_User_live/app/ontimekeystore.jks`. If the file is missing, either add it or in `app/build.gradle` point `storeFile` to your own debug keystore (or use the default debug keystore by removing/commenting the `signingConfigs` block for debug). --- ## Quick flow to test ordering 1. **Backend:** Confirm `https://apitest.semestaterpadu.my.id/api/notification` returns `Notification API ready`. 2. **User app:** Login → choose fitur → set jemput & tujuan → set payment → Order. App will call backend and send FCM to drivers. 3. **Driver app:** Login (driver account). When an order is sent, FCM opens NewOrderActivity → Accept (or auto-accept). User app should switch to ProgressActivity. 4. **Driver:** In OrderFragment tap Start, then Finish (sampai tujuan). User app ProgressActivity should show “driver start” then “finish/tiba di tujuan”. Use the same backend (apitest.semestaterpadu.my.id) for both apps so FCM and API stay consistent.