Case Study · OJ Destination

Von einzelnen Ortsseiten zur strukturierten Reiseplattform

OJ Destination entstand für ein Reiseportal mit vielen miteinander verbundenen Orts- und Reisedaten. Statt Länder, Regionen, Destinationen, Inseln und Strände als lose Joomla-Beiträge zu pflegen, wurde ein eigenes Datenmodell mit Taxonomien, Relationen, Features und Import-/Export-Pipeline aufgebaut.

PlattformJoomla
DatenmodellLänder · Regionen · Destinationen · Inseln · Strände
DatenwegeCSV · JSON · API
SEOEigene Inhaltstypen · Sitemaps · Metadaten
Projektstart

Ausgangslage

Ein wachsendes Reiseportal benötigt mehr als statische Inhaltsseiten. Orte stehen in Beziehungen, teilen Merkmale, brauchen filterbare Taxonomien und sollen aus mehreren Quellen importiert sowie SEO-fähig veröffentlicht werden.

Hierarchy

Geografische Hierarchie

Land, Region, Destination, Insel und Strand müssen fachlich konsistent miteinander verbunden sein.

Features

Dynamische Merkmale

Ausstattung und Eigenschaften sollen je Inhaltstyp unterschiedlich sein, ohne ständig neue Datenbankspalten einzubauen.

Import

Große Datenmengen

CSV-, JSON- und externe Quellen müssen idempotent und nachvollziehbar importiert werden können.

SEO

Viele öffentliche Seitentypen

Jede Entität benötigt eigene URLs, Metadaten, Listen und Sitemap-Ausgabe.

Architektur

Die technische Struktur

Entities

Jeder fachliche Inhaltstyp besitzt eine eigene Tabelle und eigene Verwaltungslogik.

Taxonomy

Feature Groups, Features und Taxonomien bleiben dynamisch und können typabhängig verwendet werden.

Relations

Beziehungen zwischen Destinationen und weiteren Entitäten werden explizit statt über Freitext modelliert.

Sources

Import/Export und externe Source-Manager bauen auf derselben normalisierten Datenbasis auf.

Entwicklung

Wichtige Meilensteine

0.2–0.4
Geografische Basis

Länder, Regionen und Destinationen bildeten die erste hierarchische Datenstruktur.

0.5–0.8
Types & Features

Destination Types, Features, Feature Groups und Taxonomy erweiterten das Modell dynamisch.

0.9
Relationen

Entitäten konnten fachlich miteinander verbunden werden.

0.10–0.18
Import & Export

CSV- und JSON-Pipelines wurden schrittweise ergänzt und gehärtet.

0.19–0.20
Inseln & Strände

Das Modell wurde um neue eigenständige Reiseentitäten erweitert.

0.5x
External Sources

Source Manager und API-Verbindungstests legten die Basis für externe Datenquellen.

Probleme & Lösungen

Was technisch besonders interessant war

Schema-Migrationen

Während der Entwicklung traten typische Evolutionsprobleme wie fehlende Default-Werte, doppelte Spalten oder geänderte Provider-Felder auf. Sie wurden durch versionierte Migrationen und reale Upgrade-Tests schrittweise bereinigt.

Frontend-Filter

Listenfilter mussten nicht nur UI-seitig sichtbar, sondern serverseitig korrekt an Query und Pagination gekoppelt werden.

SEO-Platzhalter

Dynamische Seitentypen benötigen verlässliche Ersetzung von Platzhaltern in Title und Meta-Daten sowie eigene Sitemap-Ausgaben.

Abnahme

Tests und belastbare Nachweise

Import

Importe wurden mit wiederholten Läufen und bereits vorhandenen Datensätzen getestet, um Duplikate und Schemafehler früh zu erkennen.

API

Externe Source-Endpunkte wurden über Verbindungstests mit HTTP-Status und konfigurierbarem Source Key geprüft.

Entity Rules

Beziehungen wie Destination ↔ Insel ↔ Land/Region werden serverseitig auf Konsistenz geprüft.

Ergebnis

Ein erweiterbares Domänenmodell statt wachsender Beitrags-Sonderlösungen

OJ Destination zeigt, wie ein Joomla-Projekt von einfachen Inhaltstabellen zu einer domänenspezifischen Plattform wachsen kann. Entscheidend war, Entitäten, Taxonomien, Features, Relationen und Datenquellen voneinander zu trennen, damit neue Reisetypen ergänzt werden können, ohne das Grundmodell neu aufzubauen.

Nächster Schritt

Sie planen ein Portal mit vielen strukturierten Datentypen?

Die Architektur von Destination lässt sich auf Reise-, Branchen-, Immobilien- oder andere Verzeichnisprojekte übertragen, bei denen Relationen, Filter und Importe wichtiger sind als klassische Beitragsseiten.