✈️ SkyAdventures — Tours, Events, Fly-Ins & Patches for phpVMS 7

Events, tours, fly-ins and gamification for phpVMS 7 — German Sky Group

A standalone phpVMS 7 module that bundles tours, events/fly-ins, legs, sign-up & booking, a photo gallery and patches/awards into one ACARS-integrated package — with a boarding-pass look, VATSIM/IVAO import and AI texts. It replaces the earlier one-off solutions DisposableSpecial-Tours and CHEvents. Installable without SSH.

:puzzle_piece: Architecture & integration

  • Clean nwidart/laravel-modules module (PSR-4 Modules\SkyAdventures\), no external Composer dependencies — uses only what phpVMS ships (image optimisation via intervention/image v2 or v3)

  • Automatic PIREP→leg matching through ACARS: matched by route/distance/block time, constraints (airline/aircraft) and performance rules (landing rate, min fuel, min block time). Decoupled (queue + safety guards + kill-switch) so it never blocks the PIREP-acceptance path

  • Patch = single source of truth: for every patch the native phpVMS award is created, updated (incl. image) and removed automatically — no manual award upkeep

  • Own sa_* tables, fine-grained permissions (content/settings/rewards/imports split), settings with masked secrets + cron token

:world_map: Tours

  • Modes Sequential (with continuity check), Free, X of Y; bonus payout per leg

  • Airline lock + allowed aircraft classes (narrow/wide/regional/turboprop/GA); per leg whitelist/blacklist/fixed

  • Series bundle tours into one project with a mega patch

:bullseye: Events & fly-ins

  • Types: Group, Open Window, Race, Charity, Training, Fly-In; completion modes all / X of Y / one is enough

  • Fly-In → one destination, any departure — and Fly-Out as its mirror (one start → anywhere)

  • RSVP/sign-up, fixed time window, donation link per event, VATSIM/IVAO event import

:sports_medal: Patches & public overview

  • Custom badges with image + rarity (Common → Legendary) & categories

  • Public patches page: collector leaderboard (count bars, tie-aware ranking), gallery of all patches, drill-down into pilot & patch (“X of Y”)

:robot: AI & convenience

  • AI texts with an Anthropic → Gemini → Wikipedia fallback chain for descriptions, pre-flight briefings, leg stories & sights/tags

  • 5-step wizard, “paste route” (bulk legs from an ICAO chain), auto-fill of distance & block time (great-circle)

:desktop_computer: Frontend (pilots)

  • Boarding-pass leg cards (route, distance, status, crew, live-map link), hero banner with adjustable crop

  • Photo gallery with client-side image compression, promo slideshow on the home page, progress & participant display

  • Discord linking + webhook notifications

:gear: Stack & languages

phpVMS 7 · Laravel/Blade · fully bilingual EN/DE (frontend follows the user’s language, admin has its own switcher) · built-in Help & Glossary · Pint + PHPUnit · MIT licence · actively developed (currently v0.18.x)

:package: Installation (no SSH / no Composer)

  1. Unzip SkyAdventures-vX.Y.Z.zip from the Releases → a SkyAdventures/ folder

  2. Upload via FTP to [phpvms]/modules/SkyAdventures/ (so module.json sits there)

  3. In the browser open https://your-domain/update → phpVMS creates all sa_* tables

  4. Done — it shows up as “SkyAdventures” in the admin menu (With CLI: unzip → php artisan migrate. Do not use the “Modules → Upload” button — the module cache otherwise throws “does not exist”.)


Interested? Screenshots & a demo video are available on request — if you’d like to run or test SkyAdventures for your VA, drop me a DM or reach out on Discord! :speech_balloon:


Video: Login – KantCloud