Travel In Guide

Updated On: 2nd September, 2025

Overview

THANK YOU FOR PURCHASING Travel In! Here are some basics on installing and configuring Travel In,

BEFORE WE GO The code and the sample data is provided "as is". Customizing code and other design related issues can be done as freelance work on a $10-40 hourly rate only with Paypal and/or Westren Union, if Travel In available.

If you are new to Progamming, please understand I cannot fix your site for free. We would love to help everyone but there is no time. I suggest reading documentation available online regarding using PHP, server requirements, etc.

Admin Features
  • Core Modules
    • Users Management
    • Hotels Management
    • Tours Management
    • Flights Management
    • Blogs Management
    • Services Management
    • CMS Pages
  • Location Management
    • Countries
    • States/Provinces
    • Cities
    • Airports
  • Content Management
    • Our Experts
    • Testimonials
    • Contact Messages
    • Menu Management
  • Multilingual System
    • Language Management
    • Menu Translations
    • Content Translations
    • RTL Language Support
    • Flag Image Uploads
  • Booking System
    • Tour Bookings
    • Hotel Bookings
    • Flight Bookings
    • Payment Management
  • Settings
    • Site Settings
    • Home Page Settings
    • Payment Gateways
    • Email Configuration

Installation

Server Requirements

Please note that this is Laravel 10.10 application so exprience with this framework and server configuration is required with php 8.1+ version.

Copy Files

The Quickstart Package consists on a complete Laravel + Database File + Sample Content, excellent for beginner users to explore back-end settings and sample content. Follow this quick guide:

Setting Up on Localhost: create a new folder in the htdocs folder for Xampp (www folder for Wamp). Example: travelin

Unzip all files and folders of the Package file and copy travelin files into this newly created folder (htdocs folder for Xampp / www folder for Wamp) or upload them into your domain folder (public_html) on your live site.

Create Database

Database: First create new database than create user and add database to that user and then goto phpmyadmin and import SQL file located in db folder,

after that Open ENV file located on main root of your folder and change folowing values.

APP_URL=http://www.yourdomain.com
DB_DATABASE=YOUR DATABASE NAME
DB_USERNAME=YOUSER NAME
DB_PASSWORD=YOUR PASSWORD

That's it. Now access your site for localhost type localhost/yourfoldername and for live server type http://yourdomain.com

To access admin side access your url and add "/login" e.g. http://www.yourdomain.com/login

Admin User Login:
Username: admin@demo.com
Password: demo2626

Database Setup with Migrations (Recommended)

New Migration System: The system now includes comprehensive Laravel migration files for easy database setup and management. This is the recommended approach for new installations.

Migration Files Available:

Core System Migrations:
  • create_languages_table.php - Language management
  • create_language_translations_table.php - Static translations
  • create_menu_translations_table.php - Menu translations
  • create_content_translations_table.php - Content translations
  • create_widget_translations_table.php - Widget translations
  • create_widget_data_translations_table.php - Widget data translations
  • create_modules_table.php - Module definitions
  • create_modules_data_table.php - Dynamic content (50 extra fields)
  • create_menus_table.php - Navigation menus
  • create_menu_types_table.php - Menu types
  • create_settings_table.php - System settings
Location & Booking Migrations:
  • create_countries_table.php - Countries management
  • create_states_table.php - States/Provinces
  • create_cities_table.php - Cities management
  • create_airports_table.php - Airports with IATA codes
  • create_tour_bookings_table.php - Tour bookings
  • create_hotel_bookings_table.php - Hotel bookings
  • create_flight_bookings_table.php - Flight bookings
  • create_reviews_table.php - User reviews
  • create_contact_us_table.php - Contact form

How to Use Migrations:

  1. Create Database: Create a new database in phpMyAdmin
  2. Configure .env: Update database credentials in .env file
  3. Run Migrations: Execute the following command:
    php artisan migrate
  4. Optional - Fresh Migration: If you want to start fresh:
    php artisan migrate:fresh

Migration Benefits:

  • Version Control: Database changes are tracked in version control
  • Team Collaboration: Easy setup for multiple developers
  • Rollback Support: Can easily rollback database changes
  • Environment Consistency: Same structure across all environments
  • Laravel Best Practices: Follows Laravel conventions

Migration Commands:

# Run all pending migrations
php artisan migrate

# Run specific migration
php artisan migrate --path=database/migrations/2025_09_02_131652_create_languages_table.php

# Rollback last migration
php artisan migrate:rollback

# Rollback all migrations
php artisan migrate:reset

# Fresh migration (drops all tables and recreates)
php artisan migrate:fresh

# Check migration status
php artisan migrate:status
Note: If you prefer to use the SQL file method, you can still import the travelin25.sql file directly. However, using migrations is recommended for better database management and version control.

