Relaunch unserer neuen Website mit dem hauseigenen "BINARY cms" Mehr erfahren →
← Referenzen

TPUS — eine Plattform, viele touristische Regionen.

Ein abobasiertes Tourismusportal, das touristische Inhalte aus dem discover.swiss-Netzwerk bündelt — produktiv u.a. bei Uri Tourismus, Schwyz Tourismus, der Erlebnisregion Mythen und ein paar kleineren Regionen im Einsatz.

TPUS — eine Plattform, viele touristische Regionen.
Tourismusorganisationen (Uri, Schwyz, Mythen)
Kunde
Tourismus
Branche
2026
Realisiert
Craft CMS
Kerntechnologie

Ausgangslage

Tourismusorganisationen pflegen Angebote, Touren und Events in vielen Quellen. Eine eigene, gepflegte Website ist teuer — und veraltet schnell.

Lösung

TPUS ist eine abobasierte Plattform: Inhalte aus dem discover.swiss-Netzwerk (Guidle, Outdooractive und weitere Quellen) fliessen automatisch ein, die Region pflegt nur das Eigene. Eine Codebasis, beliebig viele Regionen — jede mit eigenem Auftritt.

Ergebnis

Produktiv im Einsatz — live u.a. bei Uri Tourismus, bei Schwyz Tourismus und der Erlebnisregion Mythen. Neue Regionen gehen in Tagen statt Monaten online.

Mehr zur Plattform auf der Produktseite: TPUS — Tourismusportal.

Projekt-Profil

Wie wir dieses Projekt einordnen.

Komplexität 4/5

Mehrmandantenfähige Plattform mit drei automatisierten Daten-Integrationen, die laufend synchron gehalten werden.

Automatisierungsgrad 4/5

Touristische Inhalte werden automatisch importiert und aktuell gehalten — die Region pflegt nur ihre eigenen Inhalte.

Einzigartigkeit 4/5

Ein eigenständiges Produkt statt Einzelprojekt: Skalierung über viele Regionen mit einer Codebasis.

Techstack & Technologien
Beteiligte Randsysteme
  • discover.swisstouristische Stammdaten
  • GuidleEvents & Veranstaltungen
  • OutdooractiveTouren & Routen
Aus dem Code

Ein Blick auf ein kniffliges Detail.

PHP modules/tpus/jobs/PushToDiscoverSwiss.php — synchronisiert Inhalte als Queue-Job nach discover.swiss (base64-Event in eine Azure Storage Queue).
private function pushToQueue(string $id, string $action)
{
    // Azure Storage credentials
    $connectionString = App::env("DISCOVER_SWISS_QUEUE_CONNECTION_STRING");
    $queueName = "craft-cms";

    // Message payload
    $timestamp = date("c"); // ISO 8601 format
    $messageData = [
        'id' => $id,
        'timestamp' => $timestamp,
        'action' => $action
    ];
    $messagePayload = base64_encode(json_encode($messageData));

    try {
        // Create queue client
        $queueClient = QueueRestProxy::createQueueService($connectionString);
        \Craft::info("Pushing $id to queue \"$queueName\" ... ", __METHOD__);

        // Send message to queue
        $result = $queueClient->createMessage($queueName, $messagePayload);
    } catch (ServiceException $e) {
        \Craft::error("Error sending message: " . $e->getMessage(), __METHOD__);
    }
}
Architektur

Wie das System aufgebaut ist.

Architektur — TPUS — eine Plattform, viele touristische Regionen.
Einblicke
Ähnliches Vorhaben?

Lass uns über dein Projekt reden.

Erzähl uns kurz von deinem Vorhaben — wir kommen schnell auf den Punkt.

„Vom Polymechaniker zum Programmierer — bauen ist bauen, nur das Material wechselt."
Raphael Minder Raphael Minder Entwicklung, Programmierung