susheelhbti/rentwheel

Modern car rental platform with Stripe integration, multi-user roles, and automated workflows

Maintainers

Package info

github.com/susheelhbti/rentwheel

pkg:composer/susheelhbti/rentwheel

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-05-13 06:49 UTC

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.

Laravel PHP Stripe License

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 Email 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.