EquipTrack Pro

Operations

Original Idea

Equipment Rental Tracker A web app that tracks availability, deposits, and maintenance cycles.

Product Requirements Document (PRD): EquipTrack Pro

1. Executive Summary

EquipTrack Pro is a specialized operations platform designed for equipment rental businesses to centralize inventory management, financial security, and asset longevity. By integrating real-time availability calendars, automated maintenance scheduling, and secure deposit handling, the platform eliminates the inefficiencies of manual tracking and reduces financial leakage caused by double-bookings and neglected equipment wear.

2. Problem Statement

Rental businesses currently struggle with:

  • Manual Inventory Lag: Reliance on spreadsheets leads to double-bookings and missed revenue.
  • Financial Risk: Inconsistent security deposit management makes recovering costs for damaged equipment difficult.
  • Maintenance Neglect: Lack of automated alerts leads to equipment failure, safety risks, and shortened asset lifespans.
  • Operational Friction: Slow check-in/out processes create long wait times for customers.

3. Goals & Success Metrics

  • Reduce Double-Bookings: Goal of <1% scheduling conflicts within the first 6 months.
  • Improve Maintenance Compliance: 100% of "Critical" maintenance tasks completed within 48 hours of alert.
  • Faster Check-out/In: Reduce average customer processing time by 40% using QR scanning.
  • Revenue Recovery: Increase successful damage-related deposit retentions by 25% via structured photo evidence and partial capture logic.

4. User Personas

  • Rental Shop Owner (Sam): Needs high-level financial reporting and asset ROI data.
  • Inventory Manager (Margo): Needs to see fleet-wide availability and handle complex scheduling.
  • Maintenance Technician (Tom): Needs a mobile-friendly list of equipment requiring service and historical logs.
  • Front Desk Clerk (Chris): Needs a rapid interface for checking equipment in/out and processing payments.

5. User Stories

  • As a Clerk, I want to scan a QR code on a tractor so I can instantly view its current rental status and technical specs.
  • As a Manager, I want a timeline view of all inventory so I can identify gaps for high-demand periods.
  • As a Technician, I want an automated SMS alert when a generator reaches 500 runtime hours so I can perform an oil change.
  • As an Owner, I want to withhold $200 from a $1,000 security deposit for a broken lens without triggering a full refund and re-charge.
  • As a Customer, I want to digitally sign my rental agreement on a tablet to speed up the pickup process.

6. Functional Requirements

6.1 Inventory & Availability

  • Timeline Calendar: A centralized view using FullCalendar Scheduler showing equipment as resources (Y-axis) and time (X-axis).
  • Real-time Blocking: Immediate "Background Event" creation when a rental is initiated to prevent simultaneous bookings.
  • Condition Tracking: Ability to upload "Pre-rental" and "Post-rental" photos for damage verification.

6.2 Deposit & Payment Management

  • Manual Capture Workflow: Authorize security deposits at checkout; process partial or full capture upon return.
  • Late Fee Engine: Automatically calculate and suggest additional charges for returns past the expectedReturnDate.

6.3 Maintenance & Alerts

  • Cycle Tracking: Maintenance triggers based on either date intervals or usage metrics.
  • Automated Reminders: SMS and email notifications for technicians via Twilio.

6.4 Digital Documentation

  • QR Integration: Unique QR codes generated for every asset for rapid identification.
  • Legal Signatures: Integrated digital signature capture with tamper-evident PDF generation.

7. Technical Requirements

7.1 Tech Stack (2026 Standards)

  • Frontend: React v19.2.3 using React Compiler 1.0; Tailwind CSS v4.1.18 (Rust-based engine).
  • Backend: Node.js v24.13.0 LTS ("Krypton"); Express.js v5.2.1 (using native Promise support).
  • Database: PostgreSQL with btree_gist extension for range overlap performance.
  • Authentication: Auth0 with Post-Login Actions (for RBAC) and Organizations for multi-site isolation.
  • Hosting: AWS Amplify Gen 2 (Code-First IaC).

