A peer-to-peer rental marketplace where neighbours list what they own and rent what they need. A 27-module platform holds the deposit, verifies both strangers' identities, and adjudicates a claim if the handover goes wrong.
Build a marketplace where anyone can list an item or a space, a trailer, a PA system, a basketball court, and anyone else can rent it for an hour or a week. The listing side is the easy part.
The hard part is everything after two strangers agree to a handover: verifying who they actually are, holding a security deposit, releasing it conditionally, paying the owner out on a delay, and adjudicating a claim if the item comes back damaged.
The platform opened with a full software requirements specification covering all 27 modules and four user roles, written as explicit condition-and-consequence rules rather than feature descriptions, before a line of code was written.
That discipline shows up in two places worth naming. Onboarding runs five sequential verification gates: SMS OTP, location confirmation, profile creation, then government ID with a live photo capture. A user who fails ID verification is not locked out; they drop to browse-only access rather than losing the account, so the platform keeps the person engaged while still refusing to let an unverified stranger take possession of someone else's trailer.
The rental lifecycle itself runs as a defined state machine from request to review, where every abandonment path, a denial, an expired 48-hour request, a declined card, a damage claim, gets its own terminal state and notification instead of silently timing out. Physical handover closes the loop: the rental cannot go active until a QR or PIN scan confirms both parties are standing in the same place, anchoring the deposit hold to a real event rather than a clock.
Delivered as 27 modules across four user roles, with the money path and the dispute path specified in full before any of it was built.