Back to Projects
Rentra

Rentra

A booking platform with owner operations, availability controls, and payment processing.

RoleFull Stack Developer
Status
In progress
Platforms
Web, Backend

Key Challenges

  • Preventing overlapping reservations when multiple requests compete for the same availability.
  • Reconciling asynchronous payment events safely when providers retry delivery or workers restart.
  • Keeping per-request Next.js state isolated while preserving cookies, redirects, and revalidation behavior.

Key Learnings

  • Using database constraints and transaction locks as the final protection for booking availability.
  • Designing deduplicated webhook processing and leased jobs for recoverable background work.
  • Separating server-rendered state initialization from long-lived client state.

Actual development screenshots. Select an image to view the full capture in a new tab.

Rentra owner dashboard with demonstration bookings
Owner dashboard: development screenshot with demo data.
Rentra availability calendar dialog
Availability calendar: development screenshot.
Rentra owner guidance at a mobile viewport
Mobile owner guidance: development screenshot.

Overview

Rentra is my personal booking platform connecting booking journeys with owner operations, availability management, and administrative workflows. I built its Next.js frontend, Express backend, and PostgreSQL data layer, including booking controls and payment-processing infrastructure.

Booking correctness is enforced at the database layer. The Razorpay integration in the supplied implementation uses test mode; the case study does not imply live payment volume or production payout results.

Key Features

Booking and Availability

Connect booking requests to inventory and availability checks, protecting reservations against conflicting date ranges.

Owner Workspace

Provide owner dashboards, availability calendar interactions, and operational guidance, including narrow-screen workflows.

Scoped Operations

Separate administrator, client, and staff capabilities so booking and operational actions use the appropriate permissions.

Payment Event Processing

Verify raw-body webhook signatures and deduplicate events before applying payment-related state changes.

Recoverable Background Jobs

Use leased work and retries to recover pending processing when a worker fails or a provider response is delayed.

Technical Implementation

The frontend uses Next.js, React, TypeScript, and Redux Toolkit. Express coordinates API operations, while PostgreSQL and Drizzle support relational persistence and explicit SQL where transactional behavior matters.

  • Concurrency control: Row locks protect shared inventory during booking operations.
  • Overlap protection: PostgreSQL exclusion constraints reject conflicting reservation ranges even when application requests race.
  • Consistent reads: Repeatable-read snapshots support operations that need a stable view of related records.
  • Payment integrity: Raw-body signature verification and event deduplication handle provider callbacks.
  • Job recovery: Leased jobs, SKIP LOCKED, and retries coordinate pending work without requiring each worker to claim the same job.
  • SSR state: Per-render Redux stores prevent state from leaking between server requests.

Architecture and Tradeoffs

Availability shown in the browser is useful feedback, but it cannot be the final guard against conflicting requests. Database locks and overlap constraints protect the booking invariant at commit time. Payment callbacks are similarly asynchronous: delivery can repeat or arrive after another operation, so event identity and recoverable processing matter more than assuming a single successful request.

Next.js Integration Boundaries

Compatibility adapters preserve cookies, redirects, and revalidation while backend modules evolve. Per-render stores initialize request-specific state without sharing it across visitors; the client then manages its own ongoing interactions.

Owner Workflow Evidence

The gallery contains actual development captures of the owner dashboard, calendar dialog, and mobile owner guidance. The records are demonstration data, and the images can be opened to inspect the full workflow captures.

Have a project or opportunity in mind?

Let's discuss employment opportunities or freelance work.

Contact Kunj