Why Travel Manager
What makes it better
than the alternatives
- 01
Transaction-locked seat allocation
Transaction-locked seat allocation
- 02
Automatic hold expiry
Automatic hold expiry
- 03
Cancellation fee schedule
Cancellation fee schedule
- 04
Signed traveller links
Signed traveller links
- 05
Departure margin tracking
Departure margin tracking
Tours & Itineraries
- Destinations with name
- slug and sort order
- Tours with photo
- length
- difficulty
- pace
- highlights
- included/excluded lists and minimum group size
- Day-by-day itinerary with title and description per day
- Prices per adult
- child and infant
- single-room supplement
- Active/inactive flag; featured tours appear first on the public site
Departures & Seats
- Dated runs of a tour with start date
- seats
- minimum to run and optional date-specific pricing
- Statuses: on sale
- sales closed
- cancelled
- Guide and vehicle assignment
- Real-time seat counting: adults + children (infants take no seat)
- Month calendar view showing every departure and how full it is
- Departure-level cost lines for margin calculation
Bookings & Holds
- Customer details: name
- phone
- nationality
- notes
- Group composition: adults
- children
- infants
- single rooms
- Statuses: held
- confirmed
- travelled
- cancelled
- no-show
- Configurable hold time (hours); expired holds release seats automatically
- Change group size
- move to another departure
- cancel with fee
- Coupon application (percent or fixed discount)
- Source tracking and internal notes
Payments & Invoicing
- Deposit and balance due dates
- Payment recording: cash
- card machine
- bank transfer
- Refunds (manager permission required)
- Extras and fees (e.g. travel insurance
- cancellation fee)
- Goodwill adjustments (manager permission)
- Tax rate applied at booking time
- Numbered invoices; closed invoices are read-only
Travellers & Passports
- Name
- type
adult/child/infant - date of birth
- Nationality
- passport number and expiry
- Dietary requirements and medical notes
- Emergency contact details
- Lead traveller flag
- Booking desk shows how many travellers are ready (passport details complete)
Operations & Manifests
- Printable passenger list per departure
- Rooming list showing the single rooms each booking needs
- Guide and vehicle assignment per departure
- Supplier list with type (hotel
- transport
- guide
- activity
- other)
- Cost lines per departure for margin visibility
- Operations role can view departures
- guides and suppliers but not bookings or payments
Public Site & Enquiries
- Tour listing with destination filter
- Tour detail page with itinerary
- live seats left and prices
- Enquiry form (name
- phone
- adults
- children
- message)
- Enquiries hold no seats until staff convert them to bookings
- Maximum advance booking window (configurable days)
- Honeypot field to block bots
Traveller Trip Page
- Signed
- expiring URL per booking (configurable validity in days)
- Shows trip details
- day-by-day itinerary
- passenger list
- Invoice with items
- payments
- balance due
- Printable as PDF
- Rate limited to 30 requests per minute
Settings & Configuration
- Agency name
- currency
- tax rate
- Deposit percentage
- hold time (hours)
- balance due days before departure
- Cancellation fee schedule by days before departure
- Invoice footer text
- Maximum advance booking days
- maximum travellers per booking
- Coupon management: percent or fixed discount
- date range
- quantity limit
- minimum group size
Roles & Permissions
- Admin: full access including user management and deletions
- Manager: bookings
- payments
- refunds
- goodwill adjustments
- Sales: bookings
- customers
- enquiries (read-only on departures
- guides
- suppliers)
- Operations: departures
- guides
- suppliers
- manifests (no access to bookings or payments)
- Policy-based authorization (BookingPolicy
- DeparturePolicy
- etc.)
- Demo mode with one-click logins for public demos
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| PHP | — | — | Web, API | 72.1% |
| SQL | — | — | Database | 25.1% |
| CSS | — | — | Styling | 2.1% |
| Shell | — | — | Scripts | 0.4% |
| JavaScript | — | — | Front-end | 0.2% |
- Primary language
- PHP 8.3+
- Framework
- Laravel 13.17 + Filament 5.10
- Database
- MySQL 8.0 / MariaDB 10.6 / SQLite 3
- Authentication
- Laravel session-based authentication with Filament panel
- Licence
- Single-site
- Screens
- 20
- Database tables
- 15
- Supported languages
- English only
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge — last 2 versions)
| Minimum | Recommended | |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 1 GB RAM | 2 GB RAM |
| OS | PHP 8.3+, Apache 2.4 or Nginx, Node.js 20+ for build | PHP 8.3+, Apache 2.4 or Nginx, Node.js 20+ for build |
| Est. monthly hosting | $12 | $12 |
```bash cp .env.example .env # set APP_KEY (openssl rand -base64 32, prefix base64:), DB_PASSWORD, SEED_ADMIN_PASSWORD, APP_URL docker compose up -d --build ```
```bash composer install --no-dev --optimize-autoloader && npm ci && npm run build cp .env.example .env && php artisan key:generate php artisan migrate --force --seed ``` Step-by-step guide, nginx config and Cloudflare notes: HowToSetup.md.
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
Reviewer notes (2 minor)
Strong authentication on all mutating endpoints; minor ownership gaps on read-only routes; database access is safe; minor schema gaps: missing indexes on foreign keys; good separation of concerns with minor duplication in agent/claude skill directories. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.