Android demo built for the AI OPA Hackathon 2025 — Novibet challenge: detect potentially harmful gambling behaviour and act on it.
We didn't win, but the prototype was the most polished part of our submission: a Novibet-style casino clone with a working coin-toss game wired to a team-trained risk model. When the model flags a session as risky, the app interrupts play with a cooldown popup.
Previous year of the same hackathon series where our team later won 1st place in 2026 with Crowdless and city-simulator.
- Stelios Rotas — risk model
- Socrates Pap
- Panagiotis Thivaios
- Alekos — risk model (alternate)
I (Alex) built the Android clone and wired the model API into the playing flow.
- Login / register against a Supabase backend (fake money, no real transactions).
- Play the coin-toss bet game — choose heads or tails, pick a stake (€5–€200), watch a coin-flip video, win or lose.
- After each bet, the app calls the team's model service:
The response carries a risk percentage and a
GET https://ctrl-alt-dit-yb2k.onrender.com/predict_flag?customer_id=...&date=...FLAGGED/ not-flagged label. - If the user is flagged, the next coin-toss is blocked by
CountdownDialogFragment— a non-dismissable cooldown popup.
There's also a budget endpoint (/predict_budget) that estimates the user's weekly betting budget for display in the profile sheet.
The model is sensitive enough that you can't easily tip it into FLAGGED in a short demo. So:
- Username:
AlexTuring - Password:
password123
This account is hardcoded as always-flagged (UserViewModel.kt) so reviewers can see the cooldown popup without grinding through bets.
⚠️ The model server is hosted on Render's free tier and the database is a hackathon-era Supabase project — both may be cold or fully down by the time you read this. The repo is preserved as-is for portfolio purposes; it isn't actively maintained.
- Android / Kotlin, single-activity + fragments
- Supabase Postgrest for users, balances, transactions
- OkHttp for the model service calls
- MediaPlayer / VideoView for the coin-flip animation and SFX
- Custom views to mimic Novibet's tab strip and ad carousel
git clone https://github.com/AlexTuring010/novibet-clone.gitOpen in Android Studio, let Gradle sync, run on an emulator or device. No secrets need to be set — the (anon, RLS-gated) Supabase key is checked in for demo convenience.
This project is not affiliated with Novibet or any real-world gambling platforms. The UI mimics Novibet's because the brief was Novibet's challenge. Money is fake. Built for research, learning, and a hackathon submission.