Přeskočit na hlavní obsah

Technická architektura

Zdroj

Vychází z architektonického schématu od Patrika (Perfect System), whiteboard brainstormingu a schema.md. Kompletní raw data: context/analysis/architecture-real.md.

Přehled systémů

#SystémTechnologieRole
1DatoCMSHeadless CMS (SaaS)Content management — vlastní instance per portál
2PORTALNext.js 16BFF vrstva — web + REST API pro APP + sync skript
3ColosseumBackend (proprietární)Hlavní ticketingový systém — dvě API (SOAP + JSON)
4APPReact Native (pravděpodobně)Mobilní aplikace — předmět tendru
5ElasticElasticsearchFulltext vyhledávání
6Notification ServerDedikovaná službaPush notifikace — auto triggery + marketing webhooky
7FirebaseFCM (Google)Doručování push notifikací na zařízení

Diagram datových toků


Datové zdroje per doména

DoménaZdroj datProtokolPříklady dat
Program / AkcePORTAL (cache z DatoCMS)RESTSeznam akcí, detail, filtry, doporučené, galerie
Pořadatelé / MístaPORTAL (cache z DatoCMS)RESTDetail pořadatele, venue, GPS
Mediální obsahPORTAL (cache z DatoCMS)RESTObrázky, video, texty, credits
VyhledáváníPORTAL → ElasticRESTFulltext výsledky
Seat map / SálCoreAPI přímýJSONSedadla (x1,y1,x2,y2), sekce, stavy
KošíkCoreAPI přímýJSONVstupenky, balíčky, vouchery, fees, services
ObjednávkyCoreAPI přímýJSONOrder (pre-payment), storno, obnovení
PlatbyCoreAPI přímýJSONPayment URL, ověření stavu
Prodeje / WalletCoreAPI přímýJSONSale items, barcodes, e-tickets
DokumentyCoreAPI přímýJSONE-vstupenka, e-voucher, e-účtenka
Účet / AuthCoreAPI přímýJSONLogin, registrace, OAuth, profil
NotifikaceFirebase FCMPushTransakční + marketingové push

Popis systémů

Colosseum — hlavní backend

Colosseum vystavuje dvě oddělená API:

APIProtokolÚčelKonzument
SOAP APISOAP/XMLSynchronizace představení a pořadatelů do DatoCMSPORTAL (sync skript)
JSON API (CoreAPI)REST/JSONZákaznická zóna — 70 endpointů, 13 doménAPP (přímý přístup)

JSON API = coreapi_online.json (OpenAPI v17.0.0.0), JWT autentizace per session.

Podrobný přehled endpointů: CoreAPI integrace.

PORTAL — BFF vrstva (Next.js 16)

  • Sync skript: Synchronizuje data z Colossea (SOAP) do DatoCMS
  • REST cache: Vystavuje cachované endpoints pro APP — program, konfigurace, obsah
  • Web frontend: Programový obsah pro webový portál
  • Elastic integrace: Indexace + fulltext query
  • Požadavek: AI-ready codebase (rules, skills, AGENTS.md)

APP nikdy nevolá DatoCMS přímo. Veškerý programový obsah jde přes PORTAL REST cache endpoints, aby se šetřily DatoCMS API cally.

DatoCMS — content management

  • Headless CMS — vlastní instance per portál
  • Přijímá synchronizovaná data z Colossea (přes PORTAL sync skript)
  • GraphQL API pro PORTAL
  • Webhooky pro Notification Server (marketingové notifikace)

Notification Server

Dedikovaná služba pro push notifikace s vlastní databází (uživatelé + FCM tokeny).

Dva zdroje triggerů:

ZdrojTypPříklady
ColosseumAutomatické (AUT.)Zrušení akce, transakční potvrzení, změna
DatoCMSMarketingové (webhooky)Nová akce, slevová kampaň, doporučení

Cílení: per-uživatel, per-zařízení, broadcast, nebo skupinové (pravidlo).

Firebase (FCM)

Firebase Cloud Messaging — delivery vrstva pro push notifikace. Device subscription management.

APP — mobilní aplikace

AspektDetail
TechnologieReact Native (pravděpodobně — frontend tým)
RepositoryVlastní repo (ne od dodavatele)
AI-readyRules, skills, dokumentace pro AI
CI/CDBuild + deployment do App Store a Google Play

Komunikuje se třemi systémy:

  1. PORTAL (REST) — programový obsah, vyhledávání
  2. CoreAPI (JSON) — zákaznická zóna (login, košík, platby, wallet)
  3. Notification Server (REST) — registrace FCM tokenu

Integrace třetích stran

SlužbaÚčelStav
DatoCMSContent management (per portál)Existující
ElasticsearchFulltext vyhledáváníExistující
Firebase (FCM)Push notifikace deliveryExistující
Apple PayMobilní platba (PaymentType.ApplePay)Potvrzeno (CoreAPI)
Google PayMobilní platba (PaymentType.GooglePay)Potvrzeno (CoreAPI)
OAuthApple ID, Google, Facebook loginPotvrzeno (CoreAPI)
Platební brányGPWebPay, GoPay, ČSOB eAPI, Comgate, PayPalKonfigurovatelné (CoreAPI)
Benefit kartyPluxee, Edenred, BenefitPlus, BenefityVolitelné (CoreAPI)
Zásilkovna / BalíkovnaFyzické doručení vstupenekVolitelné (CoreAPI)

Datové toky — vizualizace

Programový obsah

Colosseum (SOAP API) → PORTAL sync skript → DatoCMS → PORTAL (GraphQL) → Next.js cache → APP (REST)

Zákaznická zóna

APP ↔ Colosseum JSON API (CoreAPI) — přímá obousměrná komunikace

Vyhledávání

PORTAL → Elasticsearch (indexace) + APP → PORTAL REST → Elasticsearch (query)

Push notifikace

Colosseum (AUT. triggery) → Notification Server → Firebase → APP
DatoCMS (webhooky) → Notification Server → Firebase → APP
APP → Notification Server (registrace FCM tokenu)