PiattaformaCorsi: recorded and live CME courses for healthcare staff, with a certificate anyone can verify

A course platform for healthcare staff that I'm building for a client; the online demo has made-up courses, teachers and reviews. Catalogue with filters, checkout, Vimeo videos only for people who have the course, live sessions with attendance, tests, ECM credits (Italy's CME) and a certificate with a QR code anyone can check.

**The demo's courses, teachers and reviews are made up; the platform isn't.** It's the one I'm building for a client who trains healthcare staff: doctors, nurses, midwives, physiotherapists and pharmacists. The client will choose the name and the domain; meanwhile the demo runs on my server, with dummy payments and emails, and with photos generated on my computer's GPU, which the site declares.

**What it does**

- **A recorded course, start to finish**: the course page, checkout with the waiver of the right of withdrawal, lessons that resume where you left off, the final test and a PDF certificate with a code and QR code, which anyone can verify on a public page. - **Videos on Vimeo**: uploaded from the admin panel straight to Vimeo, created with the right privacy settings, and played only for people who have the course. - **Live sessions**: limited seats with a waiting list, reminders with a calendar file, attendance counted minute by minute, and the recording that becomes a lesson. - **ECM** (Italy's continuing medical education): credits for each course, a professional profile asked for only when needed, with the Italian tax code encrypted, the export for the accredited provider, anonymous feedback and a digital badge for LinkedIn. - **Sales**: bundles, a subscription that grows with new courses, discount codes, early-bird prices, licences for companies and local health authorities, PDF receipts. - **The site**: catalogue with filters, calendar, teachers, reviews from people who completed the course, blog, structured data for Google, light and dark theme, installable on the phone, and no cookie banner: the visit statistics don't use cookies.

The platform has five roles, from student to developer, and the panel is designed for office staff who aren't technical. An AI agent can add courses as drafts through a signed API: the staff publish them after checking.

**The hard part** was Vimeo. Its terms don't allow covering the player or locking the progress bar, and a paid video must never reach someone who hasn't bought it. The token stays on the server, and the browser gets a video's ID only after the enrolment check. Completion is counted on seconds actually watched, from the player's events: a lesson is done at 90% (the threshold can be changed from the panel), and each account watches one video at a time, on at most three devices.

Vue 3 and TypeScript with shadcn-vue, Fastify on Node 26, PostgreSQL 18 with tables generated from the Zod schemas; in production, three Docker containers behind nginx with HTTPS. Every change goes through 528 automated tests.

Design, full-stack development and deployment · Formazione per operatori sanitari · Healthcare staff training · 2026

Vue.js, Fastify, PostgreSQL, Vimeo API

View the site

Andrea Coppetta