Getting Started
Travelio — Travel Agency ERP & Booking System with Customer and Agent Apps
Developed By: BugBuild Labs
Welcome to Travelio
Travelio is a complete Travel Agency ERP — tour packages, bookings, visa processing, Hajj & Umrah, hotels, flights, transport, CRM, double-entry accounting, suppliers, HR, support and a full public website, all from one Laravel backend and one database.
This package ships four products sharing one backend:
- Admin Panel (Web) — this documentation. The control centre for every module.
- Public Website (Web) — the customer-facing travel site, covered in the Website section.
- Customer & Agent Portals (Web) — self-service panels, see Customer Portal and Agent Portal.
- Mobile App (Flutter) — one app, two roles: the customer role and the agent role (see Travelio App).
Everything talks to the same Laravel backend over a REST API (/api/v1), so a booking made in the app is instantly visible in the admin panel.
Server Requirements
Travelio runs on any standard LAMP/LEMP host — shared cPanel hosting, a VPS or a cloud instance. Confirm these before installing:
| Requirement | Minimum | Notes |
|---|---|---|
| PHP | 8.2 or higher | 8.3 recommended |
| MySQL / MariaDB | MySQL 8.0+ / MariaDB 10.4+ | One database |
| Web server | Apache 2.4+ / Nginx 1.18+ | Document root must point at /public |
| Composer | 2.x | Only needed if you install from source |
| Node.js | 18+ (build only) | Needed if you recompile assets with Vite |
| Memory limit | 512 MB | 256 MB works, 512 MB is comfortable for imports/backups |
| Max execution time | 300 seconds | For seeding and database backups |
Required PHP extensions:
BCMathCtype cURLDOM FileinfoJSON MbstringOpenSSL PCREPDO PDO_MySQLTokenizer XMLGD Zip
Database Setup (cPanel)
Create the database before you upload anything.
- cPanel → MySQL Databases.
- Create New Database — e.g.
travelio_db. - Add New User with a strong password. Save the credentials.
- Add User To Database → tick ALL PRIVILEGES.
- Note the final names — cPanel prefixes them, e.g.
myaccount_travelio_db.
Use UTF-8 collation (utf8mb4_unicode_ci) so Bangla, Arabic and emoji store correctly.
Keep the database name, username and password to hand — you will paste them into .env in the next steps.
Package & Source Code
Your download from CodeCanyon contains Main_Files.zip. Inside it:
| Folder | What it is |
|---|---|
WebSourceCode/ | The Laravel 13 application — admin panel, public website, customer & agent portals, and the REST API for the mobile app. |
AppSourceCode/ | The Flutter app source — one project that serves customers, agents and tour guides based on the role returned at login. |
Documentation/ | This documentation, offline copy. |
The customer and agent apps are the same Flutter codebase — the app routes a user to the customer or the agent experience based on the role returned at login. You can ship one app for both, or build two separately branded apps from the same source.
Inside WebSourceCode/ the important paths are:
app/ Controllers, models, repositories, middleware
Modules/Installer/ The guided web installer
database/ Migrations and seeders (demo data)
resources/views/ Blade views: backend/, frontend/, portal/
routes/ web.php, api.php, auth.php, setting.php, user.php
lang/en, lang/bn Translation files
public/ Web root — point your domain here
Upload & Environment
Upload the contents of WebSourceCode/ to your server and point the domain
at the public/ folder.
- Upload and extract the files into your hosting directory.
- Set the document root of your domain to
.../public. On shared hosting where you cannot change the root, upload the contents ofpublic/intopublic_html/and the rest one level above it, then fix the two paths insideindex.php. - Copy
.env.exampleto.envand fill in your values:
APP_NAME="Travelio"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=travelio_db
DB_USERNAME=your_db_user
DB_PASSWORD=your_db_password
MAIL_MAILER=smtp
MAIL_HOST=smtp.yourprovider.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_mail_password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="Travelio"
Permissions: storage/ and bootstrap/cache/ must be
writable (755, or 775 if PHP runs as a different user).
Never ship APP_DEBUG=true to production — it exposes environment values on error pages.
Installation
From the project root, run:
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
php artisan optimize
migrate --seed builds every table and loads demo data — roles, permissions,
settings, sample packages, bookings, customers and website content — so you can log in to a
working system immediately.
Starting clean instead: run the migrations, then seed only the rows the system needs to function:
php artisan migrate:fresh
php artisan db:seed --class=PermissionSeeder
php artisan db:seed --class=RoleSeeder
php artisan db:seed --class=SettingSeeder
php artisan db:seed --class=UserSeeder
migrate:fresh drops every table. Only use it on a fresh install or a system you are happy to wipe.
If you edit permissions or roles later, both seeders are idempotent and safe to re-run:
php artisan db:seed --class=PermissionSeeder --force
php artisan db:seed --class=RoleSeeder --force
Queue Worker & Scheduler
Mail, notifications and background jobs run through Laravel's queue. On a VPS, keep a worker alive with Supervisor:
php artisan queue:work --tries=3 --timeout=90
On shared hosting, add a cron entry instead:
* * * * * cd /home/youruser/yourapp && php artisan schedule:run >> /dev/null 2>&1
The scheduler drives visa expiry reminders, recurring report generation and scheduled database backups. Without it those features simply never fire.
Set QUEUE_CONNECTION=database in .env to use the queue tables. sync also works but makes the user wait for every email.
Login, Roles & Security
Open https://yourdomain.com/login and sign in. What you see depends on
your role — the sidebar only shows what your permissions allow.
Demo accounts seeded by the installer (password 12345678):
| Role | Lands on | |
|---|---|---|
| Super Admin | [email protected] | Admin dashboard — full control |
| Admin | [email protected] | Admin dashboard — the whole agency |
| Manager | [email protected] | Admin dashboard — sales, bookings, reports (no delete) |
| Operations Staff | [email protected] | Admin dashboard — day-to-day booking data entry |
| Accountant | [email protected] | Admin dashboard — finance modules |
| Support Agent | [email protected] | Admin dashboard — tickets + lookups |
| Travel Agent | [email protected] | Agent Portal |
| Customer | [email protected] | Customer Portal |
| Staff | [email protected] | Staff Portal |
Change every demo password before going live, and delete the accounts you do not need.
Permissions are fine-grained: each module can be read / created / updated / deleted independently. See Users & Roles.
Dashboard
The first screen after login — the whole agency at a glance.
- KPI cards — total bookings, revenue, visa approvals and open leads, each with a month-on-month trend.
- Revenue Overview — monthly revenue plotted against booking count for the year.
- Bookings by Status — confirmed / paid / pending / cancelled split as a donut.
- Secondary tiles — customers, paid revenue, average booking value and conversion rate.
- Recent Bookings — the latest bookings with customer, package, amount and status.
- Top Destinations — best-selling destinations by revenue.
- Top bar — global search, language switcher, light/dark theme, cache refresh, notifications and your profile menu.

