The problem
A fragrance festival needed one public home for visitors, brands and sponsors before the event, plus a lucky draw. The organiser wanted draw entries earned by purchases verified at a counter, not handed out free on registration.
My role
Designer and builder of the festival website and its lucky draw module.
Approach
- Every page a visitor needs. Home with a countdown, brands, sponsors with an enquiry form, experiences and passes, merch, visit, FAQ and contact.
- Event details without a redeploy. Dates, copy and switches live in a settings table, so the organiser’s changes appear within a minute.
- Teaser mode. Passes and merch are listed before sales open, controlled by one flag.
- Day and night themes. With a script that prevents a flash of the wrong theme on load.
- A verified-spend draw. On event day, attendees register from a QR code and get their own attendee QR. Counter staff scan it, confirm the name and enter the amount spent. Every set amount of cumulative verified spend issues one ticket, and that amount is a setting, not code. The draw picks a random undrawn ticket, with one win per person, and admins can void a verification.
- Roles for the floor. Separate admin, counter and pricing roles, with the admin and the venue projector running against the same live database.
- PDPA by design. Participant records are never publicly readable, and marketing consent is opt-in.
Outcome
The site is live ahead of the festival in teaser mode, and the verified-spend draw was built and deployed on 12 September 2026.


