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
104 lines
4.0 KiB
Markdown
104 lines
4.0 KiB
Markdown
# 🚗 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 0–4)
|
||
│ ├── 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 |
|