Your Profile
Open the avatar menu at the top right → Profile to update your own name, photo, contact details and password. This page is available to every signed-in user regardless of role.

To-Do List
A private checklist for the signed-in user, separate from Task Management (which is for work assigned across the team). Add an item, tick it off, delete it when it is done. Nobody else sees your to-do list.

Customers
The central customer database. Every booking, invoice, visa application and support ticket links back to a record here.
- Full contact details — name, email, phone, address, nationality.
- Tier and status for segmenting regular from occasional travellers.
- Booking history and outstanding balance visible from the customer record.
- Search, sort and page through the list; export where a report exists for it.
A customer with a login can also use the Customer Portal to see their own bookings, documents and invoices.

Travelers & Passports
Travel documents for the people who actually fly — a customer often books for a family or a group, so travellers are stored separately from the paying customer.
- Travelers — each passenger tied to a customer, with date of birth, gender and relationship.
- Passports — passport number, issuing country, issue and expiry dates, scanned copy.
- Expiry dates feed the visa and Hajj modules so you can catch an expiring passport before it blocks a departure.
Customers can maintain their own travellers and passports from the Customer Portal — you do not have to key them in.


CRM — Leads & Activities
Everything before the booking: enquiries, follow-ups and the conversation history that turns a lead into a sale.
- Leads — source, destination interest, budget, assigned staff member and pipeline stage through to conversion.
- Contact Messages — enquiries submitted from the website contact form, answered from inside the panel.
- Job Applications — applications received against the vacancies you publish under CMS → Job Openings.
- Manage Activities — calls, meetings, emails and site visits logged against a lead or customer.
- Follow-up Calendar — every scheduled follow-up on a calendar so nothing is missed.
- Activity Timeline — one chronological feed of everything that happened with a customer.
- Customer Notes — free-form internal notes on a customer record.
- Communication History — the log of emails and messages sent to the customer.