7.2 Core Integrations

  • Stripe API (v2025-03-31.basil): Using capture_method: manual for deposits.
  • Twilio: Using Native Message Scheduling for 24-hour return reminders.
  • DocuSeal: For ESIGN-compliant digital rental agreements.
  • BullMQ: Redis-backed persistent queue for maintenance workers.

8. Data Model

8.1 Entities

  • Equipment: id (UUID), serialNumber, model, status (enum), maintenanceSchedule (jsonb), currentRange (tstzrange).
  • RentalOrder: id, customerId, equipmentId, bookingPeriod (tstzrange), depositIntentId, status.
  • MaintenanceLog: id, equipmentId, technicianId, serviceType, notes, photoUrls (array).

8.2 Relationships

  • Equipment has many RentalOrders.
  • Equipment has many MaintenanceLogs.
  • RentalOrder belongs to one Customer.

9. API Specification (Highlights)

  • GET /api/v1/availability?start=...&end=...: Uses PostgreSQL && operator to find equipment where bookingPeriod does not overlap requested range.
  • POST /api/v1/rentals/checkout: Creates Stripe PaymentIntent with capture_method: manual.
  • PATCH /api/v1/rentals/:id/return: Triggers amount_captured logic on Stripe; releases remaining funds.

10. UI/UX Requirements

  • Dashboard: High-contrast "Traffic Light" system for equipment status (Green: Available, Yellow: Due Today, Red: Overdue).
  • Mobile-First Scanning: Large touch targets for clerks using mobile devices for QR scanning.
  • Signature Pad: Smooth canvas-based signature input with high-resolution stroke capture.

11. Non-Functional Requirements

  • Performance: Availability queries must return in <200ms using GiST indexing.
  • Security: PCI-DSS compliance (no raw card data stored); AES-256 encryption for customer ID documents.
  • Reliability: 99.9% uptime for the alerting worker (BullMQ + Redis).

12. Out of Scope

  • Customer-facing marketplace (v1 is for internal shop management only).
  • Integration with external 3rd-party logistics/shipping providers.
  • Employee payroll and shift scheduling.

13. Risks & Mitigations

  • Risk: Stripe authorization holds expire after 7 days.
    • Mitigation: Implement Setup Intents for long-term rentals (>7 days) to charge off-session if damage is found.
  • Risk: QR codes on heavy machinery get damaged/unreadable.
    • Mitigation: Provide manual serial-number search fallback in the UI.

14. Implementation Tasks

Phase 1: Project Setup & Infrastructure

  • [ ] Initialize project with React v19.2.3 and Node.js v24.13.0 LTS.
  • [ ] Set up Tailwind CSS v4.1.18 with the new Rust engine.
  • [ ] Configure AWS Amplify Gen 2 sandbox environments.
  • [ ] Initialize PostgreSQL with CREATE EXTENSION IF NOT EXISTS btree_gist;.

Phase 2: Auth & Inventory Core

  • [ ] Implement Auth0 Post-Login Actions for Owner/Manager/Technician roles.
  • [ ] Create Equipment CRUD with tstzrange support for availability.
  • [ ] Build the Timeline Calendar using FullCalendar Scheduler.
  • [ ] Implement GiST index on (equipment_id, booking_period).

Phase 3: Rental Flow & Payments

  • [ ] Integrate Stripe API v2025-03-31.basil for manual capture.
  • [ ] Build Checkout UI with @yudiel/react-qr-scanner for asset selection.
  • [ ] Integrate DocuSeal for digital signature capture on rental agreements.
  • [ ] Implement the "Partial Capture" logic for damage deductions.

Phase 4: Maintenance & Notifications

  • [ ] Set up Redis and BullMQ for background task processing.
  • [ ] Implement Twilio Native Scheduling for 24-hour return reminders.
  • [ ] Create Technician Mobile View for maintenance logs and status updates.
  • [ ] Build the automated alert trigger for usage-based maintenance.

Phase 5: Testing & Deployment

  • [ ] Conduct load testing for date-range overlap queries.
  • [ ] Perform E2E testing of the Stripe "Manual Capture" to "Partial Capture" flow.
  • [ ] Final security audit for Role-Based Access Control (RBAC).
  • [ ] Deploy to production via AWS Amplify Gen 2 with WAF enabled.