Quick Setup Guide

Complete Setup Instructions: Follow these steps to get your Travel In system up and running quickly.

Setting Up Database with Migrations

  1. Create Database

    Create a new database in phpMyAdmin or your preferred database management tool.

  2. Configure Environment

    Update your .env file with database credentials:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=your_database_name
    DB_USERNAME=your_username
    DB_PASSWORD=your_password
  3. Run Database Migrations
    php artisan migrate

    This will create all 21 migration files and set up the complete database structure.

  4. Add Extra Fields to Modules Data

    Run the SQL query to add extra fields 26-50 to the modules_data table:

    ALTER TABLE `modules_data`
    ADD COLUMN `extra_field_26` TEXT NULL,
    ADD COLUMN `extra_field_27` TEXT NULL,
    -- ... (up to extra_field_50)
    ADD COLUMN `extra_field_50` TEXT NULL;
  5. Create Menu Translations Table
    CREATE TABLE `menu_translations` (
      `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
      `menu_id` bigint(20) UNSIGNED NOT NULL,
      `locale` varchar(255) NOT NULL,
      `title` varchar(255) NOT NULL,
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `menu_translations_menu_id_locale_unique` (`menu_id`,`locale`),
      KEY `menu_translations_menu_id_foreign` (`menu_id`),
      CONSTRAINT `menu_translations_menu_id_foreign` FOREIGN KEY (`menu_id`) REFERENCES `menus` (`id`) ON DELETE CASCADE
    );
  6. Create Content Translations Table
    CREATE TABLE `content_translations` (
      `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
      `translatable_type` varchar(255) NOT NULL,
      `translatable_id` bigint(20) UNSIGNED NOT NULL,
      `locale` varchar(255) NOT NULL,
      `field_name` varchar(255) NOT NULL,
      `field_value` longtext NOT NULL,
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `content_translations_translatable_type_translatable_id_index` (`translatable_type`,`translatable_id`),
      KEY `content_translations_locale_index` (`locale`),
      KEY `content_translations_field_name_index` (`field_name`)
    );
  7. Clear Application Cache
    php artisan route:clear
    php artisan config:clear
    php artisan cache:clear

Adding Your First Language

  1. Go to Admin Panel → Languages
  2. Click "Add New Language"
  3. Fill in the language details:
    • Language Name (e.g., "Arabic")
    • Language Code (e.g., "ar")
    • Upload flag image
    • Select RTL if applicable
  4. Save the language
  5. Start adding translations via the translation interfaces

Managing Content Translations

  1. Go to Admin Panel → Content Translations
  2. Select the module (Hotels, Tours, Flights, etc.)
  3. Choose the content item to translate
  4. Add translations for:
    • Title and Description
    • Meta tags (Title, Description, Keywords)
    • Extra fields (1-50)
  5. Use bulk translation for multiple items

Frontend Language Switching

The language switcher is automatically available on the frontend and includes:

  • Flag images for each language
  • Automatic RTL/LTR styling
  • Session persistence
  • Dynamic content updates

Link Storage Path for Profile photos

Goto public folder on root and delete storage folder if already exist.

Now goto browsers and hit this url https://domain.com/storage-link

Note: Storage link will only work on main domain or subdomain.


Home Page content update

Goto Settings in admin and click on home page content link, here you can change home page content.

To update home page widgetscontent here are the sections to change:

Get Started

Site Settings

Login into admin and goto end of left links you will see link "Site Settings"

Here you can manage:
  • Site Logo
  • Site Phone
  • Email
  • Company Address
  • SMTP
  • Duffel API
  • Paypal
  • Stripe

Main Modules

To manage site Main Modules See Title "Modules". Here you can manage all Main Modules such as:

Here you can manage:
  • Hotels
  • Destination
  • Flights
  • Airlines
  • Blog
  • Services
  • Testimonials
  • Team
  • Pages
  • Users

Tours Module Management

Overview

The Tours Module is a comprehensive system for managing travel packages, tours, and excursions. It includes full CRUD operations, booking management, and multilingual support.

Features

  • Tour Management
    • Create, Edit, Delete Tours
    • Tour Images & Galleries
    • Pricing Management
    • Duration & Schedule
    • Tour Categories
  • Booking System
    • Online Booking Forms
    • Payment Integration
    • Booking Confirmation
    • Email Notifications
  • Multilingual Support
    • Tour Titles & Descriptions
    • Extra Fields Translation
    • Meta Tags Translation
    • SEO Optimization
  • Admin Features
    • Tour Listings
    • Booking Management
    • Content Translation
    • Bulk Operations

Accessing Tours Module

Navigate to Admin Panel → Tours to manage all tour-related content.

Location Management System

Overview

