Skip to content
Teaching example: a made-up clinic that shows an assistant that books appointments. How this demo works · Try the shop demo →
VallenovaOutpatient clinicIT

Credits and licences

This site is a teaching project by Prof. Giuseppe Bosi, Master's-level degree in Electronic Engineering (5-year Italian Laurea, EQF level 7) and Teacher of Computer Science and Technology. It shows, with an example you can try, how a chat assistant works inside a website: it searches the documents, works out availability, books only after the person confirms, and refuses to do what is not its job.

How they can be reused

  • Texts and content of these pages (specialties, services, information pages, explanations): Creative Commons Attribution 4.0 (CC BY 4.0) licence. They can be copied, adapted and reused, commercially too, crediting «Giuseppe Bosi».
  • Code of the site, the assistant and the widget: MIT licence. It can be used, modified and redistributed, keeping the copyright notice.
  • The names of the clinic and the doctors and the prices are made up for the example: any resemblance to real clinics or people is coincidental.

What it is made with

All the software used is free or open source. For each piece, the link goes to the official documentation.

Next.js and React
the site, the pages and the booking form
Vercel AI SDK
chat streaming and the tools the assistant can call
PostgreSQL with pgvector
the database: services, shifts, bookings and the index for search by meaning
Drizzle ORM
the database tables and migrations
Transformers.js (multilingual-e5-small model)
embeddings computed on the server, with no external services
OpenRouter
the language model that writes the answers, through free models
Tailwind CSS, shadcn/ui and AI Elements
the look of the pages and of the chat
Lucide
the icons
Bodoni Moda and Hanken Grotesk
the fonts, built into the site at compile time: the browser contacts no third-party services
Playwright
the automated tests: booking, cancellation, widget, assistant limits
Docker and Caddy
deployment: two containers on a server in Europe, automatic HTTPS

Further reading

  • How this demo works — what is real, what is made up, what the assistant does not do.
  • Privacy — what data passes through here, where it goes and how long it stays.
  • The tutorial — the code explained step by step on the twin site, and how to put the same assistant on another site.
  • www.giuseppebosi.com — the author's website.