Bambalina — Prop wardrobe
Bambalina is the digital wardrobe of a neighbourhood prop house. Performers browse racks (Spanish Golden Age, salon zarzuela, cardboard space, February carnival), pick unique pieces, choose Madrid civil dates, pay at once and get a real rental QR. Staff scans it at the hanger (paid → picked_up) and again on return (picked_up → returned). The truth layer is date-range rental: two bookings cannot overlap on the same piece (409 PIECE_TAKEN) and the same user cannot double-book it (409 ALREADY_RENTING). No 15-minute hold. Hanger points come from returned days.
Key features
Date-range rental on a unique piece — not slot+hold
Atomic checkout: pay and confirm in the same transaction
Human 409 PIECE_TAKEN / ALREADY_RENTING next to the CTA
Real QR (qrcode SVG + /alquiler/:code URL) on confirmation and public GET 200
Staff pickup and return by code or URL; duplicate → 409
Derived hanger points from days of returned rentals
Technologies used
Angular
TypeScript
SQLite