The Location Management System provides a hierarchical structure for managing geographical data including countries, states/provinces, cities, and airports.

Location Hierarchy

Countries

  • Country Name
  • Country Code (ISO)
  • Flag Images
  • Status (Active/Inactive)
  • Sort Order

States/Provinces

  • State Name
  • Country Association
  • State Code
  • Status Management
  • Sort Order

Cities

  • City Name
  • State Association
  • Country Association
  • Status Management
  • Sort Order

Airports Management

Comprehensive airport management system with:

  • Airport Name & Code (IATA/ICAO)
  • City & Country Association
  • Airport Type (International/Domestic)
  • Status Management
  • Sort Order

Accessing Location Management

Navigate to Admin Panel → Locations to manage:

  • Countries Management
  • States Management
  • Cities Management
  • Airports Management

Multilingual System

Overview

The Travel In system includes a comprehensive multilingual solution that supports multiple languages with RTL (Right-to-Left) language support, database-driven translations, and admin management interface.

Language Management

Language Features

  • Language CRUD
    • Add New Languages
    • Edit Language Details
    • Delete Languages
    • Language Status Management
  • Language Properties
    • Language Name
    • Language Code (ISO)
    • Flag Image Upload
    • RTL/LTR Support
    • Default Language Setting

Translation Features

  • Menu Translations
    • Navigation Menu Translation
    • Admin Menu Translation
    • Bulk Menu Translation
  • Content Translations
    • Dynamic Content Translation
    • Extra Fields Translation
    • Meta Tags Translation
    • Bulk Content Translation
  • Widget Translations
    • Widget Title Translation
    • Widget Description Translation
    • Widget Data Translation
    • Widget Content Translation

Translation System Architecture

Database Tables

  • languages - Stores language information
  • language_translations - Static text translations
  • menu_translations - Menu item translations
  • content_translations - Dynamic content translations
  • widget_translations - Widget translations
  • widget_data_translations - Widget data translations

Translation Methods

// Basic fields
$item->getTranslatedTitle()
$item->getTranslatedDescription()
$item->getTranslatedMetaTitle()
$item->getTranslatedMetaDescription()
$item->getTranslatedMetaKeywords()

// Extra fields (1-50)
$item->getTranslatedExtraField(1)  // extra_field_1
$item->getTranslatedExtraField(2)  // extra_field_2
// ... up to 50

// General method
$item->getTranslatedField('any_field_name')

// Widget translations
$widget->getTranslatedTitle()
$widget->getTranslatedDescription()

// Widget data translations
$widgetData->getTranslatedTitle()
$widgetData->getTranslatedContent()

RTL Language Support

The system automatically detects RTL languages and applies appropriate styling:

  • Automatic CSS file inclusion for RTL languages
  • Dynamic `dir` attribute setting
  • RTL-specific styling in `rtlstyle.css`
  • Language switcher with flag images

Accessing Multilingual Features

Navigate to Admin Panel → Languages to manage:

  • Language Management (Add/Edit/Delete)
  • Menu Translations
  • Content Translations
  • Widget Translations
  • Bulk Translation Operations

Frontend Language Switching

Users can switch languages using the language switcher component which:

  • Displays available languages with flag images
  • Maintains language selection across sessions
  • Automatically applies RTL/LTR styling
  • Updates all content dynamically

Admin Dashboard & Booking System

Modern Admin Dashboard

The admin dashboard has been enhanced with modern UI elements and comprehensive analytics.

Dashboard Features

Statistics Cards

  • Total Bookings
  • Total Revenue
  • Active Users
  • Tour Bookings
  • Hotel Bookings
  • Flight Bookings

Interactive Charts

  • Revenue Chart (Line Chart)
  • Daily Bookings (Bar Chart)
  • Booking Distribution (Pie Chart)
  • Time Period Filtering
  • Real-time Data Updates

Collapsible Sidebar Menu

The admin sidebar features a modern collapsible design with:

  • Travel-themed Font Awesome 6 icons
  • Collapsible menu sections
  • Organized menu categories
  • Quick access to all modules

Booking Management System

Tour Bookings

  • Booking Confirmation
  • Payment Processing
  • Email Notifications
  • Booking Status Management
  • Customer Details

Hotel Bookings

  • Room Selection
  • Check-in/Check-out Dates
  • Guest Information
  • Payment Integration
  • Booking Confirmation

Flight Bookings

  • Flight Search Integration
  • Seat Selection
  • Passenger Details
  • Payment Processing
  • Booking Confirmation

Payment Integration

The system supports multiple payment gateways:

  • PayPal - Sandbox and Live modes
  • Stripe - Credit/Debit card processing
  • Paystack - African payment gateway
  • Secure payment processing
  • Payment status tracking

