(Full reasoning is in FINAL-PLAN.md. This is the 90-second version.)
PolyU Alumni Affairs Office (AAO). Contact: Robbie, their IT manager. He can say yes.
"One alumnus, one record." Today one person signs up in 3 different systems and ends up as 3 disconnected entries. We make each of those resolve to the right person in the alumni database (AMS).
A self-hosted box in the AAO office. Data stays on campus, which makes the compliance discussion easier. Cloudflare in front, admin over Tailscale; no open ports. Robbie already OK'd this.
Right now alumni book campus parking through a Microsoft form, retyping their ID, name, phone, email, and car plate every time. We give them a login that auto-fills 7 of the 10 fields, so booking drops to 3 taps: date + passengers + purpose. It is visible and well clear of core systems. It proves "one record, filled in everywhere" at the smallest possible size. That is the cleanest route into the paid discovery.
Most LinkedIn products legally cannot feed individual records into a database. The reliable part is asking alumni to confirm their own info, pre-filled so it is one tap. LinkedIn's newer "Verified on LinkedIn" API might help. We test it in discovery before anyone promises it in the room.
Keep their event system (CEMS) as-is. Make every event source return a standard "who registered / who actually attended" record to the alumni database. Coexist with the incumbent vendor (art-mate). Any future replacement has to be earned by numbers.
Open at ~HK$188k for the discovery (verify against our real cost first; this number is not cost-checked yet). Expect a competitive quote process (RFQ). The bigger build gets priced later.