Files
carmanagement/docs/README.md
T
root fe8ffbeb9f
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 48s
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
update payment method, remove stripe, paypal, amanapay
2026-08-17 21:05:29 -04:00

104 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚗 RentalDriveGo— Multi-Tenant Car Rental SaaS + Carplace
## Platform Model
**Rental Companies (B2B)** — pay RentalDriveGo a subscription via manual bank transfer or check, get:
- A fully private dashboard (zero data overlap with any other company)
- Fleet management with vehicle photo upload (photos auto-appear on global carplace)
- Promotional offers management
- A white-label site at `company.RentalDriveGo.com` where renters book and pay
**Renters (B2C)** — free account, can:
- Browse ALL companies' vehicles and offers on `RentalDriveGo.com/explore`
- Click a vehicle → **redirected to the company's site** to book and pay
- Receive full notifications (Email + SMS + WhatsApp + Push + In-App)
- Track all bookings across companies in one account
---
## Payment Model — Manual Bank Transfer and Check Only
All subscription and rental payments are recorded manually:
| Context | Methods |
|---------|---------|
| **Company subscription billing** | Bank transfer or check via manual checkout and payment submissions |
| **Rental payments (dashboard)** | Bank transfer or check recorded against reservations |
Online checkout providers (Stripe, AmanPay, PayPal) have been removed from the platform.
---
## 🌐 Carplace is Discovery Only — No Booking on RentalDriveGo.com/explore
The global carplace shows all vehicles with photos from all companies. When a renter clicks "Book this vehicle", they are **redirected to the company's branded site** (`{slug}.RentalDriveGo.com/book?vehicleId=X&from=Y&to=Z&ref=carplace`). The booking form is pre-filled. All payment happens on the company site using the company's own payment accounts.
---
## 📸 Vehicle Photos → Carplace Visibility
```
Company uploads photos in /dashboard/fleet
→ Stored in Cloudinary
→ Vehicle.photos[] holds the URLs
→ First photo = cover image on carplace cards
→ All photos shown in carplace vehicle gallery
→ isPublished=true makes vehicle appear on carplace
```
---
## 🏗 Five-Layer Architecture
```
Layer 1A: RentalDriveGo.com — B2B marketing site
Layer 1B: RentalDriveGo.com/explore — B2C carplace (discovery + redirect only)
Layer 2: app.RentalDriveGo.com — Company dashboard (private, subscription-gated)
Layer 3: {slug}.RentalDriveGo.com — Company branded site (booking + payment here)
Layer 4: api.RentalDriveGo.com — REST API
```
---
## 📁 Project Structure
```
rental-car-site/
├── README.md
├── docs/
│ ├── design/ ← Production-readiness design updates (Phases 04)
│ ├── project-design/ ← Feature / API / schema design
│ ├── ops/ ← Runbooks, readiness plan, drills
│ ├── ARCHITECTURE.md ← Payment providers, carplace redirect model, photo flow
│ ├── DESIGN_SYSTEM.md
│ ├── PAGES.md ← All pages. Carplace = discovery only. Booking = company site.
│ ├── FEATURES.md
│ └── DEPLOYMENT.md
└── apps / packages / scripts ← See monorepo root README
```
See **`docs/design/README.md`** for what changed during the production-readiness program.
---
## 🛠 Tech Stack
| Concern | Technology |
|---------|-----------|
| Subscription payment | Manual bank transfer or check |
| Rental payment | Manual bank transfer or check |
| PDF generation | `@react-pdf/renderer` — server-side, on-demand, never stored |
| Damage diagrams | SVG top-down car map (22 zones, React interactive + PDF static render) |
| Insurance | Per-company configurable policies with per-day/flat/% charge types |
| Pricing rules | Age/experience-based surcharges & discounts (configurable per company) |
| Email | Resend |
| SMS + WhatsApp | Twilio |
| Push | Firebase FCM |
| Real-time in-app | Socket.io + Redis |
| Images | Cloudinary |
| Company auth | Clerk |
| Renter auth | JWT (custom) |
| API | Node.js + Express + Prisma + PostgreSQL |
| Frontend | Next.js 14 + React 18 + Vite |
| Deployment | Vercel + Railway |