susheelhbti / rentwheel
Modern car rental platform with Stripe integration, multi-user roles, and automated workflows
dev-main
2026-05-13 06:49 UTC
Requires
- php: ^8.2
- barryvdh/laravel-dompdf: ^2.0
- laravel/framework: ^11.0
- laravel/sanctum: ^4.0
- laravel/tinker: ^2.9
- spatie/laravel-permission: ^6.0
- stripe/stripe-php: ^13.0
- twilio/sdk: ^8.0
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/pint: ^1.13
- laravel/sail: ^1.26
- laravel/telescope: ^5.0
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-05-13 09:22:03 UTC
README
A production-grade car rental platform built with Laravel 11, Stripe Connect, multi-role auth, and automated workflows.
Built by Susheel Kumar · Available for freelance work
Features
9 Modules · 54 Features
| Module | Highlights |
|---|---|
| Database & Models | 12 tables, soft deletes, full-text search index, audit log |
| Car Search | Geo-radius, full-text, date availability, 8 filters, 5 sort modes |
| Booking Management | Overlap detection, extend, waitlist with auto-promote |
| Payments & Payouts | Stripe PaymentIntents, deposits, refunds, Stripe Connect host payouts |
| Notifications | Email + SMS (Twilio) + in-app, queued, scheduled 24h/2h reminders |
| Host Management | Photo upload/reorder, availability calendar, peak pricing, earnings dashboard |
| Reviews & Ratings | Two-way reviews, rating aggregation, admin moderation |
| Auth & Security | Sanctum tokens, license verification, role middleware, rate limiting |
| Admin & Analytics | Dashboard (cached), revenue reports, dispute management, user management |
Tech Stack
- Backend: Laravel 11, PHP 8.2
- Auth: Laravel Sanctum (API tokens)
- Payments: Stripe (PaymentIntents + Connect)
- Queue: Redis + Laravel Queues
- SMS: Twilio
- Email: Laravel Mail (SMTP/Mailgun/SES)
- Database: MySQL 8 with full-text indexes
- Cache: Redis
Quick Start
# Clone git clone https://github.com/susheelhbti/rentwheel.git cd rentwheel # Install dependencies composer install # Environment setup cp .env.example .env php artisan key:generate # Configure .env: # DB_*, STRIPE_KEY, STRIPE_SECRET, STRIPE_WEBHOOK_SECRET # TWILIO_SID, TWILIO_TOKEN, TWILIO_FROM # MAIL_*, QUEUE_CONNECTION=redis # Run migrations and seed demo data php artisan migrate:fresh --seed # Link storage php artisan storage:link # Start queue worker php artisan queue:work redis --tries=3 # Start scheduler (local dev) php artisan schedule:work
Demo accounts after seeding:
| Role | Password | |
|---|---|---|
| Admin | admin@carrental.test | password |
| Host | james@example.com | password |
| Renter | alex@example.com | password |
API Overview
POST /api/auth/register
POST /api/auth/login
GET /api/cars?q=&location=&start_date=&end_date=&category=&sort=
GET /api/cars/{id}/availability
GET /api/cars/{id}/price-estimate
POST /api/bookings
POST /api/bookings/{id}/payment-intent
POST /api/bookings/{id}/cancel
POST /api/bookings/{id}/extend
POST /api/host/listings
GET /api/host/earnings
GET /api/admin/dashboard
GET /api/admin/revenue
Full route list: routes/api.php
Security
- Input validation on every endpoint (whitelisted enums, type-cast integers, sanitised strings)
- Rate limiting: auth 10/min · public search 60/min · admin 30/min
- Stripe webhook signature verification + idempotency guard
- Role-based middleware (admin / host / license verified)
- Policy-based resource authorization (BookingPolicy, CarPolicy)
- Audit log on all model changes
Project Structure
app/
├── Http/Controllers/ # AuthController, BookingController, HostController, AdminController …
├── Http/Middleware/ # EnsureAdmin, EnsureHost, EnsureLicenseVerified, EnsureTwoFactor
├── Models/ # User, Car, Booking, Payment, Payout, Review, Dispute …
├── Notifications/ # BookingConfirmed, BookingCancelled, PaymentReceived …
├── Policies/ # BookingPolicy, CarPolicy
├── Services/ # CarSearchService, BookingService, PaymentService, HostService …
├── Observers/ # AuditObserver
└── Console/Commands/ # SendBookingReminders
database/
├── migrations/ # 3 migration files covering all 12 tables
└── seeders/ # DatabaseSeeder with demo data
resources/views/emails/ # 6 styled HTML email templates
routes/api.php # All 40+ API routes
config/platform.php # Centralised platform config (fees, TTLs, currency)
License
MIT © 2024 Susheel Kumar
Author
Susheel Kumar — Laravel & PHP Developer
📧 susheelhbti@gmail.com
🐙 github.com/susheelhbti
Available for freelance projects. See freelancer profile for services offered.