Marketing
- Coupons — discount codes with a fixed or percentage value, usage limit, validity window and minimum spend. Customers apply them at checkout on the website and in the app.
- Campaigns — promotional campaigns with a target audience, channel and running period, so you can measure what each push actually sold.
- Newsletter Subscribers — everyone who subscribed from the website footer, exportable for your mailing tool.



Tour Management
Your sellable tour products and the departures behind them.
- Package List — destination, itinerary, duration, inclusions, price and gallery. These are what appear on the website and in the app.
- Package Category — group packages (honeymoon, family, adventure, religious…) for the website filters.
- Package Booking — bookings taken against a package: customer, travellers, dates, amount and status.
- Tour Schedule — dated departures with seat counts and status, so a package can run many times a year.
- Manage Schedules — the CRUD list where departures are added and edited.
- Tour Guides — the guides you can assign to a departure.
- Package Reports — sales per package over a date range, exportable to CSV.








Visa Management
Visa processing end to end — from application intake to the stamped passport going back to the customer.
- Visa Dashboard — applications by status and country, upcoming appointments and expiries.
- Applications — applicant, destination country, visa type, submission date, fee and current status.
- Embassy Appointment — appointment date, time, embassy and the staff member escorting the applicant.
- Visa Documents — the checklist of documents per application, with uploads and a received/pending state.
- Status Tracking — the visible progress trail; the same states are what the customer sees on the website's Track Your Visa page.
- Expiry Management — issued visas approaching expiry, so you can sell the renewal before it lapses.
- Visa Reports — volume, approval rate and revenue by country over a date range.







Hajj & Umrah
Pilgrimage groups are their own kind of operation — large parties, allocated hotel rooms and flight seats, staged payments and heavy document verification. Travelio handles all of it.
- Manage Packages — Hajj and Umrah packages with duration, hotel category, distance from Haram, transport and price tiers.
- Manage Pilgrims — each pilgrim with passport, mahram details, contact and package.
- Hotel Allocation — which pilgrim is in which hotel and room in Makkah and Madinah.
- Flight Allocation — pilgrims assigned to outbound and return flights.
- Group Management — pilgrims organised into groups with a group leader.
- Payment Management — instalments paid and outstanding per pilgrim.
- Document Verification — passport, photo, vaccination and mahram documents checked off before submission.
- Reports — group, payment and pilgrim reports for the season.
A Hajj package that already has pilgrims attached cannot be deleted — the system blocks it and tells you why.








Hotel Management
- Hotels — property list with city, star rating, contact and contract details.
- Hotels Overview — occupancy and booking summary across all properties.
- Manage Rooms — room types per hotel with capacity, rate and inventory.
- Manage Bookings — hotel bookings: guest, room type, check-in/out, nights and amount.
- Availability — room availability across dates before you confirm a booking.
- Vouchers — printable hotel vouchers to issue to the guest.
- Reports — hotel revenue and occupancy over a date range.
A hotel or room type with bookings against it is protected from deletion.






Transport
Every ground and water transfer you sell, each with its own booking screen because the fields genuinely differ.
- Manage Bookings — the combined transport booking list.
- Bus Booking — operator, route, coach type, seat and fare.
- Train Booking — train, class, coach and seat.
- Launch Booking — launch/ferry operator, cabin class and deck.
- Car Rental — vehicle, rental period, with or without driver.
- Airport Transfer — pickup and drop points, flight number and timing.
- Manage Drivers — driver roster with licence and contact details.
- Transport Reports — bookings and revenue by transport type.








Flight Management
- Flight Bookings — PNR, passenger, airline, route, travel date, fare and ticket status.
- Ticket Management — issued tickets with ticket number and the attached document.
- Reissue Requests — date or route changes requested against an issued ticket, with the reissue charge.
- Cancellation Requests — cancellations awaiting your action, with the penalty applied.
- Refund Tracking — where each refund sits between airline, agency and customer.
- Reports — flight sales and airline-wise performance over a date range.






Additional Services
The specialised lines a travel agency sells alongside tickets and packages. Each is a full record with its own fields, customer link and revenue.
- Travel Insurance — policy number, insurer, coverage, period and premium.
- Student Consultancy — student, destination country, institution, intake and application stage.
- Medical Tourism — patient, treatment, hospital, country and appointment dates.
- Corporate Travel — corporate client accounts, their travel policy and billing arrangement.
- Events & Conference — event travel: delegates, venue, dates and package.





