Executive operations hub & hygiene audit app for Rewaya Hotels. Built with Kotlin and Jetpack Compose.
app/src/main/java/com/example/
data/local/ Room entities, DAOs, database
data/supabase/ Retrofit service, repositories, DTOs
data/remote/ Gemini API helpers
ui/screens/ Compose screens (dashboard, audits, scanner, ...)
ui/viewmodel/ AuditViewModel (shared state)
ui/theme/ Compose theme
setup.sql Supabase schema — run once in the Supabase SQL editor
Order_PY.py Optional Python helper that seeds demo orders into Supabase
setup.sql, and click RUNapp/src/main/java/com/example/data/supabase/SupabaseApiService.kt defaults or override at runtime (SupabaseClient.initialize(url, key))Note:
setup.sqlcreates per-table “Allow all” RLS policies because the app uses the anon key without user auth. Replace them with auth-scoped policies before production use.
.env.example to .env in the repo root and set GEMINI_API_KEY=...BuildConfig.GEMINI_API_KEY at build timeWithout a key the app still builds and runs; AI features fall back to simulated results.
Requirements: JDK 17+, Android SDK with platform 36.1 and build-tools 37.
./gradlew assembleDebug # debug APK -> app/build/outputs/apk/debug/
./gradlew assembleRelease # requires KEYSTORE_PATH, STORE_PASSWORD, KEY_PASSWORD env vars
Prebuilt APKs live on the releases branch.
See SECURITY.md. Never commit real API keys — .env is gitignored on purpose.