Enterprise Asset ManagementWorkflow Automation AI ConciergePayment ProcessingRole-Based Access ControlReal-Time Scheduling

EquipFlow: Shared Asset Rental Platform

An end-to-end equipment management platform that automates asset scheduling, administrative approval workflows, and customer self-service with an integrated AI assistant.

Private Repo
Live Demo
Expand
Project Media
1 / 7

Technologies

React
NextJs
NodeJs
Stripe
PostgreSQL
Prisma
BetterAuth

Type

Personal Project

Role

Solo Engineering & Design

Year

2025

Overview

I built EquipFlow to solve the scheduling conflicts, missing gear, and administrative overhead common in media studios, university departments, and equipment rental facilities. The platform provides a self-service portal where clients can browse inventory, verify real-time availability, get instant guidance from an AI assistant, and reserve equipment for precise dates. Facility administrators and equipment owners use dedicated dashboards to review booking requests, track item condition histories, collect payments, and manage physical equipment returns. By centralizing the complete rental lifecycle into an automated platform, the project eliminates double-bookings, reduces routine customer support inquiries, and ensures financial and asset accountability across every transaction.

Key Features

  • AI-Powered Rental Concierge & Catalog Assistant

    Task: Parses natural-language customer inquiries in real time, cross-references requests against live inventory and policy FAQs, and returns structured responses with direct in-app navigation links. Benefit: Eliminates response delays for prospective renters, guiding users straight to available gear and answering rental terms without requiring human staff intervention.

  • Date-Range Collision Detection & Real-Time Availability

    Task: Evaluates incoming reservation date ranges against active, confirmed, and pending bookings before permitting a request to be submitted. Benefit: Stops overlapping bookings before they reach administrators, eliminating schedule conflicts and saving operational teams hours of manual calendar audits.

  • Multi-Stage Rental Lifecycle State Machine

    Task: Enforces a strict status progression (Pending Approval → Awaiting Payment → Confirmed → Active → Returned), rejecting out-of-order state transitions. Benefit: Establishes rigorous operational control—equipment cannot be checked out before payment clears, and returned gear cannot be rebooked until inspected by staff.

  • Automated Payment Processing & Asynchronous Reconciliation

    Task: Generates itemized checkout sessions once an administrator approves a reservation and locks in booking confirmations upon verified transaction receipts. Benefit: Removes manual invoicing and cash handling, guaranteeing that the business secures payment before taking equipment out of circulation.

  • Role-Scoped Multi-Tier Dashboards

    Task: Segregates data access and operational tools across standard renters, independent asset owners (vendors), and facility administrators. Benefit: Protects sensitive client information and commercial privacy by ensuring renters only see their personal history, vendors only manage bookings for their assigned gear, and platform leads maintain global oversight.

Challenges

  • Deploying an AI Assistant Without Hallucinations or Service Single-Points-of-Failure

    Relying on an external large language model (LLM) for customer self-service introduced two clear risks: the model could hallucinate non-existent inventory or invalid rental rates, and any upstream API timeout or rate limit would break the customer chat interface completely.

  • Preventing Concurrency Collisions on Physical, Single-Unit Inventory

    Physical rental items are discrete, finite assets. If availability was verified only on the client-side calendar widget, concurrent users submitting requests for the same piece of equipment during high-traffic windows could create overlapping reservations, leading to customer disputes and inventory shortages.

  • Eliminating State Drift in Asynchronous Payment Handoffs

    Relying on client-side browser redirects after card payment is inherently fragile. If a user closed their mobile browser tab, lost internet connection, or experienced a slow redirect immediately after paying, the booking would remain stalled in Awaiting Payment while keeping equipment locked up.

Solutions

  • RAG-Driven AI Concierge with Deterministic Fallbacks

    I built a retrieval-augmented pipeline that injects live catalog availability and scored FAQ tags directly into the prompt, requiring strict JSON output for clickable in-app gear links. To ensure reliability, I routed failed or slow model requests to an in-memory keyword fallback engine. This stopped hallucinated gear recommendations and kept user guidance running even during third-party API disruptions.

  • Database-Level Availability Constraints and Soft Holds

    I moved collision detection out of the client datepicker and into the database transaction layer using a date-overlap query (startDate < requestedEnd AND endDate > requestedStart). By treating pending and awaiting-payment reservations as blocking holds during admin review, I eliminated race conditions and prevented multiple users from booking the same physical asset simultaneously.

  • Server-Side Webhook Reconciliation with Atomic Transactions

    Rather than relying on browser redirects after checkout, I embedded the booking ID into the payment metadata and handled confirmations via cryptographically verified server webhooks. The webhook updates the payment and booking records within a single atomic database transaction, ensuring the reservation confirms reliably within seconds even if the customer closes their browser tab immediately after paying.