Files
carmanagement/docs/project-design/FEATURES.md
T
root 8fc88ffc14
Build & Push / Pipeline Tests (push) Failing after 59s
Build & Push / Build & Push Docker Image (push) Has been skipped
Test / Type Check (all packages) (push) Failing after 51s
Test / API Unit Tests (push) Has been skipped
Test / Homepage Unit Tests (push) Has been skipped
Test / Carplace Unit Tests (push) Has been skipped
Test / Admin Unit Tests (push) Has been skipped
Test / Dashboard Unit Tests (push) Has been skipped
Test / API Integration Tests (push) Has been skipped
fix production issues
2026-08-12 16:48:41 -04:00

6.0 KiB

Features — Current Product Scope

This document lists the features that are active in the current codebase.

Source of truth:

  • apps/carplace
  • apps/dashboard
  • apps/admin
  • apps/api
  • packages/database/prisma/schema.prisma

Active Applications

The current workspace contains four active apps:

  • apps/carplace
  • apps/dashboard
  • apps/admin
  • apps/api

There is no separate frontend app for a white-label company public site in this repo at the moment.

Active Platform Features

Company signup and employee access

  • Company signup through the dashboard sign-up flow backed by POST /auth/company/signup
  • Employee sign-in with local email/password auth
  • Employee password reset flow
  • Team invitation flow that creates a pending employee and sends a reset-password invite link
  • Employee roles: OWNER, MANAGER, AGENT

Multi-tenant company operations

  • Company-scoped vehicles, customers, reservations, offers, payments, complaints, and notifications
  • API tenant isolation through employee auth plus companyId scoping
  • Cross-tenant negative regression suite (cross-tenant-isolation integration tests)
  • Company profile, brand, contract settings, insurance policies, pricing rules, and accounting settings
  • Public API key generation/regeneration for company integrations

Dashboard operations

  • Dashboard home with KPI cards and booking-source analytics
  • Fleet management
  • Vehicle photo uploads
  • Vehicle publish/unpublish
  • Vehicle status management
  • Vehicle maintenance logs
  • Vehicle calendar blocks
  • Reservation list, detail, create, update, confirm, check-in, check-out, close, extend, cancel
  • Reservation pickup/dropoff inspections
  • Reservation photo uploads
  • Additional-driver approval workflow
  • Online reservation intake queue
  • Customer CRM
  • Offer management
  • Team management
  • Company billing page for rental payments
  • Contract generation/viewing
  • Reviews and complaints management
  • Notification inbox and preferences
  • Subscription management

Carplace and public platform

  • Public marketing homepage
  • Public pricing page
  • Public features page
  • Public carplace/explore flow
  • Explore company profile pages under /explore/[slug]
  • Public review submission page via review token
  • Public legal/app policy pages
  • Public platform content loaded from /site/platform/* API endpoints

Subscription and billing

  • SaaS trial and subscription lifecycle
  • Subscription status handling including TRIALING, ACTIVE, PAYMENT_PENDING, PAST_DUE, SUSPENDED, CANCELLED, EXPIRED, PAUSED, UNPAID
  • Plan pricing and entitlements from a single catalog (packages/types planCatalog) with DB overrides where configured
  • Homepage marketing prices derived from the same catalog
  • AmanPay and PayPal provider support for SaaS subscription checkout
  • Subscription invoice history
  • Platform billing accounts, billing invoices, billing events, refunds, credit notes, and tax records
  • Canonical billing models preferred over legacy subscription-invoice-only writes (see docs/BILLING_NOTIFICATION_SOURCE_OF_TRUTH.md)

Rental payments

  • AmanPay payment initialization and webhook handling
  • PayPal payment initialization and capture handling
  • Manual rental payment recording
  • Reservation refund support for successful online payments
  • Payment status tracking on reservations

Notifications

  • Email notifications
  • SMS notifications
  • WhatsApp notifications
  • In-app notifications
  • Notification templates and per-channel preferences
  • Notification history for company users
  • Durable notification outbox with leased dispatch on api-worker (Redis publish for IN_APP)
  • Canonical event/recipient/delivery models preferred over legacy flat notifications

Ops and production-readiness baselines

  • GET /ready and GET /metrics on the API
  • Shared Redis rate limiting and Carplace idempotency
  • Optional S3/MinIO file storage driver
  • OpenAPI coverage CI gate
  • Design summary: docs/design/

Reservation-adjacent advanced operations

  • Insurance policy configuration
  • Reservation insurance snapshots
  • Additional-driver charging rules
  • Driver license validation and approval states
  • Pricing rules and reservation-time pricing-rule snapshots
  • Damage inspections and damage points
  • Contract settings for fuel policy, tax, numbering, and additional-driver behavior
  • Reporting and export-oriented accounting defaults

Admin app

  • Admin login and password reset
  • Admin 2FA enrollment; fresh 2FA required for money / high-privilege mutations (TTL)
  • Admin dashboard
  • Company management
  • Renter management
  • Admin-user management
  • Audit-log views
  • Billing operations
  • Pricing configuration and promotions
  • Notification review
  • Carplace/site config management
  • Per-tenant Docker/container orchestration UI is out of scope (ADR-001)

Present But Not Active Product Features

These exist partially in code or schema, but they are not active end-user product flows and should not be treated as shipped features.

  • Renter self-service signup
  • Renter self-service login
  • Renter email verification flow
  • Clerk-based employee auth
  • Clerk webhooks
  • Clerk invitation acceptance
  • Admin impersonation through Clerk sessions
  • Multi-currency SaaS checkout beyond MAD
  • Separate white-label company-site frontend app
  • Per-tenant Docker container orchestration (explicitly disabled — ADR-001)
  • Microservice extraction of payments/webhooks/media (deferred — ADR-003)

Explicitly Out Of Scope For Current Docs

The following old design ideas should not be treated as active features unless code is added later:

  • marketing blog
  • standalone about/contact page set
  • Google renter auth
  • automatic custom-domain provisioning
  • Zapier/webhook carplace integrations beyond the current API/webhook handlers

Notes

  • The database still contains legacy fields such as Employee.clerkUserId, but those fields are no longer evidence of active Clerk integration.
  • Some renter-facing /renter/* pages exist in the carplace app, but the auth entrypoints they depend on are not active. They are therefore not listed as active product scope here.