← Back to work
02UNPLAN

UNPLAN

Travel-experience discovery and booking.

A travel-experience discovery and booking platform. Designed PostgreSQL schema, implemented AuthJS, and built the complete booking flow with Razorpay payment integration.

Travel experiences are awkward to sell online: every listing has its own dates, capacity, and pricing rules, and a booking is only real once money has actually moved. UNPLAN was built to make that whole path — discover, pick a slot, pay, confirm — feel like one motion.

The data model came first. Experiences, schedules, and bookings live as separate tables in PostgreSQL behind Prisma, so an experience can carry many dated slots and each slot tracks its own remaining capacity. Every relation is explicit in the schema, which keeps availability queries simple and the ORM types honest.

Authentication runs on AuthJS with sessions tied to the same database, so a booking always belongs to a verified user and the account, history, and payment records stay in one place.

Payment is where most booking flows break. A booking is created in a pending state, a Razorpay order is opened against it, and the row only flips to confirmed after the signed webhook lands and the signature is verified server-side. A dropped tab or a failed card leaves nothing half-booked.

Next projectZharnyx03