Executive operations hub & hygiene audit app for Rewaya Hotels. Built with Kotlin and Jetpack Compose.
- Full hygiene audit checklists (manager area audits, 16 mandatory inspection points across 4 categories)
- AI-powered HACCP analysis of recorded infractions (Gemini text) and AI photo hygiene scanning (Gemini Vision)
- Equipment QR scanner with digital checklists
- Local persistence with Room, cloud sync to Supabase (audits, hazards, orders)
- Background sync via WorkManager with notifications
- PDF export & sharing of audit reports
- Bilingual UI (English / Arabic)
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
- Create a project at supabase.com
- Open SQL Editor, paste the full contents of
setup.sql, and click RUN - Copy your project URL and anon key from Project Settings → API
- Put them in
app/src/main/java/com/example/data/supabase/SupabaseApiService.ktdefaults 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.
- Get a key at aistudio.google.com/apikey
- Copy
.env.exampleto.envin the repo root and setGEMINI_API_KEY=... - The Gradle secrets plugin injects it as
BuildConfig.GEMINI_API_KEYat build time
Without 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 varsPrebuilt APKs live on the releases branch.
See SECURITY.md. Never commit real API keys — .env is gitignored on purpose.