Accounting
A full double-entry accounting system built in — you do not need separate books.
- Dashboard — income, expense, profit and cash position at a glance.
- Manage Accounts — the chart of accounts: asset, liability, equity, income and expense heads.
- Manage Transactions — every debit and credit, linked to its account and reference.
- Income and Expenses — quick entry screens for day-to-day money in and out.
- Journal Entries — manual double-entry postings for adjustments.
- Cash Book / Bank Book — cash and bank movement with running balance.
- Ledger — the account-wise ledger.
- Trial Balance, Profit & Loss, Balance Sheet — the standard statements, generated live.
- Manage Invoices / Manage Receipts — customer invoices and the payments received against them.
- Refunds — refunds issued to customers, posted back through the accounts.
- Tax Reports — tax collected and payable over a period.
Ledgers, journal, trial balance, P&L and balance sheet are derived views — they are calculated from your transactions rather than edited directly. An account that already has transactions cannot be deleted.
















Suppliers
Who you buy from, what you owe them, and the contracts behind the rates.
- Manage Suppliers — the master supplier list with contact, type and running balance.
- Airlines — airline suppliers with code, contact and credit terms.
- Hotels — hotel suppliers and their contracted rates.
- Transport Vendors — bus, car and launch operators you buy from.
- Visa Partners — agencies and consultants handling visa files on your behalf.
- Contracts — signed rate agreements with validity dates and terms.
- Supplier Ledger — statement per supplier: billed, paid, outstanding.
- Supplier Reports — purchase volume and payable position over a period.







Agent Finance
Travel agents sell on your behalf and earn commission. This is where that relationship is managed and settled.
- Agents — the agent list with company, contact, commission rate and status.
- Commissions — commission earned per booking, with paid/unpaid state.
- Agent Invoices — invoices raised to or by agents, and their settlement.
Agents see exactly the same figures from their own login — see Agent Portal and the Travelio App (agent role).



Task Management
- Manage Tasks — task with assignee, project, priority, due date and status.
- Projects — group related tasks under a project with its own timeline.
- Assignments — who is working on what right now.
- Deadlines — everything due soon, sorted by urgency.
- Calendar View — tasks and deadlines on a month calendar.
- Kanban Board — drag tasks between columns as they progress.






Support Center
- Manage Tickets — tickets raised by customers from the website, the portal or the app: subject, priority, assigned staff, status and the reply thread.
- Manage Announcements — notices shown to customers, agents and staff in their portals.
- Knowledge Base — the public help centre published on the website.
- Manage KB Articles — write and categorise those help articles.




Reporting Center
Nine reports, each with a date-range filter and Export to CSV.
| Report | Answers |
|---|---|
| Sales Reports | What did we sell, and for how much, in this period? |
| Visa Reports | Applications, approval rate and revenue by destination country |
| Package Reports | Which tour packages actually sell |
| Flight Reports | Ticket sales by airline and route |
| Hotel Reports | Room nights, occupancy and hotel revenue |
| Agent Reports | Sales and commission per agent |
| Customer Reports | Who buys, how often and how much |
| Financial Reports | Income, expense and profit across the business |
| Custom Reports | Build your own by picking the data range and columns |






CMS — Your Website
The public site is fully editable from here — no code, no theme files.
- Manage Pages — static pages (About, Privacy, Terms, Careers…) with a rich-text editor.
- Manage Blogs — travel blog posts with cover image, category and SEO fields.
- Manage Sliders — the home-page hero slides.
- Manage Testimonials — customer quotes with photo and rating.
- Manage Gallery — the photo gallery, grouped into albums.
- Manage FAQs — the questions shown on the website FAQ page.
- Manage Menus — build the header and footer navigation.
- Visa Services, Flight Fare Deals, Transport Services — the service and offer blocks the website advertises.
- Job Openings — vacancies on the careers page; applications land in CRM → Job Applications.
- Content Blocks — reusable text/image blocks dropped into pages.
- SEO Settings — meta title, description, keywords, social share image and analytics tags.













Human Resources
- Staff Attendance — daily attendance per employee.
- Leave Requests — requests submitted by staff, approved or rejected here.
- Payslips — monthly payslips with earnings, deductions and net pay.
Staff members submit leave and view their own attendance and payslips from the Staff Portal.



Users, Roles & Permissions
Access control is a checkbox grid — every module can be granted Read, Create, Update and Delete independently.
- Roles → open or create a role, tick exactly what it may do, save.
- Users → add the person, assign the role, set active or suspended.
Ten roles ship configured: Super Admin, Admin, Manager, Operations Staff, Accountant, Support Agent, Agent, Customer, Staff and Tour Guide. Agent, Customer and Staff are portal roles — they land on their own panel instead of the admin dashboard.
Changing a role updates everyone already assigned to it. A user's menu shrinks or grows the next time they load a page.


