← Apps

Healthcare learning SaaS

Estudar para o OSCE

An AI OSCE-practice SaaS where Portuguese medical students interview simulated patients and receive structured performance feedback.

A patient agent blinded to the diagnosis and a separate evaluator agent.
Credit
With a medical student
Role
Product Engineer
Status
Launched · active development
Stack
ReactCloudflare WorkersHonoSupabaseGeminiStripeVercel AI SDK

The problem

OSCE preparation requires repeated, realistic patient interviews and feedback on whether the student actually elicited the important information. Static question banks do not provide that conversational practice, while a clinical expert should be able to improve the case library without becoming a database administrator.

My role and collaboration

I designed and built the engineering platform: Cloudflare Workers API, React frontend, Supabase persistence, AI session flow, subscriptions, onboarding, referral handling, deployment, and admin tooling. The medical case content was created and curated in collaboration with an unnamed medical student, who owns the clinical-content layer. The product therefore credits clinical authorship explicitly rather than presenting the case library as solo work.

Diagram: a medical student authors and curates the clinical cases through an admin dashboard for cases and exam images, without database access. The dashboard writes to the case library in Supabase, which serves learner sessions. The engineering platform around it (Workers API, React frontend, AI session flow, subscriptions, deployment, admin tooling) was built by Frederico.
Clinical content is authored by a medical student; the platform that carries it is the engineering work.

The public product is estudarparaosce.com. At the June 2026 status checkpoint, it was launched with one paying customer and still under active development; that is the full traction claim here, not a claim of clinical efficacy or broad adoption.

Shipped workflow

A learner signs in anonymously, selects an OSCE case, interviews an AI patient in European Portuguese, and receives a structured evaluation after ending the session. Practice history survives conversion to a registered account. The platform also supports MCQ practice, case feedback, subscriptions, and legal onboarding, while an admin dashboard lets the clinical collaborator manage cases and assign exam images without direct database access.

Engineering decisions

  • Separate roleplay from evaluation. The patient agent is deliberately blinded to the diagnosis and target keywords, preventing it from leaking the answer during the interview. A separate evaluator runs after the session and scores what the student elicited, using semantic matching so a clinically equivalent question is not rejected for missing an exact phrase.
  • Put clinical editing behind a safe product surface. The admin dashboard provides CRUD for cases and exam-image assignments, so the medical collaborator can curate educational content without touching Supabase. A keyword-based assignment tool matched 53 of 297 cases automatically, leaving the remainder reviewable rather than silently guessing.
  • Keep access and billing server-side. Cloudflare Workers handles Stripe Payment Links, webhook updates, billing-portal access, referral bonuses, and per-tier daily limits. Supabase RLS protects data, while anonymous sign-in and device fingerprinting reduce abuse without discarding practice history when an account is upgraded.
Diagram: an OSCE case holds case details, a diagnosis and target keywords. During the interview, the patient agent receives only the case details, answers in European Portuguese and is blinded to the diagnosis and target keywords. After the session ends, a separate evaluator, which does receive them, scores what the student elicited using semantic matching and returns a structured evaluation.
The patient agent never sees the diagnosis or target keywords; a separate evaluator scores the interview afterwards.

Results and boundaries

The deployed product included 297 cases across 27 specialties, 664 MCQ questions, and 77 exam images across 12 exam types at the documented checkpoint. Those figures describe available educational content, not clinical validation. This case study claims a live, paid web SaaS and a full engineering lifecycle; it does not claim an app-store product, medical advice, or evidence that the AI improves exam performance.