Case study 02
AI exam preparation
OsceSetGo
Medical students preparing for OSCEs lack realistic practice partners.
Live — paying users
Explore the projectThe actual website
Try it for yourself.
Explore the actual website. Scroll and click inside the frame.
Open full website01 The project
What we
built.
Real-time voice consultations with an AI patient, built on WebRTC and the OpenAI Realtime API, alongside text-based practice with full history. A station library spans 12 clinical systems, with subscriptions and usage limits handled in-app.
Built in
65 days
At a glance
- Real-time AI voice consultations
- Station library across 12 clinical systems
- Subscriptions and usage limits
02 In practice
Inside the product.
Follow the experience from first step to outcome. These interactive illustrations use example data.
A station.
A new perspective.
Read the candidate brief, then open a voice or typed consultation.
Choose a station
Read the candidate brief and choose a station. A voice or typed consultation follows, with a patient persona prepared for the scenario.
03 Design & engineering
Behind the build.
The decisions, the working parts and what connects them.
The core of the product is the voice consultation: a student talks to an AI patient in real time, the way they would in an exam. We built this on WebRTC with the OpenAI Realtime API, streaming audio in both directions so the conversation runs as a natural exchange rather than a walkie-talkie loop of recorded turns.
Around the consultation sits a station library spanning 12 clinical systems, plus a text-based practice mode that keeps the full history of past sessions so students can go back over how they handled a station. The platform is built on Next.js 15 and React 19 with Supabase as the backend.
Because the AI patient is metered usage, subscriptions and usage limits are part of the product itself rather than an afterthought — Stripe handles billing and limits are enforced in-app. OsceSetGo is live with paying users.
The working parts.
How the build is organised.
Client
- Student's browser
- WebRTC audio
- Text mode
Server
- Next.js 15 routes
- Persona assembly
- Marking
Services
- OpenAI Realtime
- Supabase
- Stripe
Built with
- Next.js 15
- React 19
- Supabase
- Stripe
- OpenAI
Visit OsceSetGo
For a similar project
The decisions
that matter.
Treat a voice session as part of a paid product. Opening a station, talking to a patient, reviewing feedback and returning to session history form one journey. WebRTC supports the live exchange, while the application handles the identity, context and records around it.
The platform is live with paying users, with subscriptions and usage limits built into the practice journey. If you are commissioning voice AI, scope the session limits, connection failures and review experience before treating a successful conversation demo as a finished application.
Voice AI & product integrationBy Alwan Technologies · Updated
Have a project like this in mind?