Technical Details

Built on a Modern, Secure & Scalable Architecture

LimoSchedule is engineered with a modern Laravel architecture, structured business logic, secure authentication, integrated payment gateways, Google Maps services, browser push notifications, and a production-ready MySQL database.

Frontend
Laravel Application
Business Services
Database
External Integrations
PHP 8.2+ Laravel 12 MySQL Blade Alpine.js Tailwind CSS Vite

A Complete Technical Overview

Every claim on this page was verified against the actual source code — browse each area of the architecture below.

Technology Stack

Modern Technology Stack

Built with proven technologies selected for reliability, maintainability and production performance.

PHP

Language
8.2+

The server-side language the entire application runs on.

Laravel

Framework
12

MVC framework providing routing, Eloquent ORM, auth and validation.

Blade

Templating
Built-in

Server-rendered templates for every page across all four panels.

Alpine.js

Frontend
3.x (CDN)

Lightweight interactivity, loaded via CDN — not an npm dependency.

Tailwind CSS

Styling
4

Utility-first CSS, compiled via the @tailwindcss/vite plugin.

Vite

Build Tool
7

Compiles a pre-built static CSS/JS bundle for production.

MySQL / MariaDB

Database
via Laravel

Relational database — 100% Laravel migrations, no raw SQL dump.

Laravel Dompdf

PDF Generation
3.1

Generates branded booking invoice PDFs.

No React, Vue, Next.js or Inertia is used anywhere in the codebase — the frontend is server-rendered Blade with Alpine.js for interactivity.
Application Architecture

Clean Laravel MVC Architecture

The application follows a classic Laravel MVC architecture with purpose-built service classes for complex business logic — business-critical logic is separated from controllers, keeping the application easier to maintain.

Public Website
Controllers
Service Layer
Eloquent Models
MySQL Database

Example Service Classes

BookingCreationService
BookingFareCalculator
DriverDispatchService
DriverLocationService
GoogleMapsService
OfficeLocationService
PushNotificationService
ReportService
StripePaymentService
PayPalPaymentService
Multi-Panel Architecture

One Platform. Four Powerful Experiences.

Public Website

Customer-facing booking and marketing experience.

Guest booking, fleet showcase, content & SEO

Customer Panel

Customer account, bookings, payments, invoices and support.

Session-authenticated, customer guard

Driver Panel

Assigned trips, availability, location updates and trip workflow.

Session-authenticated, driver guard

Admin Panel

Centralized management, configuration, bookings, drivers, customers and system controls.

Session-authenticated, admin guard + RBAC
Database

Structured MySQL Database

109
Migration Files
51
Eloquent Models
Relational
Data Architecture

Key Business Entities

Booking
Customer
Driver
Vehicle
Vehicle Category
Pricing Rule
Coupon
Payment Gateway
Invoice
Wallet
Role
Permission
Page
Page Section
Country
State
City
Airport
Train Station
Pickup Point
Language
Currency
Translation
Customer
Bookings
Driver
Vehicle
Country
State
City
Role
Permissions
Admin Access
Authentication & Security

Built with Security in Mind

Authentication Architecture

Admin GuardOwn session-authenticated guard, login flow and password-reset flow.
Customer GuardOwn session-authenticated guard, login flow and password-reset flow.
Driver GuardOwn session-authenticated guard, login flow and password-reset flow.

Security Layers

CSRF Protection
Session Authentication
Role-Based Permissions
Password Hashing (bcrypt)
Input Validation
Mass Assignment Protection
SQL Injection Protection
XSS Protection
Rate Limiting
Verified Security Controls
Roles & Permissions

Granular Role-Based Access Control

LimoSchedule includes a custom role and permission system for controlling administrative access.

Admin
Role
Permissions
Module Access

Permission Modules

Bookings
Customers
Drivers
Vehicles
Payments
Reports
Pricing
Settings
Content
Blog
Languages
Currencies
Coupons
System Tools
Payment Architecture

Integrated Payment Infrastructure

Stripe

  • Stripe PHP SDK
  • Online card payments
  • Sandbox / Live mode
  • Configurable credentials

PayPal

  • PayPal REST integration
  • Sandbox / Live mode
  • Client ID / Secret
  • Online payment
Booking
Payment Required
Stripe / PayPal
Payment Confirmation
Booking Confirmation
Refunds are handled as customer wallet/store credit in the current implementation — there is no automatic Stripe/PayPal refund reversal call.
Maps & Dispatch