Migration System Architecture

Overview

The Travel In system now includes a comprehensive Laravel migration system that replaces manual SQL imports with version-controlled database management.

Migration Structure

Core System (9 Migrations)

  • Languages & Translations
    • Languages table
    • Language translations
    • Menu translations
    • Content translations
  • Content Management
    • Modules & Modules data
    • Menus & Menu types
    • Settings

Location & Booking (8 Migrations)

  • Location Hierarchy
    • Countries
    • States
    • Cities
    • Airports
  • Booking System
    • Tour bookings
    • Hotel bookings
    • Flight bookings
    • Reviews

Migration Features

Database Relationships

  • Foreign Key Constraints - Proper relationships between tables
  • Cascade Deletes - Automatic cleanup when parent records are deleted
  • Unique Constraints - Data integrity enforcement
  • Indexes - Performance optimization

Advanced Features

  • 50 Extra Fields - Dynamic content support
  • Polymorphic Relationships - Flexible content translation
  • JSON Fields - Complex data storage
  • Enum Fields - Status management

Migration Benefits

Development

  • Version control integration
  • Team collaboration
  • Environment consistency
  • Rollback capabilities

Deployment

  • Automated database setup
  • Production deployment
  • Database updates
  • Migration tracking

Maintenance

  • Schema versioning
  • Change tracking
  • Backup integration
  • Laravel best practices

Migration Commands Reference

Basic Commands

# Run all migrations
php artisan migrate

# Check migration status
php artisan migrate:status

# Rollback last migration
php artisan migrate:rollback

# Rollback all migrations
php artisan migrate:reset

Advanced Commands

# Fresh migration (drop & recreate)
php artisan migrate:fresh

# Run specific migration
php artisan migrate --path=database/migrations/filename.php

# Force migration (production)
php artisan migrate --force

# Seed after migration
php artisan migrate --seed

Migration File Structure

Each migration file follows Laravel conventions:

id();
            $table->string('name');
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('table_name');
    }
};

Emails settings

Goto Site Settings in admin and add SMTP Details.

Duffel

After installing Travelin now you can in easy steps integrate Duffel to get latest filghts data

  1. First goto: https://duffel.com/ and Create Account and follow instruction to generate API for flights
  2. Now goto to your Travelin Admin panel -> Settings -> Duffel Settings and add Duffel toekn

PayPal

After installing Travelin now you can in easy steps integrate PayPal with it to let your users use it

  1. First goto: https://developer.paypal.com/developer/applications/ and Sign in with your PayPal account
  2. Now under Testing Tools click Sandbox Accounts then click Accounts then click on Create Account button and Create new Business (Merchant Account) and fill the form
  3. Then Create Personal (Buyer Account) and fill the form
  4. Both accounts will be linked with your new PayPal app for SandBox Mode
  5. Now click My Apps & Credentials
  6. Also make sure that your app has subscriptions enabled
  7. Now if you will use PayPal in SandBox (Test) Mode Copy Client ID and Secret
  8. Now goto to your Travelin Admin panel -> Settings -> PayPal Settings and paste both Client ID and Secret and select the mode you want Test or Live
That's all, Enjoy!

Stripe

After installing Travelin now you can in easy steps integrate Stripe with it to let your users use it

  1. First goto: https://dashboard.stripe.com/ and Sign in with your Stripe account
  2. Now click Developers -> API Keys
  3. For Live you will need to activate your account first
  4. Now goto to your Travelin Admin panel -> Settings -> Stripe Setting and paste both Client ID and Secret and select the mode you want Test or Live
That's all, Enjoy!

Sources and Credits

To manage job attributes see Attributes Section. In each section you have to add attribute for all langueas.

This system has been developed successfully incorporate all the requirements. Appropriate care has taken during database design maintain database integrity and to avoid redundancy of data. This site was developed in such a way that any further modifications needed can be easily done. User feels freely while using this site. In this all technical complexities are hidden. This site is a more user friendly. The quality fusers like correctness, efficiency, usability, maintainability, portability, accuracy, errors, tolerance, expandability and communicatively all are successfully done.

Foreseeable enhancements

There is always a room for improvement in any software package, however good and efficient it may be. The important thing is that the website should be flexible enough for further modifications. Considering this important factor, the web site is designed in such a way that the provisions are given for further enhancements. At present this website provides all the information using static pages and reservation forms. In future we can enhance our project by providing options like. Include many sites information.

Once again, thank you so much for purchasing Travel In. As I said at the beginning, I'd be glad to help you if you have any questions relating to this script. No guarantees, but I'll do my best to assist. If you have a more general question relating to the script on Codecanyon, you might consider visiting the forums and asking your question in the "Item Discussion" section.



Good Luck
eCreativesol Team