Branches
If your agency has more than one office, register each branch here with its address and contact. Records can then be attributed to the branch that produced them.

Activity & Login Logs
- Activity Logs — every create, update and delete: who did it, to which record, when, and what changed. Recorded automatically for every module.
- Login Activity — sign-in history with IP address, device and result.
Logging is automatic and cannot be bypassed from the UI, which makes it usable as an audit trail in a dispute.


Languages
Travelio ships bilingual — English and Bangla — and every interface phrase is editable from this screen. Add a language, then translate the phrase list; users switch language from the top bar. Right-to-left languages are supported.

Settings
- General Settings — agency name, logo, favicon (PNG/JPG/WebP — SVG is not accepted), contact details, currency, timezone and date format.
- Booking Policy (inside General Settings) — Cancellation window: how many hours before the travel date a customer may still cancel a paid booking from the app or portal (default 24; past that only staff can cancel). Cancellation penalty: the percentage kept from the refund (default 10%); the rest is credited to the customer's wallet.
- Mail Setting — SMTP host, port, encryption and the from-address used for every outgoing email.
- API Security — the shared
X-App-Keythe mobile app sends on every request. A fresh install seeds a fixed default key and the app ships with the same value, so nothing to configure. Press Generate to rotate it, then rebuild the app with the new value inenv/prod.json; clear it to switch the check off. - reCAPTCHA — Google reCAPTCHA site and secret keys to protect the public forms.
- Social Login Settings — Google and Facebook login credentials.
- Payout Setup — how agent commissions are paid out.
- Database Backup — take a backup on demand and download it, or schedule one through the cron scheduler.
Third-party costs — hosting, domain, SMTP, SMS, payment gateways, Apple/Google developer accounts — are not included in the item price. You supply your own credentials in these screens.




The Public Website
Everything a visitor sees lives on the same install and is driven by the data you enter in the admin panel — packages, visa services, fare deals, blogs, testimonials and pages.
- Home — hero slider, search, featured packages, services and testimonials.
- Tour Packages — browse and filter packages by category, destination and price, then book.
- Flight, Hotel and Transport Booking — search and request bookings online.
- Visa Service and Track Your Visa — apply for a visa and follow its status with a reference number.
- Hajj & Umrah Packages — the pilgrimage packages with full itinerary.
- Track Booking — check any booking's status without logging in.
- Become a Travel Agent — the agent application form that feeds your agent list.
- Blog, Gallery, Testimonials, FAQ, Support Center — the content you publish from the CMS.
- About, Contact, Careers, Privacy Policy, Terms & Conditions — the standard pages, all editable.
- Sign Up / Login — customer accounts, which open the Customer Portal.
























Customer Portal
Customers sign in on the website and get their own panel showing only their own records — enforced in the backend, not just hidden in the interface.
- Dashboard — upcoming trips, outstanding balance and recent activity.
- Bookings and Tour Bookings — everything they have booked, with status.
- Flight Tickets — issued tickets, downloadable.
- Visa Application — their application and where it has reached.
- Travelers and Passport Info — the only records they can add and edit themselves.
- Documents — files you have shared with them.
- Invoices, Payments, Wallet — what they owe, what they paid, and their balance.
- Support Tickets — raise and follow up an issue.
- Notifications, Preferences, Profile — their own account settings.















Agent Portal
Travel agents get a panel scoped to their own production — the bookings they made, the customers they brought and the commission they earned.
- Dashboard — sales, commission and wallet balance at a glance.
- Bookings — every booking they created, with status and value.
- Customers — the customers registered under them.
- Commissions — earned commission, paid and pending.
- Invoices and Transactions — their billing and settlement history.
- Wallet — running balance and payouts.
- Reports — their own sales and commission reports.
- Profile — their company and contact details.
The same data is available on the move in the Travelio App (agent role).









