Healthcare learning SaaS
Estudar para o OSCE
An AI OSCE-practice SaaS where Portuguese medical students interview simulated patients and receive structured performance feedback.
- 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.
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.
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.