These services are not included with the purchase and must be configured by the buyer.
Customer Website, Driver Application, and Admin Panel — all included.
Welcome to GoCabz, a white-label taxi booking platform designed for fleet owners, taxi operators, and mobility service providers. It enables seamless ride booking, real-time driver tracking, and efficient trip management through a powerful admin panel.
This platform is distributed as a white-label solution, allowing complete customization of branding, configurations, and backend services to match your business requirements and scale your taxi operations efficiently.
Basic understanding of React-based website development and backend setup (Laravel / API) is recommended before installation and customization.
GoCabz integrates with several third-party services to provide functionality such as maps, push notifications, real-time chat, authentication, and payment processing. These services are not included with the purchase package and must be configured using your own accounts and credentials where applicable.
| Service | Purpose | Required |
|---|---|---|
| RouteMappy Maps | Maps, Live Route Tracking, Geocoding & Location Services | Yes |
| Firebase Cloud Messaging (FCM) | Push Notifications for Drivers & Customers | Yes |
| Firebase Realtime Database / Firestore | In-App Chat Between Customers & Drivers | Yes |
| Firebase Authentication | User Authentication & OTP Verification | Optional |
| SMTP Mail Service | Email Notifications, Password Reset & Verification | Yes |
| Twilio SMS | SMS Notifications & OTP Delivery | Optional |
| Razorpay | Online Payment Processing | Optional |
| Flutterwave | Online Payment Processing | Optional |
| Paystack | Online Payment Processing | Optional |
GoCabz utilizes RouteMappy as its mapping and location service provider. RouteMappy offers customizable mapping capabilities including route calculation, address search, navigation support, service area management, and location-based functionality.
If you require RouteMappy Maps for your application, please contact the RouteMappy team directly.
API keys, payment gateway accounts, SMS credits, email service providers, hosting services, domain registration, SSL certificates, and RouteMappy subscriptions or licensing fees are not included with the purchase package. Buyers are responsible for creating and maintaining their own third-party service accounts and subscriptions where applicable.
Ensure the following software versions are installed before proceeding:
| Tool/Software | Minimum Version | Recommended Version | Purpose |
|---|---|---|---|
| Node.js | v18.x LTS | v20.x LTS | React & npm scripts |
| npm | v8.x | v10.x or later | Package management |
| Git | 2.30 | Latest | Version control (optional) |
| VS Code | 1.80 | Latest | Code editor (recommended) |
| Web Browser | Chrome 120, Firefox 120, Edge 120 | Latest version | Testing & debugging |
| PHP | 8.2 | 8.3 or later | Laravel backend |
| Composer | 2.5 | 2.7 or later | PHP dependency manager |
| MySQL | 5.7 | 8.0 or later | Database |
| Android Studio | 2023.1 | 2024.1 (Ladybug) | Android APK/AAB build |
| Java JDK | 11 | 17 or later (JDK 21 recommended) | Android compilation |
| Gradle | 8.3 | 8.3 or later | Android build system |
| Xcode (macOS only) | 15.0 | 16.x or later | iOS IPA build |
| CocoaPods | 1.12 | 1.15.x or later | iOS dependencies |
http://localhost in your browserNote: It's necessary to have a basic knowledge in both server side and mobile app development.
Run these commands in your terminal/command prompt to confirm all required tools are properly installed:
# Check Node.js version
node --version # Should show v20.x or higher
# Check npm version
npm --version # Should show v10.x or higher
# Check PHP version
php --version # Should show 8.2 or higher
# Check Composer version
composer --version # Should show 2.5 or higher
# Check MySQL version
mysql --version # Should show 8.0 or higher
# Check Java version (for Android)
java --version # Should show 17 or higher
If all commands show the correct versions (or higher), your environment is ready for installation.
If any command returns "not found" or shows an older version, please install or update the corresponding software before proceeding.
GoCabz is built using modern and scalable technologies to power Customer Websites, driver applications, and administrative operations.
Before installing and running the application, ensure the following technologies and tools are installed with the recommended versions.
| Category | Technology | Version | Purpose |
|---|---|---|---|
| Frontend (Customer Website & Admin Panel) | |||
| Framework | React | 19.2.8 | UI Library |
| Routing | React Router DOM | 7.18.1 | Page navigation |
| JavaScript Library | Alpine.js | 3.15.12 | Interactive UI Components |
| Alpine.js Plugin | @alpinejs/intersect | 3.15.12 | Intersection Observer Plugin |
| Alpine.js Plugin | @alpinejs/morph | 3.15.12 | Morphing Plugin |
| Map Library | MapLibre GL | 4.7.1 | Map Rendering & Location Services |
| Backend (Admin Panel & API) | |||
| Language | PHP | 8.3+ | Server-Side Programming |
| Framework | Laravel | 13.x | PHP Framework |
| Admin Panel | Filament | 5.6 | Admin Dashboard |
| Admin Security | Filament Shield | 4.2 | Admin Panel Security & Permissions |
| Role & Permission | Spatie Laravel Permission | 7.4 | User Roles & Permissions Management |
| Firebase SDK | Kreait Firebase PHP | 8.2 | Firebase Services Integration |
| Database | MySQL / MariaDB | 8.0+ / 10.6+ | Relational Database |
| Dependency Manager | Composer | 2.5+ | PHP Package Management |
| Interactive Shell | Laravel Tinker | 3.0 | Artisan REPL & Interactive Shell |
| Mobile App (Driver) | |||
| Framework | React Native | 0.74.x | Cross-platform mobile |
| UI Library | React | 19.2.8 | Application User Interface |
| Navigation | React Navigation | 6.x | Screen navigation |
| Maps | MapLibre GL | 4.7.1 | Map rendering |
| State Management | Redux Toolkit | Latest | Application State Management |
| HTTP Client | Axios | Latest | API Communication |
| JavaScript Engine | Hermes | Latest | Performance Optimization |
| Android Development Environment | |||
| Node.js | Node.js | 20+ | JavaScript Runtime |
| Android SDK | Android SDK | 34+ | Android Development Platform |
| Build Tools | Android Build Tools | 34.0.0+ | Application Compilation |
| Minimum SDK | Android SDK | 24 | Minimum Supported Android Version |
| Target SDK | Android SDK | 34 | Target Android Version |
| Gradle | Gradle | 8.3+ | Build Automation |
| Java | JDK | 17+ | Android Development Environment |
| iOS Development Environment | |||
| iOS Deployment Target | iOS | 13+ | Minimum Supported iOS Version |
| Xcode | Xcode | 16.x+ | iOS Development Environment |
| CocoaPods | CocoaPods | 1.15.x+ | iOS Dependency Management |
| Third-Party Integrations | |||
| Push Notifications | Firebase Cloud Messaging | Latest | Real-Time Notifications |
| Authentication | Firebase Authentication | Latest | OTP Verification |
| Storage | Firebase Storage | Latest | Image & Document Uploads |
| Payment Gateway | Razorpay / Flutterwave / Paystack | Latest | Online Payment Processing |
| Maps & Location | RouteMappy / MapLibre | Latest | Location Services & Navigation |
| Address Search | Google Places API | Latest | Location autocomplete |
| SMS Gateway | Twilio SDK | Latest | SMS & OTP Services |
| Analytics | Google Analytics / Firebase Analytics | Latest | Usage Tracking & Insights |
This platform integrates with services like RouteMappy, Firebase, Twilio, and Razorpay/Paystack/Flutterwave which require separate accounts and may incur additional costs. See full details in Overview →
Install all required SDKs, development tools, and dependencies using the recommended versions before beginning the installation process. Version mismatches may result in build or runtime issues.
Pro Tip: Use Node Version Manager (NVM) for managing Node.js versions and Android Studio SDK Manager for maintaining Android SDK compatibility.
GoCabz consists of three main components:
React-based frontend with MapLibre
React Native mobile app
Laravel + Filament backend
Customer Website: React 19.2.8 with React Router 7.18.1, Alpine.js 3.15.12, MapLibre GL 4.7.1
Driver Application: React Native 0.85.3 with React 19.2.3
Admin Panel: Laravel 13.x with Filament 5.6, PHP 8.3+
The customer website is built with React and uses the following dependencies:
| Package | Version | Purpose |
|---|---|---|
| react | 19.2.8 | UI Library |
| react-dom | 19.2.8 | React DOM rendering |
| react-router-dom | 7.18.1 | Client-side routing |
| alpinejs | 3.15.12 | Interactive UI components |
| @alpinejs/intersect | 3.15.12 | Intersection Observer plugin |
| @alpinejs/morph | 3.15.12 | Morphing plugin for Alpine.js |
| maplibre-gl | 4.7.1 | Map rendering and location services |
The admin panel is built with Laravel and Filament, using the following PHP dependencies:
| Package | Version | Purpose |
|---|---|---|
| Production Dependencies | ||
| php | ^8.3 | Server-side scripting language |
| laravel/framework | ^13.0 | Laravel PHP Framework |
| filament/filament | ^5.6 | Admin panel framework |
| bezhansalleh/filament-shield | ^4.2 | Filament security & permissions |
| spatie/laravel-permission | ^7.4 | User roles & permissions |
| kreait/firebase-php | ^8.2 | Firebase SDK integration |
| laravel/tinker | ^3.0 | Artisan REPL & interactive shell |
| Development Dependencies | ||
| fakerphp/faker | ^1.23 | Fake data generation |
| laravel/pail | ^1.2.5 | Log viewer |
| laravel/pao | ^1.0.6 | Package auto-discovery optimizer |
| laravel/pint | ^1.27 | PHP code style fixer |
| mockery/mockery | ^1.6 | Mocking framework for tests |
| nunomaduro/collision | ^8.6 | Error handling for console |
| phpunit/phpunit | ^12.5.12 | PHP testing framework |
The driver application is built with React Native and uses the following dependencies:
| Package | Version | Purpose |
|---|---|---|
| Core Libraries | ||
| react | 19.2.3 | UI Library |
| react-native | 0.85.3 | Cross-platform mobile framework |
| react-native-gesture-handler | ^2.31.2 | Gesture-based interactions |
| react-native-reanimated | ^4.3.1 | Smooth animations |
| react-native-safe-area-context | ^5.5.2 | Safe area handling |
| react-native-screens | ^4.24.0 | Native screen optimization |
| axios | ^1.16.0 | HTTP client for API calls |
| moment | ^2.30.1 | Date and time formatting |
| moment-hijri | ^3.0.0 | Hijri calendar support |
| i18next | ^26.0.10 | Internationalization |
| react-i18next | ^17.0.7 | React i18next integration |
| react-native-worklets | ^0.11.3 | Worklets for React Native |
| State Management | ||
| react-redux | ^9.2.0 | State management |
| redux | ^5.0.1 | State container |
| Navigation | ||
| @react-navigation/native | ^7.2.4 | Core navigation library |
| @react-navigation/native-stack | ^7.14.14 | Stack navigation |
| @react-navigation/bottom-tabs | ^7.15.13 | Bottom tab navigation |
| @react-navigation/drawer | ^7.9.11 | Drawer/side menu navigation |
| @react-navigation/stack | ^7.8.13 | Stack navigation |
| Maps and Location | ||
| @maplibre/maplibre-react-native | ^10.4.1 | Map rendering |
| react-native-maps | ^1.27.2 | Alternative map rendering |
| @react-native-community/geolocation | ^3.4.0 | GPS location services |
| react-native-android-location-enabler | ^3.0.1 | Android location services |
| react-native-google-places-autocomplete | ^2.6.4 | Google Places autocomplete |
| Firebase Services | ||
| @react-native-firebase/app | ^24.0.0 | Firebase core |
| @react-native-firebase/database | ^24.0.0 | Real-time database |
| @react-native-firebase/messaging | ^24.0.0 | Push notifications |
| @notifee/react-native | ^9.1.8 | Enhanced notification management |
| UI and Animation | ||
| lottie-react-native | ^7.3.6 | Animated illustrations |
| react-native-paper | ^5.15.2 | Material Design components |
| react-native-vector-icons | ^10.3.0 | Icon library |
| react-native-svg | ^15.15.4 | SVG rendering |
| react-native-drop-shadow | ^1.0.3 | Drop shadow effects |
| react-native-animatable | ^1.4.0 | Animation components |
| react-native-calendars | ^1.1314.0 | Calendar component |
| react-native-ratings | ^8.1.0 | Star rating component |
| react-native-pager-view | ^8.0.1 | Pager/swipe view |
| react-native-raw-bottom-sheet | ^3.0.0 | Bottom sheet component |
| react-native-simple-bottom-sheet | ^1.0.4 | Simple bottom sheet component |
| react-native-toast-message | ^2.3.3 | Toast notification messages |
| react-native-dropdownalert | ^5.2.0 | Alert dropdown notifications |
| Device Features | ||
| @react-native-async-storage/async-storage | ^2.2.0 | Local data persistence |
| @react-native-clipboard/clipboard | ^1.16.3 | Clipboard management |
| @react-native-community/datetimepicker | ^9.1.0 | Date/time picker component |
| @react-native-community/netinfo | ^12.0.1 | Network connectivity monitoring |
| @react-native-picker/picker | ^2.11.4 | Native picker component |
| @react-native-segmented-control/segmented-control | ^2.5.7 | Segmented control component |
| @react-native/new-app-screen | 0.85.3 | New app screen template |
| react-native-background-timer | ^2.4.1 | Background timer functionality |
| react-native-countdown-circle-timer | ^3.2.1 | Countdown timer visualization |
| react-native-device-info | ^15.0.2 | Device information |
| react-native-dialog | ^9.3.0 | Dialog/modal components |
| react-native-dialog-input | ^1.0.8 | Dialog with input fields |
| react-native-fs | ^2.20.0 | File system access |
| react-native-get-random-values | ^2.0.0 | Cryptographic random values |
| react-native-haptic-feedback | ^3.0.0 | Device vibration/haptic feedback |
| react-native-image-picker | ^8.2.1 | Image selection from camera/gallery |
| react-native-keyboard-controller | ^1.21.7 | Keyboard management |
| react-native-modal-datetime-picker | ^18.0.0 | Modal date/time picker |
| react-native-permissions | ^5.5.1 | Runtime permissions management |
| react-native-phone-input | ^1.3.7 | Phone number input with country codes |
| react-native-restart | ^0.0.27 | App restart functionality |
| react-native-signature-canvas | ^5.0.2 | Digital signature capture |
| react-native-sound | ^0.13.0 | Audio playback |
| react-native-version-number | ^0.3.6 | App version information |
| react-native-video | ^6.19.2 | Video playback |
| react-native-video-controls | ^2.8.1 | Video controls |
| react-native-webview | ^13.16.1 | Web content rendering |
| rn-fetch-blob | ^0.12.0 | File and blob handling |
| Chat & Messaging | ||
| react-native-gifted-chat | ^3.3.2 | Chat/messaging interface |
| Payment Integration | ||
| react-native-razorpay | ^3.0.0 | Razorpay payment gateway |
| flutterwave-react-native | ^1.0.4 | Flutterwave payment gateway |
The GoCabz Admin Panel provides complete control over the platform. Below is the detailed menu structure and functionality.
| Menu Section | Sub-Menu Items | Functionality |
|---|---|---|
| Dashboard | ||
| Dashboard | - | View business overview, revenue, trips, customers, and drivers |
| App Details | - | View and manage application details and information |
| Features | - | Manage platform features and highlights |
| Our Achievements | - | Manage achievements and milestones |
| Website Settings | - | Configure website settings and preferences |
| Customer Management | ||
| Customers | - | Manage customer accounts, profiles, and details |
| Customer Favourites | - | View customer favourite drivers and vehicles |
| Customer Wallet Histories | - | View all customer wallet transactions and history |
| Driver Management | ||
| Drivers | - | Manage driver profiles, vehicles, and status |
| Driver Vehicles | - | Manage driver vehicle details and documents |
| Driver Tutorial | - | Manage driver training and tutorial content |
| Driver Bank Details | - | View and manage driver bank account information |
| Driver Recharge | - | Manage driver wallet recharge transactions |
| Driver Earnings | - | View driver earnings and commissions |
| Driver Withdrawal | - | Manage driver withdrawal requests and payouts |
| Driver Wallet History | - | View all driver wallet transactions and history |
| Trip Management | ||
| Trips | - | View and manage all trips |
| Trip Type | Daily, Rental, Outstation | Manage trip types and configurations |
| Trip Request | - | View and manage all trip requests |
| Driver Trip Request | - | View driver-specific trip requests and responses |
| Vehicle Categories | - | Manage vehicle categories and sub-categories |
| Trip Request Status | - | Manage trip request statuses and workflows |
| Vehicle Slugs | - | Manage vehicle slugs for SEO and URLs |
| Booking Status | - | Manage booking statuses and tracking |
| Payment Management | ||
| Payment Methods | Razorpay, Flutterwave, Paystack | Configure payment gateway credentials and settings |
| Payment Type | Internal, External | Manage accepted payment types |
| Payment History | - | View all payment transactions and history |
| Location Management | ||
| Zones | - | Create and manage service zones and operating areas |
| Fare Management | ||
| Packages | - | Manage fare packages and pricing plans |
| Daily Fare | - | Configure daily trip fare settings |
| Rental Fare | - | Configure rental trip fare settings |
| Outstation Fare | - | Configure outstation trip fare settings |
| Setting Group | ||
| App Settings | - | Configure company details, email, SMS, notifications, currency, language, timezone, and general application settings |
| App Versions | - | Manage application versions and updates |
| Contact Settings | - | Configure contact preferences and support settings |
| Notification Messages | - | Manage notification templates and messages |
| Referral Settings | - | Configure referral program settings and rewards |
| Trip Settings | - | Configure trip-related settings and preferences |
| User Types | - | Manage user types and classifications |
| Users | - | Manage all platform users |
| Map Settings | - | Configure RouteMappy API, map provider, routing, geocoding, and reverse geocoding |
| Contact Group | ||
| Blogs | - | Create and manage blog posts and articles |
| FAQs | - | Manage frequently asked questions |
| How It Works | - | Manage "How It Works" content and steps |
| Privacy Policies | - | Manage privacy policy content |
| Terms and Conditions | - | Manage platform terms and conditions |
| Testimonials | - | Manage customer and driver testimonials |
| Complaint Management | ||
| Complaint | - | Manage customer and driver complaints |
| Complaint Categories | - | Manage complaint categories |
| Complaint Sub Categories | - | Manage complaint sub-categories |
| Filament Shield | ||
| Roles | Super Admin, Admin, Moderator, Content Manager | Create roles and assign permissions |
| Management Group | ||
| Promo Codes | - | Create and manage promo codes, coupons, offers, and discount campaigns |
| Tax Lists | - | Configure GST, VAT, service taxes, and tax rules |
| Cancellation Reasons | - | Manage cancellation reason codes and descriptions |
| Statuses | - | Manage various system statuses (Trip, Booking, Payment) |
| Promo Types | - | Manage promotion types and categories |
http://yourdomain.com/admin
Default Credentials: admin / admin
The Android build configuration defines the SDK versions, build tools, and other essential parameters required for compiling the application.
File Location: android/build.gradle
| Configuration | Value |
|---|---|
| Build Tools Version | 36.0.0 |
| Minimum SDK Version | 24 |
| Compile SDK Version | 36 |
| Target SDK Version | 36 |
| Android NDK Version | 27.1.12297006 |
| Kotlin Version | 2.1.20 |
buildToolsVersion = "36.0.0"
minSdkVersion = 24
compileSdkVersion = 36
targetSdkVersion = 36
ndkVersion = "27.1.12297006"
kotlinVersion = "2.1.20"
Gradle properties control the build performance, memory allocation, and Android compatibility settings.
File Location: android/gradle.properties
org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=3g -Dfile.encoding=UTF-8
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
android.useAndroidX=true
reactNativeArchitectures=arm64-v8a
newArchEnabled=true
hermesEnabled=true
edgeToEdgeEnabled=false
| Property | Value | Description |
|---|---|---|
| org.gradle.jvmargs | -Xmx8g -XX:MaxMetaspaceSize=3g -Dfile.encoding=UTF-8 | JVM memory allocation for Gradle builds |
| org.gradle.daemon | true | Enables Gradle daemon for faster builds |
| org.gradle.parallel | true | Enables parallel execution of tasks |
| org.gradle.caching | true | Enables build caching for faster builds |
| android.useAndroidX | true | Enables AndroidX support libraries |
| reactNativeArchitectures | arm64-v8a | Target architecture for React Native |
| newArchEnabled | true | Enables React Native New Architecture |
| hermesEnabled | true | Enables Hermes JavaScript engine |
| edgeToEdgeEnabled | false | Disables edge-to-edge display mode |
File Location: android/build.gradle
classpath("com.android.tools.build:gradle:8.7.2")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
classpath("com.google.gms:google-services:4.4.2")
newArchEnabled=true)This admin panel requires PHP 8.3. Please ensure you have the correct version installed before proceeding.
php --version # Should show PHP 8.3.x
The React website is located inside the admin project folder:
GoCabz/
├── app/
│ ├── Http/
│ │ └── Controllers/ ← API Controllers
│ ├── Models/ ← Eloquent Models
│ ├── Filament/
│ │ ├── Pages/ ← Filament Admin Pages
│ │ └── Resources/ ← Filament Resources
│ └── Providers/ ← Service Providers
├── bootstrap/
├── config/ ← Configuration Files
├── database/
│ ├── migrations/ ← Database Migrations
│ └── seeders/ ← Database Seeders
├── public/
│ ├── style.json ← Map Style Configuration
│ ├── pois/ ← Map POI Images
│ ├── js/
│ │ └── Layers.js ← Map Layers Configuration
│ └── storage/
├── resources/
│ ├── css/
│ │ └── app.css
│ ├── js/ ← React Frontend
│ │ ├── main.jsx ← Entry Point
│ │ ├── App.jsx ← Router + Providers
│ │ ├── pois.js ← Map POI Image Loader
│ │ ├── context/
│ │ │ ├── AuthContext.jsx ← Login, Register, Profile
│ │ │ └── BookingContext.jsx← Pickup/Drop, Vehicles, Booking
│ │ ├── hooks/
│ │ │ ├── useApi.js ← API Wrapper
│ │ │ ├── useGeolocation.js ← GPS + Reverse Geocode
│ │ │ └── useTripPolling.js ← Driver Search + Trip Status
│ │ ├── components/
│ │ │ ├── Layout.jsx ← Header + Footer + Outlet
│ │ │ ├── Header.jsx ← Responsive Nav
│ │ │ ├── Footer.jsx ← Site Footer
│ │ │ ├── MapView.jsx ← MapLibre GL Map
│ │ │ ├── VehicleCard.jsx ← Vehicle Selection
│ │ │ ├── PackageCard.jsx ← Rental Package
│ │ │ ├── PromoPicker.jsx ← Promo Code Modal
│ │ │ └── PaymentSelector.jsx← Payment Methods
│ │ ├── pages/
│ │ │ ├── Home.jsx ← Hero + Booking Form
│ │ │ ├── Trip.jsx ← Map + Vehicle Selection
│ │ │ ├── Create.jsx ← Checkout (3 States)
│ │ │ ├── Searching.jsx ← Driver Searching Animation
│ │ │ ├── Accepted.jsx ← Driver Info + OTP
│ │ │ ├── Login.jsx ← Email/Password Login
│ │ │ ├── Register.jsx ← Registration
│ │ │ ├── ForgotPassword.jsx← 3-Step Reset
│ │ │ ├── Dashboard.jsx ← Sidebar + 10 Sub-tabs
│ │ │ ├── MyTrips.jsx ← Trip History + Filters
│ │ │ ├── Faq.jsx ← Accordion FAQ
│ │ │ ├── PrivacyPolicy.jsx ← Privacy Content
│ │ │ └── TermsConditions.jsx← Terms Content
│ │ └── services/
│ │ └── api.js ← API Helpers
│ └── views/
│ ├── app.blade.php ← Blade Shell
│ ├── welcome.blade.php
│ ├── filament/
│ │ └── pages/
│ └── mail_templates/
├── routes/
│ ├── web.php ← Web Routes
│ ├── api.php ← API Routes
│ └── console.php
├── storage/
├── tests/
├── vendor/
├── .env ← Environment Configuration
├── .env.example
├── artisan
├── composer.json
├── composer.lock
└── README.md
Set up the Laravel backend and Filament admin panel
Extract the downloaded source files to your working directory.
Copy the admin folder and paste it inside XAMPP → htdocs.
Rename your project folder (e.g., GoCabz_admin).
Navigate to your project folder:
cd C:\xampp\htdocs\GoCabz_admin
Run the following command to install all PHP dependencies:
composer install
When finished, verify the vendor folder
has been created in your project.
Follow these steps in phpMyAdmin:
http://localhost/phpmyadmin
in your browserGoCabz_admin)
Import the SQL file located at database/GoCabz_admin.sql
using phpMyAdmin:
GoCabz_admin.sql
file from your projectRun the following command to generate a unique application key:
php artisan key:generate
If .env file is not
visible, enable "show hidden files" in your system settings. Update the .env file in
your project root with the following settings:
APP_URL=http://localhost:8000
APP_ASSET_URL=http://localhost:8000/storage
APP_ENV=local
APP_DEBUG=true
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=GoCabz_admin
DB_USERNAME=root
DB_PASSWORD=
TWILIO_SID=your_twilio_sid
TWILIO_TOKEN=your_twilio_token
TWILIO_FROM=your_twilio_number
RAZORPAY_KEY=your_razorpay_key
RAZORPAY_SECRET=your_razorpay_secret
Firebase is required for push notifications, real-time database features, and other Firebase services. Before using the application, configure your own Firebase project.
your-app-name-firebase-adminsdk.json).
Copy the downloaded Firebase JSON file into the following directory:
config/your-app-name.json
FIREBASE_FILE=your-app-name.json
FIREBASE_DB=https://your-project.firebaseio.com
FCM_SERVER_KEY=your_fcm_server_key
FCM_SENDER_ID=your_fcm_sender_id
Firebase Connected
Once the JSON file is uploaded and the .env
values are updated,
the application will automatically connect to your Firebase project.
Security Notice
Never share your Firebase Service Account JSON file or upload it to a public Git repository. This file contains sensitive credentials with administrative access to your Firebase project.
Important: Replace all placeholder values with your actual credentials before running the application.
Run the following command to create the database tables:
php artisan migrate
Run the following command to seed the database with default data:
php artisan db:seed --force
--force flag
is used to run the seeder in production environments. For local development, you can
omit it.
Run the following command to generate all Shield permissions:
php artisan shield:generate --all --option=permissions --panel=admin
After generating permissions, run this command to assign the super admin role to your admin user:
php artisan tinker --execute="
$role = DB::table('roles')->where('name','super_admin')->first();
$perms = DB::table('permissions')->pluck('id')->toArray();
$rows = array_map(fn($id) => ['permission_id'=>$id,'role_id'=>$role->id], $perms);
DB::table('role_has_permissions')->insertOrIgnore($rows);
DB::table('model_has_roles')->insertOrIgnore(['role_id'=>1,'model_type'=>'App\\Models\\User','model_id'=>1]);
echo 'Done: Admin assigned to super_admin role';
"
Run the following command to optimize the application for production:
php artisan optimize
Set up the React frontend website located inside the admin project
Create a .env file in the
website folder
and add the following configurations:
# API Configuration (Points to the admin backend)
APP_NAME=GoCabz
APP_ENV=local
APP_KEY=base64:5bU0VTReojFUiriVbqrmY0GH5y2F42OZex7X4luPm/k=
APP_DEBUG=true
APP_URL=ENTER_YOUR_APP_URL
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database
# PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ENTER_YOUR_DATABASE_NAME
DB_USERNAME=ENTER_YOUR_USERNAME
DB_PASSWORD=ENTER_YOUR_PASSWORD
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
CACHE_STORE=file
# CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_SCHEME=null
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=ENTER_YOUR_MAIL_USERNAME
MAIL_PASSWORD=ENTER_YOUR_MAIL_PASSWORD
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=ENTER_YOUR_MAIL_FROM_ADDRESS
MAIL_FROM_NAME="${APP_NAME}"
RAZORPAY_KEY=ENTER_YOUR_RAZORPAY_KEY
FLUTTERWAVE_PUBLIC_KEY=ENTER_YOUR_FLUTTERWAVE_PUBLIC_KEY
PAYSTACK_PUBLIC_KEY=ENTER_YOUR_PAYSTACK_PUBLIC_KEY
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
VITE_APP_NAME="${APP_NAME}"
FIREBASE_FILE=ENTER_YOUR_FIREBASE_FILE
FIREBASE_DB= ENTER_YOUR_FIREBASE_DB
FILESYSTEM_DISK=public
MODE=DEMO
VITE_ROUTEMAPPY_API_URL=ENTER_YOUR_VITE_ROUTEMAPPY_API_URL
VITE_ROUTEMAPPY_MAP_KEY=ENTER_YOUR_VITE_ROUTEMAPPY_MAP_KEY
.env
file before running the application.APP_URL
to your application's domain or local URL..env
file, run php artisan optimize:clear
followed by php artisan optimize.
In a separate terminal, navigate to the admin project root and serve the Laravel backend:
php artisan serve
The Laravel backend runs at http://localhost:8000
admin@gmail.com
admin
Run these commands in sequence to set up both admin panel and website:
# Navigate to admin project
cd C:\xampp\htdocs\GoCabz_admin
# Install PHP dependencies
composer install
# Generate application key
php artisan key:generate
# Run migrations
php artisan migrate
# Seed the database
php artisan db:seed --force
# Generate Shield permissions
php artisan shield:generate --all --option=permissions --panel=admin
# Optimize the application
php artisan optimize
# Start Laravel server (in one terminal)
php artisan serve
# Navigate to website folder
# Create .env file with configurations
# (Copy .env.example to .env and update values)
Use these default credentials to log in to the admin panel:
| Email: | admin@gmail.com |
| Password: | admin |
| Access Level: | Super Administrator |
Security Alert: Change these credentials immediately after first login.
If the application is not working correctly, verify:
.env
file exists in the project root.APP_URL
points to your application URL.php artisan optimize:clear
after modifying the .env file.
Verify the following:
.env file
are correct.php artisan migrate
if the tables have not been created.If uploaded images or files are not displayed:
php artisan storage:link.
storage
directory has write permission.php artisan optimize:clear.
If push notifications are not working:
.env file
are correct.If recent changes are not reflected:
php artisan optimize:clear.
php artisan optimize.
php artisan serve.
Hero Section on Website
Go to: Dashboard → Website Settings
| Field | Description | Action |
|---|---|---|
| Title | Website title/brand name | Edit |
| Playstore Link | Google Play Store app link | Edit |
| Appstore Link | Apple App Store app link | Edit |
| Store Image | App store download images | Add | Edit |
| Store Title | App store section title | Edit |
| Contact Link | Contact page URL | Edit |
| Website Color | Primary theme color (Hex code) - Changes entire website color scheme | Edit |
| Facebook Link | Facebook page URL | Edit |
| Twitter Link | Twitter/X profile URL | Edit |
| LinkedIn Link | LinkedIn company URL | Edit |
| Skype Link | Skype contact URL | Edit |
The "Website Color"
field accepts Hex color codes (e.g., #4032ae).
This color will be applied to:
Mobile App Section on Website
Go to: Dashboard → App Details
| Field | Description | Action |
|---|---|---|
| Title | Mobile app section title | Edit |
| Image | Mobile app showcase image | Add | Edit |
Safety Section on Website
Go to: Dashboard → Features
| Field | Description | Action |
|---|---|---|
| Title | Feature title (e.g., "Safe Rides") | Add | Edit |
| Image | Feature icon/image | Add | Edit |
Achievements Counter Section
Go to: Dashboard → Our Achievements
| Field | Description | Action |
|---|---|---|
| Count | Achievement number (e.g., 1000+) | Add | Edit |
| Title | Achievement label (e.g., "Happy Customers") | Add | Edit |
Trip Types displayed in Hero Section
Go to: Trips → Trip Type
| Field | Description | Action |
|---|---|---|
| Active Icon | Icon when trip type is active | Add | Edit |
| Inactive Icon | Icon when trip type is inactive | Add | Edit |
| Name | Trip type name (Daily, Rental, Outstation) | Add | Edit |
| Vehicle Mode | Vehicle mode for this trip type | Add | Edit |
| Status | Active/Inactive status | Toggle |
Rental Packages in Hero Section
Go to: Fare Management → Packages
| Field | Description | Action |
|---|---|---|
| Name | Package name (e.g., "Economy") | Add | Edit |
| Hours | Duration in hours | Add | Edit |
| KM | Kilometers included | Add | Edit |
| Price | Package price | Add | Edit |
| Extra KM | Additional KM charges | Add | Edit |
| Extra Hour | Additional hour charges | Add | Edit |
| Status | Active/Inactive status | Toggle |
Vehicle Categories on Website
Go to: Trips → Vehicle Categories
| Field | Description | Action |
|---|---|---|
| Vehicle Type | Type of vehicle (Sedan, SUV, Hatchback) | Add | Edit |
| Title | Display title | Add | Edit |
| Icon | Vehicle icon | Add | Edit |
| Vehicle Mode | Vehicle mode | Add | Edit |
| Status | Active/Inactive status | Toggle |
Vehicle Selection in Trip Details
Go to: Trips → Vehicle Categories
Same fields as Vehicle Categories above:
Apply Promo in Trip Details
Go to: Management Group → Promo Codes
| Field | Description | Action |
|---|---|---|
| Customer | Customer ID or "All" for everyone | Add | Edit |
| Promo Name | Promotion name | Add | Edit |
| Promo Code | Discount code (e.g., "SAVE50") | Add | Edit |
| Promo Type | Type of promotion | Add | Edit |
| Discount | Discount amount/percentage | Add | Edit |
| Redemptions | Usage limit (max uses) | Add | Edit |
| Status | Active/Inactive status | Toggle |
Payment Methods on Website
Go to: Payment → Payment Methods
| Field | Description | Action |
|---|---|---|
| Name | Payment method name (e.g., "Razorpay") | Add | Edit |
| Icon | Payment method icon | Add | Edit |
| Type | Internal or External | Add | Edit |
| Status | Active/Inactive status | Toggle |
Go to: Fare Management → [Daily / Rental / Outstation] Fare
| Field | Description | Action |
|---|---|---|
| Vehicle Type | Select vehicle category | Dropdown |
| Zone | Service zone | Dropdown |
| Base Fare | Minimum fare | Add | Edit |
| Base KM | Base distance included | Add | Edit |
| Price Per Km | Rate per kilometer | Add | Edit |
| Status | Active/Inactive status | Toggle |
| Field | Description | Action |
|---|---|---|
| Vehicle | Select vehicle category | Dropdown |
| Package | Select rental package | Dropdown |
| Price | Package price | Add | Edit |
| Per KM | Additional KM charges | Add | Edit |
| Per Hour | Additional hour charges | Add | Edit |
| Status | Active/Inactive status | Toggle |
| Field | Description | Action |
|---|---|---|
| Vehicle | Select vehicle category | Dropdown |
| Trip Type | One way or Round trip | Dropdown |
| Base Fare | Minimum fare | Add | Edit |
| Per KM | Rate per kilometer | Add | Edit |
| Allowance | Distance allowance | Add | Edit |
| Status | Active/Inactive status | Toggle |
Testimonials Section
Go to: Contact Group → Testimonials
| Field | Description | Action |
|---|---|---|
| Name | Customer/Driver name | Add | Edit |
| Avatar | Profile image | Add | Edit |
| Comments | Testimonial text | Add | Edit |
| Role | Customer or Driver | Add | Edit |
Footer Section
Go to: Setting Group → Contact Settings
| Field | Description | Action |
|---|---|---|
| Phone Number | Contact phone number | Edit |
| Contact email address | Edit | |
| Address | Physical address | Edit |
Go to: Contact Group → [Section]
| Field | Description | Action |
|---|---|---|
| Question | Frequently asked question | Add | Edit |
| Answer | Answer to the question | Add | Edit |
| Field | Description | Action |
|---|---|---|
| Title | Step title | Add | Edit |
| Description | Step description | Add | Edit |
| Icon | Step icon | Add | Edit |
| Status | Active/Inactive status | Toggle |
| Field | Description | Action |
|---|---|---|
| User Type | Customer or Driver | Add | Edit |
| Title | Policy title | Add | Edit |
| Status | Published/Draft status | Toggle |
| Field | Description | Action |
|---|---|---|
| Title | Terms section title | Add | Edit |
| Description | Terms content | Add | Edit |
#4032ae, #ff6b35, #00b894)Pro Tip: Use tools like Coolors or Color Hunt to find the perfect color combination for your brand.
| # | Website Section | Admin Panel Location | Actions |
|---|---|---|---|
| 1 | Hero Section & Branding | Dashboard → Website Settings | Add | Edit |
| 🎨 | Theme Color | Dashboard → Website Settings → Website Color | Edit (Hex Code) |
| 2 | Mobile App Section | Dashboard → App Details | Edit |
| 3 | Safety Features | Dashboard → Features | Add | Edit | Delete |
| 4 | Achievements Counter | Dashboard → Our Achievements | Add | Edit | Delete |
| 5 | Trip Types (Hero) | Trips → Trip Type | Add | Edit | Delete |
| 6 | Rental Packages (Hero) | Fare Management → Packages | Add | Edit | Delete |
| 7 | Vehicle Categories | Trips → Vehicle Categories | Add | Edit | Delete |
| 8 | Vehicle Selection (Trip Details) | Trips → Vehicle Categories | Add | Edit | Delete |
| 9 | Promo Codes | Management Group → Promo Codes | Add | Edit | Delete |
| 10 | Payment Methods | Payment → Payment Methods | Add | Edit | Delete |
| 11 | Fare Settings | Fare Management → Daily/Rental/Outstation | Add | Edit | Delete |
| 12 | Testimonials | Contact Group → Testimonials | Add | Edit | Delete |
| 13 | Footer (Contact) | Setting Group → Contact Settings | Edit |
| 14 | FAQs, Policies | Contact Group | Add | Edit | Delete |
This guide explains how to install, configure and run the Driver application on both Android and iOS devices. Follow every step carefully before building the application.
Download and install Node.js from the official website.
https://nodejs.org/en/download# Verify Installation
node -v
npm -v
Download Android Studio from the official website.
https://developer.android.com/studio
Copy the Driver folder into your preferred location.
Note: If you rename the folder, remember to update the Bundle ID before building the application.
Open terminal inside the Driver application and run:
npm install
If you use Yarn, execute:
yarn install
Navigate into the iOS folder.
cd ios
pod install
Android
npx react-native run-android
iOS
npx react-native run-ios
The Driver application will launch on your connected device or emulator after the build completes successfully.
You can personalize the Driver application by changing the app name and launcher icon before publishing it to the Play Store or App Store.
For Android, open the following file:
folder_open Driver/android/app/src/main/res/values/strings.xml
<string name="app_name">Your App Name</string>
Replace Your App Name with the name you want to display
on the device home screen.
Open the following project in Xcode:
folder_open ios/DriverApp.xcodeproj
Replace the default launcher icons with your own branded icons.
android/app/src/main/res/mipmap-*.mipmap-anydpi-v26.Make sure all launcher icons follow Android and Apple size guidelines. Incorrect icon dimensions may cause build or submission errors.
Your application name and launcher icon have been successfully customized. Rebuild the application to see the updated branding.
Before publishing your application, update the package name (Android) and Bundle Identifier (iOS) so your application has a unique identity on Google Play and the App Store.
Open the following file:
folder_open Driver/android/app/build.gradle
android {
defaultConfig {
applicationId "com.yourcompany.yourapp"
}
}
build.gradleAndroidManifest.xmlOpen the following project:
folder_open ios/DriverApp.xcodeproj
Never use a package name that already exists on Google Play or App Store. Every published application must have a unique package name.
Important: If you change the package name after publishing your application, Google Play and Apple App Store will treat it as a completely new application.
After updating the package name and bundle identifier, clean the project and rebuild the application before generating a release build.
If you require additional features, UI changes, third-party integrations, new modules, or any other customization that is not included in the default package, our development team can help tailor the application to your business requirements.
For custom development requests, please contact our team using the details below.
Note: Custom development services are not included with the regular purchase. The implementation cost and delivery time depend on the complexity of the requested features.
This is the first official release of the GoCabz platform, introducing the core functionality required to operate a complete taxi booking and ride-hailing solution.
First stable release of the GoCabz Driver Application.
Drivers can register, log in securely, and manage their profiles.
Accept ride requests, navigate to pickup and destination locations, and complete trips efficiently.
View completed trips, earnings, and payment history directly from the driver application.
FIREBASE_CREDENTIALS=firebase.json
FIREBASE_DATABASE_URL=https://your-project-id.firebaseio.com
Place the JSON file in:
/admin/config/firebase.json
google-services.json fileGoCabz_customer/android/app
If you haven't created a Firebase project yet, follow the Admin Configuration steps above first.
Clients must update the bundle identifier to match their application package.
Example: com.clientname.GoCabz
Update in:
folder_open android/app/build.gradle
applicationId "com.clientname.GoCabz"
Rename the Java package directory:
folder_open android/app/src/main/java/com/clientname/GoCabz
keytool -genkey -v \
-keystore GoCabz.keystore \
-alias GoCabz \
-keyalg RSA \
-keysize 2048 \
-validity 10000
Place the keystore file inside:
folder_open android/app/
Update the signing configuration in:
folder_open android/gradle.properties
MYAPP_UPLOAD_STORE_FILE=GoCabz.keystore
MYAPP_UPLOAD_KEY_ALIAS=GoCabz
MYAPP_UPLOAD_STORE_PASSWORD=yourpassword
MYAPP_UPLOAD_KEY_PASSWORD=yourpassword
cd android
./gradlew assembleRelease
APK location:
android/app/build/outputs/apk/release/app-release.apk
cd android
./gradlew bundleRelease
Output: android/app/build/outputs/bundle/release/app-release.aab
iOS development requires a macOS system with Apple Xcode installed. Xcode provides all necessary tools, simulators, and SDKs required to build and run the application on iOS devices.
Ensure that you have the latest version of Xcode installed from the Mac App Store and have accepted all license agreements before proceeding.
The iOS project uses CocoaPods to manage native dependencies. You must install all required pods before running the application.
Follow the steps below:
cd ios
pod install
cd ..
This command installs all required native libraries and links them with your iOS project.
Firebase is used for push notifications and other backend services. You need to download and configure the Firebase iOS configuration file.
GoogleService-Info.plist
Place the downloaded file inside the following directory:
folder_open ios/GoCabz/GoogleService-Info.plist
GoogleService-Info.plist file into the Project Navigator.This configuration enables Firebase services such as push notifications and analytics.
The Bundle Identifier uniquely identifies your application in the Apple ecosystem. It must match the identifier configured in Firebase and Apple Developer account.
ios/GoCabz.xcworkspaceExample: com.clientname.taxiapp
Ensure that the Bundle Identifier matches exactly with the one used in the Firebase configuration file, otherwise services may not work correctly.
Application icons are used across the app, App Store, and device home screen. You need to replace the default icons with your branding assets.
folder_open ios/GoCabz/Images.xcassets/AppIcon.appiconset
Replace all icon sizes inside this folder with your custom icons while maintaining the required dimensions.
Replace the main logo used inside the application UI:
folder_open src/assets/logo.png
Recommended size: 500 × 500 PNG (transparent background preferred)
Before running the application, make sure the Metro bundler is running.
npm start
npx react-native run-ios
This command will build the app and launch it in the iOS Simulator. Alternatively, you can open the project in Xcode and run it directly on a simulator or a physical device.
To publish your application to the App Store, you must generate a release build using Xcode.
ios/GoCabz.xcworkspaceAfter uploading, you can manage your app release from App Store Connect.
Application API configuration is located in:
folder_open src/config/const.js
Update the following values with client server details:
export const BASE_URL = "https://api.clientdomain.com"
export const API_URL = "https://api.clientdomain.com/v1"
export const IMG_URL = "https://cdn.clientdomain.com"
Replace the logo file located at:
folder_open src/assets/logo.png
Recommended format: 500 × 500 PNG
Replace launcher icons in:
folder_open android/app/src/main/res/
Folders:
Replace icons in:
folder_open ios/GoCabz/Images.xcassets/AppIcon.appiconset
The application uses MapLibre for map rendering and location-based services.
These features enable the application to display driver locations, trip routes, and navigation paths within the app.
In the place of enter_map_key in your .env
file, add your RouteMappy API key as shown below:
MAP_KEY=enter_map_key
RouteMappy maps integration requires a valid API key. Please contact RouteMappy directly for licensing and pricing information:
Edit the following file:
folder_open GoCabz/src/config/Constants.js
export const ROUTEMAPPY_API_KEY = 'enter_your_routemappy_key';
RouteMappy maps integration requires a valid API key. Please contact RouteMappy directly for licensing and pricing information:
Payment credentials must be configured on the backend server to enable transaction processing.
Required credentials typically include:
These credentials are used by the backend API to securely communicate with the payment gateway.
Sensitive credentials such as secret keys must never be stored in the mobile application. All payment validation and transaction verification should be handled securely through the backend server.
This guide covers the modern Firebase Cloud Messaging v1 API. It uses OAuth 2.0 for secure authentication and provides more features than the deprecated legacy API.
Important
The legacy FCM HTTP API (using Server Keys) is deprecated and will be removed. Always use the Firebase Cloud Messaging HTTP v1 API for all new implementations.
Go to Firebase Console and select your project.
Navigate to Project Settings (gear icon) → Service accounts tab.
Click "Generate new private key" in the Firebase Admin SDK section.
Confirm by clicking "Generate key" in the popup.
A JSON file (your-project-id-firebase-adminsdk.json) will be
downloaded automatically. This file contains your service account credentials.
shield Security Keep this file secure. It contains sensitive credentials that provide full access to your Firebase services. Never commit this file to a public repository or share it with unauthorized users.
Copy the downloaded JSON file to your project's secure configuration directory:
Recommended Location:
/admin/config/firebase-service-account.json
Update your backend .env file with the following
configuration:
# Firebase Cloud Messaging v1 Configuration
FIREBASE_PROJECT_ID=your-project-id
FCM_DRIVE_PATH=/path/to/firebase-service-account.json
info
Note
The FCM_DRIVE_PATH points to your Firebase Service Account JSON file, and
FIREBASE_PROJECT_ID is your Firebase project identifier, which can be found in the
Firebase Console.
Here's a secure implementation example for sending push notifications using the FCM v1 API with OAuth 2.0 authentication:
// FCM v1 API Notification Sender
// Uses OAuth 2.0 authentication with service account
use Google\Cloud\Firestore\FirestoreClient;
use Google\Cloud\Core\ServiceBuilder;
// Initialize Firebase with service account
$firestore = new FirestoreClient([
'keyFilePath' => env('FCM_DRIVE_PATH'),
'projectId' => env('FIREBASE_PROJECT_ID')
]);
// Construct the FCM v1 endpoint
$url = "https://fcm.googleapis.com/v1/projects/" . env('FIREBASE_PROJECT_ID') . "/messages:send";
// Get OAuth 2.0 access token
$token = $firestore->getCredentialsFetcher()?->fetchAuthToken();
$accessToken = $token['access_token'];
// Construct the notification payload (v1 format)
$data = [
"message" => [
"token" => "device_registration_token_here",
"notification" => [
"title" => "Notification Title",
"body" => "Notification Message Body"
],
"data" => [
"key1" => "value1",
"key2" => "value2"
],
"android" => [
"priority" => "high"
],
"apns" => [
"headers" => [
"apns-priority" => "10"
]
]
]
];
// Send the notification
$options = [
'http' => [
'header' => "Authorization: Bearer $accessToken\r\n" .
"Content-Type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
Verify the service account JSON file path is correct and the file has proper read permissions. Ensure the project ID matches.
The device registration token may be invalid or expired. Request a new token from the client app.
The service account needs the "Firebase Cloud Messaging Admin" role in IAM settings.
Success
The modern FCM HTTP v1 API provides enhanced security, improved reliability, and supports all the latest Firebase Cloud Messaging features.
Log in to your Gmail account and click on your profile picture in the top right corner. Select "Manage your Google Account" from the dropdown menu.
Navigate to the "Security" tab in the left sidebar.
Under "Signing in to Google," enable 2-Step Verification if not already active.
Note: You must have 2-Step Verification enabled to generate an App Password.
While still in the Security section:
Find the "App passwords" option (under 2-Step Verification)
Click "create"
Copy the 16-character password shown
Add these configurations to your .env file:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=youremail@gmail.com
MAIL_PASSWORD=your_generated_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=youremail@gmail.com
MAIL_FROM_NAME="${APP_NAME}"
Verify 2-Step Verification is enabled and you're using an App Password.
Check if your server/firewall allows outbound connections on port 587.
Gmail has sending limits (500 emails/day for free accounts).
Advisable: Copy the source files to D: or E: drive rather than C: drive.
adb devices
Confirm the device appears in the list.
cd D:\GoCabz_customer
npm install
npx react-native run-android
npm install or composer install)Cause: Missing or outdated Node.js/PHP version, unstable internet connection, or running commands from the wrong directory.
Solution:
npm install
composer install
rm -rf node_modules package-lock.json
npm install
✓ Success
Indicator: After successful installation, you should see a node_modules folder and
vendor folder created.
Cause: Missing dependencies, incorrect import paths, or incomplete project extraction.
Solution:
resources/js/ files.npm install
npm run build
Cause: Firebase project setup is incomplete or configuration files are missing.
Solution:
firebase.json in config/ directory.
google-services.json (Android)GoogleService-Info.plist (iOS)💡 Tip: Always download the latest configuration files from Firebase Console. Old files may contain outdated credentials.
Cause: Missing or incomplete environment
configuration in .env file.
Solution:
.env.example to .env.APP_URL=ENTER_YOUR_APP_URL
DB_DATABASE=citycabz
RAZORPAY_KEY=ENTER_YOUR_RAZORPAY_KEY
FIREBASE_FILE=ENTER_YOUR_FIREBASE_FILE
VITE_ROUTEMAPPY_API_URL=ENTER_YOUR_ROUTEMAPPY_API_URL
php artisan optimize:clear after updating .env.⚠️
Important: Never commit your .env file to version control. It
contains sensitive credentials.
Cause: USB debugging is disabled or device drivers are not installed.
Solution:
adb devices
Cause: RouteMappy configuration is incomplete or map services are unavailable.
Solution:
.env:VITE_ROUTEMAPPY_API_URL=ENTER_YOUR_ROUTEMAPPY_API_URL
VITE_ROUTEMAPPY_MAP_KEY=ENTER_YOUR_ROUTEMAPPY_MAP_KEY
Cause: Driver account is awaiting administrator approval.
Solution:
Cause: Payment credentials are incorrect or payment methods are disabled.
Solution:
.env:RAZORPAY_KEY=ENTER_YOUR_RAZORPAY_KEY
FLUTTERWAVE_PUBLIC_KEY=ENTER_YOUR_FLUTTERWAVE_PUBLIC_KEY
PAYSTACK_PUBLIC_KEY=ENTER_YOUR_PAYSTACK_PUBLIC_KEY
Cause: Firebase Cloud Messaging (FCM) is not configured properly.
Solution:
FIREBASE_FILE and FIREBASE_DB are set in
.env.google-services.json (Android) or
GoogleService-Info.plist (iOS) is placed correctly.Cause: SMS service provider configuration is incomplete or delayed.
Solution:
.env:MAIL_USERNAME=ENTER_YOUR_MAIL_USERNAME
MAIL_PASSWORD=ENTER_YOUR_MAIL_PASSWORD
Cause: Incorrect credentials, inactive account, or account suspension.
Solution:
Cause: Driver availability, service area, or status configuration is incorrect.
Solution:
Cause: PHP version mismatch, missing dependencies, or permission issues.
Solution:
composer install to install all dependencies.php artisan key:generate.php artisan migrate.storage and bootstrap/cache.storage/logs/laravel.log for detailed errors.Cause: File size exceeds server limits or unsupported file format.
Solution:
php artisan storage:link to create symbolic link.Cause: Missing configuration, incorrect
.env values, or database connection issues.
Solution:
.env configuration is complete.php artisan optimize:clear.php artisan optimize.php artisan serve.Cause: Firebase Realtime Database configuration issues.
Solution:
FIREBASE_DB URL is correct in .env.Cause: Fare configuration is incomplete or incorrect.
Solution:
Cause: Invalid API key or incorrect configuration.
Solution:
Cause: Vite build not generated or incorrect asset paths.
Solution:
npm run build to build frontend assets.APP_URL in .env is correct.resources/views/app.blade.php has the correct Vite directives.
php artisan optimize:clear.Cause: GPS permissions or location tracking configuration issues.
Solution:
Cause: Cache issues or incorrect settings in Admin Panel.
Solution:
php artisan optimize:clear.#4032ae).php artisan storage:link if images are not displaying.APP_URL in .env matches your domain.💡 Tip: After
making changes in the Admin Panel, use php artisan optimize:clear and
php artisan optimize to ensure all caches are cleared.
Cause: Database connection issues or permission problems.
Solution:
.env are correct.settings table exists in the database.storage/logs/laravel.log for errors.php artisan migrate if tables are missing.Cause: Invalid URLs or missing social media links in Website Settings.
Solution:
https://facebook.com/yourpage).
https://.php artisan optimize:clear.If you encounter any issues that are not covered in this documentation, please contact our support team.
Monday – Friday
Response Time: Within 24–48 Business Hours
This will help us provide faster and more accurate assistance.
If you encounter an error that is not listed above, please feel free to contact our support team for further assistance. We’re here to help.
If you need any custom work, additional features, or modifications to this application, our team is ready to help you build and scale your project efficiently.
Custom feature development based on your business needs
UI/UX design improvements and branding customization
Third-party API integrations (payment, SMS, maps, etc.)
Performance optimization and scalability improvements
Full project setup and deployment assistance
Building large-scale applications from scratch
You can hire our development team for complete project development, from idea to deployment, including frontend, backend, and server setup.
+91 9150 441 443
sales@menpanitech.com
Custom development services may involve additional cost and timeline depending on the scope and complexity of the project.
We’re happy to collaborate and bring your ideas to life