Common Tasks
Every module in Travelio behaves the same way, so once you have learned one screen you have learned them all.
| To do this | Do that |
|---|---|
| Add a record | Open the module, click Add at the top right, fill the form, Save. The button only appears if your role has create permission. |
| Edit or delete | In the list, use the ⋮ menu on the row → Edit or Delete. Deletes ask for confirmation. |
| Find a record | Every list has a search box, sortable columns and paging. |
| Filter a report | Pick a date range at the top of the report, then Export CSV. |
| Give a colleague access | Users → Roles, tick the permissions, then assign the role to the user. |
| Change the website content | CMS — pages, blogs, sliders, testimonials, gallery, FAQs and menus. |
| See who changed something | Activity Logs. |
Some records refuse to delete — a Hajj package with pilgrims, an account with transactions, a hotel with bookings. The system tells you which link is blocking it. Remove the dependency first.
Troubleshooting
| Symptom | Fix |
|---|---|
| 500 error after upload | Check storage/ and bootstrap/cache/ are writable, and that APP_KEY is set (php artisan key:generate). |
| Blank white page | PHP version below 8.2, or a missing extension. Check your host's PHP selector and error log. |
| Database connection refused | Wrong DB_* values in .env, or the cPanel prefix is missing from the database and user name. |
| Assets or images not loading | Run php artisan storage:link, and confirm APP_URL matches the real domain, including https. |
| Changes to .env do nothing | Config is cached. Run php artisan optimize:clear. |
| Emails never arrive | Verify the SMTP values under Settings → Mail, and make sure the queue worker or cron is running. |
| 404 on every page except home | Apache mod_rewrite is off, or .htaccess was not uploaded (it is a hidden file). |
| A user cannot see a menu | Their role lacks the read permission for it — Users → Roles. |
Support & Updates
Item support covers installation help, bug fixes and answering questions about the included features. It does not cover customisation, third-party service configuration, or hosting problems on your server.
- Email — [email protected]
- WhatsApp — +8801811843300
- Website — bugbuild.com
When reporting a problem, include your PHP version, the exact error message and the steps that produced it — it gets you an answer far faster.
Costs for hosting, domains, payment gateways, SMS, email services and Apple/Google developer accounts are not included in the item price and must be arranged separately.
Changelog
Every release is listed here, newest first. The same history ships inside the package as
WebSourceCode/CHANGELOG.md (web) and AppSourceCode/CHANGELOG.md (app),
so you can diff exactly what changed before upgrading.
Version 1.1.0 — September 2026
Security
- Removed the customer wallet top-up API endpoint that credited a wallet with no payment taken. A wallet is now funded only by a confirmed payment or a staff-recorded adjustment.
- Wallet and agent-withdrawal balance checks run inside a database transaction with a row lock, so two concurrent payments can no longer both pass the check and overdraw.
- Visa applicant documents (passport scans, IDs) moved from the public disk to a private one and are served only through authenticated, permission-checked download routes. Existing installs: run
php artisan travelio:move-private-documentsonce after upgrading. - SVG is no longer accepted for the site logo and favicon (stored-XSS risk from inline rendering).
- The image-upload pipeline checks the file extension against an explicit whitelist instead of building a PHP function name from it.
- Android release builds fail with a clear message when
android/key.propertiesis missing, instead of silently producing a debug-signed bundle the Play Store rejects.
Fixed
- Uploading a logo, favicon or any file through an admin form could fail with "something went wrong" — the request sanitiser was coercing uploaded files to strings.
- Wallet balance is read from the latest ledger row instead of replaying a customer's full history; total held across all wallets is one SQL aggregate.
Changed
- Booking cancellation now respects an admin-configurable window and penalty — Settings → General Settings → Booking Policy.
- Removed the unused Inertia/Vue layer and
laravel/breeze; upgradedintervention/imageto 3.x; one jQuery (3.7.1) and one Select2 (4.1) build in the admin panel. - Android release builds ship with R8 code shrinking enabled;
--obfuscate --split-debug-infodocumented in the app README. - The optional multi-tenant SaaS module (tenants, plans, subscriptions, subscription payment gateways) is no longer part of this edition. Travelio installs and runs as a single-agency ERP;
stancl/tenancyis no longer a dependency.
Version 1.0.0 — Initial release
- Tour packages, visa management, Hajj & Umrah, hotel/flight/transport booking, additional services.
- CRM, double-entry accounting, suppliers, agent commission, task management, support center, reports.
- CMS website builder, HR, role-based access; customer, agent and staff portals.
- Optional multi-tenant SaaS mode with plans, subscriptions and 12 payment gateways.
- Flutter app for customers, agents and tour guides with push notifications.
- Guided web installer; four languages with RTL/LTR support.
Upgrading from 1.0.0: replace the source files, run composer install --no-dev, php artisan migrate --force, php artisan travelio:move-private-documents and php artisan optimize:clear. Then review the new Booking Policy settings.