Skip to content

AlexTuring010/novibet-clone

Repository files navigation

NovibetClone

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.

Team — Ctrl-Alt-DIT

I (Alex) built the Android clone and wired the model API into the playing flow.

What it does

  1. Login / register against a Supabase backend (fake money, no real transactions).
  2. Play the coin-toss bet game — choose heads or tails, pick a stake (€5–€200), watch a coin-flip video, win or lose.
  3. After each bet, the app calls the team's model service:
    GET https://ctrl-alt-dit-yb2k.onrender.com/predict_flag?customer_id=...&date=...
    
    The response carries a risk percentage and a FLAGGED / not-flagged label.
  4. 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.

Demo credentials (read this first)

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.

Stack

  • 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

Build

git clone https://github.com/AlexTuring010/novibet-clone.git

Open 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.

Links

License

MIT

Disclaimer

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.

About

Android demo for the AI OPA Hackathon 2025 Novibet challenge: a Novibet-style casino clone with a coin-toss game wired to a team-trained model that flags risky gambling behaviour and triggers a cooldown popup. Frontend + model integration. Team Ctrl-Alt-DIT.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages