Skip to content
projects/mission-donneur
# Mission Donneur (2026)
A full website and a blood donation eligibility game, built with the Geneva University Hospitals
Mission Donneur is a project built at HEIG-VD in collaboration with the Geneva University Hospitals (HUG) and their blood transfusion centre. At corporate blood drives, many people sign up and are then turned away on the day because they aren't actually eligible to donate, and that no-show rate drags the drives down. Our job was to energize these blood drives and bring that rate down.
We took the gamification angle. Instead of a standard, repetitive medical questionnaire, the user follows Pochy, a blood-bag mascot, along a pixel-art map. Each step of the path is an eligibility question (health, medication, travel, tattoos…) and at the end of the journey the user gets their verdict: fit to donate, or ineligible for a specific duration. In that case they can leave their e-mail and the site automatically reaches out the day they become eligible again.
The site also ships a full admin panel for HUG staff: organizing blood drives, managing partner companies, certifying labelled companies, contact form handling, prize-draw winners, and KPI dashboards fed by anonymous tracking (views, quiz steps, appointment clicks). Each company gets co-branded pages with its own logo, generated from a simple link.
On the stack side: Laravel, Inertia and Vue 3, Tailwind and MariaDB. The choice holds up: Laravel provides all the server-side groundwork a site like this needs (authentication, queued e-mails, scheduled tasks for eligibility reminders), and Inertia lets you write the interface in Vue 3 without building a separate API: routes and logic stay in Laravel, and pages are Vue components. You get the responsiveness of a modern app, essential for the game, with the simplicity of a single project. Tailwind keeps the interface consistent across the game, the public pages and the admin panel, and MariaDB is a natural fit for highly relational data (blood drives, companies, sign-ups).