Healthcare booking that fights no-shows.
Connects patients with clinics — and gives small practices the scheduling tools that until now only large hospitals could afford.
Italian public healthcare loses an enormous amount of clinical capacity to appointments nobody shows up for. A missed slot isn't just an empty chair — it's capacity that could have gone to the next person on a waiting list that keeps growing.
The friction runs both ways:
- Patients chase availability over the phone, during office hours, with no visibility into which clinic near them can actually see them sooner.
- Small clinics still run their diary on paper or in a spreadsheet. They have no practical way to track who repeatedly books and doesn't turn up.
Oruma was built for the Abruzzo region as our entry to Technovation Girls — a global programme where teams identify a problem in their own community and ship a working product against it. It placed 1st in Italy.
- Geolocated search across clinics and specialists, ranked by distance from where you actually are
- Calendar booking — pick a real open slot instead of negotiating one by phone
- One dashboard for every upcoming visit, with status at a glance
- Self-service onboarding — register the practice without an IT department
- Service catalogue and opening-hours editor that together drive what patients can book
- Staff management by invite link, so an owner can add colleagues without ever handling their credentials
- Booking dashboard with optional manual approval for practices that want a human in the loop
-
Two-way reschedule negotiation. Either side can propose a new time; the other accepts or declines, with explicit pending states throughout so nobody is left guessing whether a change went through.
-
Reliability scoring. Every patient starts at 100. Staff-reported no-shows lower it. Clinics see an Affidabile / Inaffidabile signal, and below 50 the interface suggests requiring advance payment. It turns a diffuse, unaccountable cost into a visible signal the clinic can act on — which is the actual lever against no-shows.
Relational model across 7 entities
Clinic · ClinicStaff · Service · OpeningHours · Appointment · NoShowReport · User
Availability engine. Bookable slots aren't stored — they're derived, by intersecting each clinic's opening hours with the duration of the requested service and the appointments already on the books. One source of truth, no stale slot table to reconcile.
Role-aware rendering. Patient, clinic staff and clinic owner see three different applications built from one shared component library, across 11 screens. Role is resolved once and drives both routing and what each screen exposes.
Geolocation. Browser location powers distance-ranked results, with an explicit rationale shown before the permission prompt — "Per calcolare la distanza dalle cliniche" — rather than an unexplained browser dialog.
GDPR-conscious onboarding. Explicit privacy consent gates account creation on both the patient and clinic side. Handling health-adjacent data made this a design requirement, not an afterthought.
Invite-code staff flow. Clinic owners generate a link; the new staff member claims it and binds to the clinic. Codes are validated and single-use, so an owner never sees or sets a colleague's password.
Patient app ─┐
├─→ shared component library (React + Radix + Tailwind)
Clinic app ──┘ │
├─→ availability engine ──→ OpeningHours × Service × Appointment
├─→ role resolver ──→ User → ClinicStaff → Clinic
└─→ reliability scoring ──→ NoShowReport → User.reliability_score
The application is built and hosted on the Base44 platform; this repository is the project's public home and documentation. See the live deployment for the running product.