A housing search and eligibility-application platform for a Finnish non-profit housing operator, across four regulated housing forms.
- Full pipeline driven live end to end against the real deployment: search → application → adaptive eligibility form → rule-engine decision with cited evidence → admin ranking by need, wealth and income — every outcome backed by a rule id and the exact numbers compared.
- 10-table Postgres schema with meaning encoded in the DDL: rent/price XOR constraint, a row-locking trigger that makes viewing-capacity overbooking structurally impossible under concurrency.
- 14-rule eligibility engine, every rule a pure function of (application, apartment, limits) — no clock, session or database read inside a rule — with a generated rule catalogue CI fails on drift against.
- Deployed on Vercel (Neon Postgres) as two projects, frontend and API; CI runs backend (ruff, mypy strict, pytest) and frontend (eslint, tsc, vitest, next build) independently.