Location-Aware Booking & Dispatch

Booking Location
Google Maps
Distance Calculation
Fare Estimate
Driver GPS
Dispatch Service
Distance / ETA
Customer
Google Places
Distance Matrix
Geocoding
Driver GPS
Dispatch ETA
Caching
Driver location is a single current latitude/longitude point — there is no location-history table and no live-updating map view. Distance and ETA are surfaced as numbers, not a moving GPS map.
Notifications

Native Browser Push Notifications

LimoSchedule uses VAPID-based Web Push directly with browser push services, without Firebase, OneSignal or Pusher.

Browser
Push Subscription
VAPID
Web Push Service
Notification
VAPID Web Push Service Worker Chrome Edge Firefox

Multi-Channel Notification Architecture

Email

Laravel Mail / Notification

Database

In-app notifications

Web Push

Native browser push

SMS is not currently integrated. WhatsApp booking links use wa.me deep links rather than the WhatsApp Business API.
Performance & Storage

Optimized for Efficient Performance

Settings CachingForever-cached singleton settings with automatic invalidation.
Google Maps CachingDistance Matrix and Geocoding responses are cached to reduce API usage.
Dispatch Snapshot Caching60-second / movement-based ETA snapshot caching.
PaginationLarge lists use paginated queries.
Pre-Built AssetsTailwind/Vite assets are compiled before production deployment.

Simple Production-Ready File Handling

Uploaded files are stored directly under public/uploads/ — covering Settings, Pages, Vehicles, Blog, push-notification assets and backups.

Laravel storage:link is not required by the current implementation. No cloud/S3 storage is wired up.
Integrations & Endpoints

Third-Party Integrations

Google MapsPlaces, Distance Matrix and Geocoding
StripeOnline card payments
PayPalAlternative online payments
Web PushNative browser notifications
WhatsAppClick-to-chat booking handoff

Internal Application Endpoints

LimoSchedule does not currently expose a public partner REST API. Instead, the application uses protected internal AJAX endpoints for its own frontend interactions.

/booking/quote Internal AJAX
/coupon/apply Internal AJAX
/push/subscribe Internal AJAX
/push/unsubscribe Internal AJAX
/push/status Internal AJAX
/driver/location Internal AJAX
/account/bookings/{id}/dispatch Internal AJAX
Server & Deployment

Production Environment Requirements

PHP
8.2+
Database
MySQL / MariaDB
Web Server
Apache / Nginx
Composer
2.x

Node.js / npm is required for the one-time asset build only — not needed at runtime once public/build/ is deployed.

PHP Extensions

GD mbstring openssl pdo_mysql tokenizer xml ctype json bcmath fileinfo
Document Root: /public
HTTPS required for browser push outside localhost.

From Source Code to Production

1. Upload Source Code
2. Configure Environment
3. Create Database
4. Install Composer Dependencies
5. Configure App Key
6. Run Migrations
7. Build Assets
8. Configure Permissions
9. Configure Integrations
10. Enable HTTPS
11. Test Application
12. Go Live

Quick Installation

# Install PHP dependencies
$ composer install

# Install & build frontend assets
$ npm install
$ npm run build

# Application setup
$ php artisan key:generate
$ php artisan migrate

Production uses pre-built assets and does not require a running Vite dev server.

View Complete Installation Guide
Current Technical Scope

Clear Technical Scope for Transparent Deployment

No public REST API
No SMS provider integration
No dedicated 2FA
No live location-history tracking
No scheduled cron tasks currently implemented
No automatic payment-provider refund reversal
No cloud/S3 storage integration

Technical Questions

Is LimoSchedule self-hosted or cloud-hosted?

LimoSchedule is self-hosted — you deploy it on your own server. It requires PHP 8.2+, a MySQL or MariaDB database, and an Apache or Nginx web server.

What security measures does LimoSchedule include?

CSRF protection, session-based authentication with separate guards for Admin, Customer and Driver, role-based permissions, bcrypt password hashing, input validation, mass-assignment protection, SQL injection and XSS protection, and rate limiting.

What technology stack is LimoSchedule built with?

PHP 8.2+, Laravel 12, a MySQL/MariaDB database, Blade templates, Alpine.js, Tailwind CSS and Vite.

Ready to Deploy Your Own Limo Booking Platform?

Get a complete limo and chauffeur booking system built on a modern Laravel architecture with customer, driver and admin experiences.

Talk to us — Instant reply