Why RentPilot
What makes it better
than the alternatives
- 01
FTA-compliant tax invoices and credit notes
Seller details frozen at issue, VAT working file export, automatic fine admin fee VAT
- 02
AI-powered operations
Damage detection from check-in/check-out photos, document OCR (Emirates ID, passport, licence), demand forecasting with seasonal rate adjustment, customer risk scoring with automated reviews
- 03
WhatsApp and SMS inbox with chatbot assistant
Staff take over conversations, AI handles common queries, supports both channels with Twilio and Meta integrations
- 04
Multi-branch with granular roles
Branch managers and counter staff see only their branch's data via EF Core query filters, admins see all, driver task app for vehicle transfers
- 05
Complete customer journey
Guest checkout, online booking with live quotes, promo codes, loyalty points, waitlist when sold out, pre-check-in signing, trip page with extend/cancel/review, corporate account area for fleet managers
Public Website & Booking
- Home page with search
- fleet pages with filters and gallery
- branches with map and opening hours
- FAQ
- reviews
- contact form
- CMS-editable legal pages
- Online booking: car group or exact car
daily/weekly/monthly/long-termlease- add-ons
- promo codes
- delivery
- one-way rentals
- loyalty points
- guest checkout
- Document upload
- date-of-birth and branch-hours validation
- SEO (meta
- Open Graph
- JSON-LD
- sitemap)
- cookie consent
- installable PWA
- Sign-in by email/password
- WhatsApp/SMS code
- Apple
- UAE PASS (all configurable in Settings → Sign-in providers)
- English and Arabic UI
- customer language preference stored per account
Customer Portal (My Bookings)
- Trip page: booking details
- change dates or car group with price difference
- extend rental
- cancel with automatic fee rules
- Online pre-check-in: digital agreement signing
- inspection report upload
- damage diagram
- View invoices and download PDF
- see fines and tolls
- leave reviews
- join waitlist when sold out
- Corporate account area: company credit and open invoices with Stripe pay links
- monthly statement
- all drivers' bookings
- add drivers
- Push notifications opt-in (Web Push API)
- notification preferences per channel (email
- SMS
- push)
Reservations & Rentals
- Dashboard: KPIs (revenue
- utilisation
- fleet status)
- revenue chart
- expiry alerts
- global search
- 14-day calendar view with vehicle rows and booking bars
- list view with filters (branch
- status
- search)
- create booking with live quote calculator
- Modify
- extend
- cancel
- no-show
- waitlist management
- corporate credit limit checks (overridable by Admin/Branch Manager)
- Check-out: digital agreement with e-signature
- damage diagram
- fuel and mileage recording
- optional Stripe card hold for deposit
- Check-in: inspection report
- automatic extra charges (excess km
- fuel
- late return
- damage)
- AI photo damage comparison (optional)
- deposit release
Fleet Management
- Vehicles: create/edit with photos
- documents (registration
- insurance
- inspection) with expiry alerts
- branch transfers
- profit per car report
- Vehicle status: Available
- On Rent
- Maintenance
- Out of Service; odometer and fuel level tracking
- Maintenance work orders: create
- assign to workshop
- track parts and labour costs
- complete with invoice upload
- Damage claims: link to booking
- record repair costs
- attach photos and invoices
- Branch restriction: branch staff see only their branch's vehicles (EF Core query filters)
Pricing & Promotions
- Rate plans per car group: daily
- weekly
- monthly
- long-term lease rates
- Seasonal pricing: define date ranges with percentage adjustments per car group
- Demand-based pricing: AI forecast suggests adjustments
- apply to future weeks with audit trail
- Promo codes: public/private
- first-rental discount
- weekend specials
- percentage or fixed amount
- usage limits
- Quote calculator: instant price preview with all add-ons
- delivery fees
- one-way charges
- loyalty point redemption
Billing & Payments
- FTA-style tax invoices and credit notes: seller details (company name
- TRN
- address) frozen at issue
- line items with VAT breakdown
- Invoice statuses: Draft
- Issued
- Paid
- Overdue
- Void; automatic overdue job sends reminders
- Payments: record
cash/card/banktransfer - Stripe pay links (email or SMS)
- card holds for deposits
- refunds with audit log
- Security deposits: automatic hold at check-out
- release after inspection or 7 days (configurable job)
- capture for damages
- Corporate billing: invoices billed to company account
- credit limit enforcement
- monthly statement with ageing
- payment term tracking
- PDF and Excel export for all invoices
- VAT working file report
Fines & Tolls
- CSV import with per-row validation: plate number
- date
- amount
- fine type (Salik
- Darb
- police)
- Automatic matching to the renter at the time of the fine (by plate and date)
- VAT only on the admin fee (configurable percentage)
- not on the fine itself (FTA compliance)
- Fine statuses: Pending
- Paid
- Disputed; link to booking and customer
- Notification to customer when fine is added
- payment tracking
Messaging & Notifications
- WhatsApp and SMS inbox: staff view all conversations
- AI assistant handles common queries (booking status
- payment
- documents)
- Staff take over: mark conversation as 'Waiting for staff'
- reply manually
- hand back to assistant
- close when resolved
- Notification templates: email
- SMS
- push; English and Arabic; variables for customer name
- booking details
- amounts
- Scheduled jobs: booking reminders (24h before pickup)
- overdue invoice reminders
- deposit release notifications
- review requests (3 days after return)
- daily digest for staff
- Twilio (SMS/WhatsApp) and Meta (WhatsApp Business API) integrations
- webhook handlers for inbound messages
AI Features
- Damage detection: compare check-out and check-in photos (up to 8 per side)
- highlight new damage with bounding boxes and severity scores
- Document OCR: read Emirates ID
- passport
- driving licence (front and back)
- auto-fill customer form fields
- Demand forecasting: analyse historical bookings
- suggest seasonal rate adjustments per car group
- apply with one click
- Risk scoring: calculate customer risk (0-100) from booking history
- payment behaviour
- fines
- damages; AI review generates explanation
- Chatbot assistant: answer customer questions in WhatsApp/SMS
- look up bookings
- explain policies
- escalate to staff when needed
- Anthropic Claude integration (configurable API key in Settings → AI)
Reports & Analytics
- Revenue report: total
- by branch
- by vehicle category
- by payment method
- date range filter
- CSV and Excel export
- Utilisation report: days rented vs available per vehicle
- percentage
- profit per car
- VAT working file: all invoices with VAT breakdown
- credit notes
- totals for FTA submission
- Receivables ageing: open invoices grouped by 0-30
- 31-60
- 61-90
- 90+ days
- per customer and corporate account
- Fines report: all fines with status
- customer
- booking
- amount
- admin fee
- VAT
- payment status
- Dashboard charts: revenue trend (last 12 months)
- fleet status pie chart
- top customers by spend
Staff & Roles
- Roles: Admin (full access)
- Branch Manager (branch-only
- approve invoices)
- Counter Staff (branch-only
- bookings and rentals)
- Accountant (billing and reports)
- Driver (task app for transfers)
- Branch restriction: EF Core query filters limit data to staff's assigned branch (vehicles
- bookings
- customers
- invoices)
- Invite staff: generate temporary password
- send email
- force password change on first sign-in
- Audit log: all
create/update/deleteactions with user - timestamp
- entity type
- entity ID
- description
- Driver task app: view assigned transfers
- mark as complete
- upload odometer photo
Settings & Configuration
- Company: name
- TRN
- trade licence
- address
- phone
- logo
- favicon
- timezone
- currency
- Branding: primary/secondary colours
- font (Google Fonts)
- custom CSS
- logo and favicon upload
- Email: SMTP server
- port
- username
- encrypted password
- test send
- Payments: Stripe publishable and secret keys
- webhook secret (encrypted)
- test mode toggle
- Messaging: Twilio (account SID
- auth token
- phone number)
- Meta (app ID
- app secret
- access token
- verify token
- phone number ID)
- AI: Anthropic API key (encrypted)
- enable/disable features (damage detection
- OCR
- forecasting
- risk scoring
- chatbot)
- Tax: VAT rate
- fine admin fee percentage
- invoice number prefix
- payment terms
- Rental policy: minimum age
- maximum rental days
- cancellation fee rules
- late return grace period
- excess km rate
- fuel refill rate
- Branches: name
- address
- phone
- opening hours
- map coordinates
- active/inactive
- Add-ons: name
- price
- category (insurance
- GPS
- child seat
- etc.)
- active/inactive
- Portal: enable/disable guest checkout
- loyalty points
- reviews
- waitlist
- online check-in
- Sign-in providers: Google (client ID
- secret)
- Apple (client ID
- secret)
- UAE PASS (client ID
- secret)
- enable/disable each
- Jobs: enable/disable scheduled jobs (reminders
- overdue invoices
- deposit release
- risk scoring
- daily digest)
- configure run times
- All settings editable in the admin panel
- no redeploy needed
- secrets encrypted with ASP.NET Core Data Protection
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| C# | — | — | Web, API, admin | 63% |
| C# (Razor) | — | — | Web pages | 21.2% |
| CSS | — | — | Styling | 8.2% |
| SQL | — | — | Database | 3.5% |
| HTML | — | — | Front-end | 1.9% |
| JavaScript | — | — | Front-end | 1.8% |
| Python | — | — | Web, API | 0.4% |
- Primary language
- C# 12 (.NET 10)
- Framework
- ASP.NET Core 10 MVC
- Database
- SQL Server 2019+
- Authentication
- ASP.NET Core Identity + OAuth (Google, Apple, UAE PASS)
- Licence
- Single-site
- Screens
- 78
- Database tables
- 54
- Supported languages
- English, Arabic (RTL)
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge)
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB RAM / 20 GB SSD | 8 GB RAM / 40 GB SSD |
| OS | Windows Server 2019+ with IIS 10+ or Linux (Ubuntu 22.04+, Debian 11+) with .NET 10 Runtime | Windows Server 2019+ with IIS 10+ or Linux (Ubuntu 22.04+, Debian 11+) with .NET 10 Runtime |
| Est. monthly hosting | $35 | $35 |
```bash cp .env.example .env # Edit .env: set MSSQL_SA_PASSWORD (8+ chars, upper/lower/digit/symbol) # Set ADMIN_EMAIL and optionally ADMIN_PASSWORD docker compose up -d # App runs on http://localhost:8080 # Admin panel: http://localhost:8080/admin ```
```bash # Install .NET 10 Runtime wget https://dot.net/v1/dotnet-install.sh chmod +x dotnet-install.sh ./dotnet-install.sh --channel 10.0 --runtime aspnetcore # Install SQL Server 2019+ or use remote instance # Create database: RentPilot # Extract archive unzip rentpilot.zip cd "NET Project" # Configure connection string in appsettings.json or environment variable export ConnectionStrings__DefaultConnection="Server=localhost;Database=RentPilot;User Id=sa;Password=YourPassword;TrustServerCertificate=True" export Seed__AdminPassword="YourAdminPassword" # Publish and run dotnet publish src/RentPilot.Web/RentPilot.Web.csproj -c Release -o /var/www/rentpilot cd /var/www/rentpilot dotnet RentPilot.Web.dll # Configure reverse proxy (nginx/Apache) for HTTPS # App listens on http://localhost:5000 by default ```
```powershell # Install .NET 10 Hosting Bundle from https://dotnet.microsoft.com/download/dotnet/10.0 # Install SQL Server 2019+ (Express or Standard) # Create database: RentPilot # Extract archive to C:\inetpub\rentpilot Expand-Archive rentpilot.zip -DestinationPath C:\inetpub\rentpilot cd "C:\inetpub\rentpilot\NET Project" # Edit appsettings.json: set ConnectionStrings:DefaultConnection # Set Seed:AdminPassword # Publish dotnet publish src/RentPilot.Web/RentPilot.Web.csproj -c Release -o C:\inetpub\rentpilot\app # Create IIS site: # - App Pool: .NET CLR Version = No Managed Code # - Physical path: C:\inetpub\rentpilot\app # - Binding: https on port 443 with SSL certificate # Start site ```
```bash # Requires SQL Server (Docker or local instance) # Start SQL Server in Docker: docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Dev_Pass123!" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest # Navigate to project cd "NET Project" # Set admin password dotnet user-secrets set "Seed:AdminPassword" "Admin_Pass123!" --project src/RentPilot.Web # Run dotnet run --project src/RentPilot.Web # Open https://localhost:7180 (website) # Admin: https://localhost:7180/admin (admin@example.com) ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
89/ 100
Automated audit score
✓ Passed the auditReviewer notes (5 minor)
Strong authentication and role policies; minor ownership gaps on read endpoints; database access is safe; minor schema gaps (missing indexes on some foreign keys); dependencies mostly current; no critical vulnerabilities found, minor outdated packages; weak default database password and missing .env file in production archive; moderate code duplication and some oversized files; clean architecture mostly respected. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.