Popis Projektu


Komplexní obchodní platforma pro Albion Online

Jedná se o rozsáhlou webovou aplikaci postavenou na platformě WordPress, která slouží jako hlavní obchodní a komunitní centrum pro hráče online hry Albion Online. Projekt dalece přesahuje standardní webovou prezentaci a funguje jako plnohodnotná webová aplikace (SPA-like interface) s vlastním ekosystémem pluginů, robustním REST API rozhraním, real-time WebSocket serverem a pokročilou automatizací pro zajištění plynulého a moderního uživatelského zážitku. Cílem projektu bylo vytvořit důvěryhodné, rychlé a uživatelsky přívětivé tržiště řízené komunitou.

Veřejná část webu a tržiště

Pro neregistrované i přihlášené uživatele web funguje jako plnohodnotné tržiště s pokročilými funkcemi pro vyhledávání a prohlížení herních předmětů, které je navrženo pro maximální rychlost a interaktivitu.

  • Živý přehled nabídek: Hlavní stránka a specializované „ticker“ stránky využívají technologii WebSockets (Node.js server) k zobrazování nově přidaných nabídek v reálném čase bez nutnosti obnovovat stránku. Tím je zajištěn okamžitý přehled o dění na trhu napříč všemi herními servery.
  • Dynamické stránky předmětů: Díky vlastním pravidlům pro přepisování URL (Rewrite Rules) jsou pro každý předmět generovány unikátní stránky (např. /market/europe/T4_BAG/). Tyto stránky nejsou standardními WordPress stránkami, ale jsou dynamicky sestavovány a obsahují klíčové moduly:
    • Orderbook: Interaktivní rozhraní pro obchodování mezi hráči, které zobrazuje aktuální nabídky. Umožňuje pokročilé filtrování podle kvality, speciálních vlastností (awakened traits) a řazení podle ceny či data vložení. Veškeré akce jsou řešeny asynchronně pomocí AJAX.
    • Historické grafy cen: Integrace externí herní API pro vizualizaci vývoje cen předmětů pomocí knihovny Chart.js. Uživatelé mohou filtrovat data dle časového období, lokace ve hře a kvality předmětu, což jim poskytuje cenné nástroje pro analýzu trhu.
  • Pokročilé vyhledávání (Omnisearch): Komplexní vyhledávací pole s našeptávačem, které na straně klienta dynamicky filtruje výsledky a umožňuje specifikovat úroveň (tier) a očarování (enchantment) předmětu přímo při psaní, což výrazně zjednodušuje orientaci v tisících herních položek.
  • Vícejazyčná podpora: Web plně podporuje vícejazyčnost. Systém na základě uživatelských cookies automaticky překládá názvy předmětů do preferovaného jazyka, přičemž překlady jsou uloženy a spravovány v databázi pro maximální výkon.

Uživatelský portál a administrační systém

Po přihlášení přes Discord OAuth2 získává uživatel přístup do svého osobního „řídicího centra“, které funguje jako samostatná webová aplikace pro správu jeho obchodních aktivit.

  • Správa nabídek (Dashboard): Uživatelský panel, kde může hráč spravovat své aktivní nabídky – upravovat cenu, množství, poznámky a dokonce i speciální vlastnosti u „Awakened“ předmětů. Dále může prodlužovat platnost nabídek, odstraňovat je nebo je označit jako prodané. Veškeré změny stavu (např. přijetí nabídky jiným hráčem) se díky WebSocketům projeví v reálném čase.
  • Systém nabídek a protinabídek: Uživatelé mohou na existující prodejní a nákupní objednávky reagovat vlastními cenovými nabídkami, což podporuje dynamiku trhu.
  • Komunikační systém (Chat): Plnohodnotný chatovací systém v reálném čase, který podporuje soukromé konverzace i globální chat. Uživatelé si mohou posílat obrázky a hlavně zasílat a přijímat obchodní nabídky přímo v rámci konverzace, což zásadně zjednodušuje obchodování. Systém rovněž zobrazuje online status uživatelů.
  • Verifikace herních postav: Pro zajištění důvěryhodnosti tržiště musí uživatel projít vícestupňovým ověřovacím procesem, který komunikuje s oficiální herní API Albion Online. Proces zahrnuje vyhledání ID hráče, získání statistik o jeho herním postupu (fame) a následnou kontrolu v databázi, aby se předešlo duplicitám a ověření zakázaných účtů.
  • Administrační rozhraní: Pro správce a moderátory byl vytvořen na míru šitý panel v administraci WordPressu, který umožňuje:
    • Správu uživatelů: Přehled všech registrovaných uživatelů, jejich verifikovaných postav a možnost jejich zabanování. Funkce banování automaticky zneplatní všechny aktivní nabídky daného uživatele a zamezí mu v dalším přihlášení.
    • Optimalizaci dat: Nástroje pro jednorázový import a zpracování herních dat z JSON souborů do databáze, hromadné stažení a cachování tisíců ikon předmětů pomocí cURL a jejich následnou kompresi a změnu velikosti pro zvýšení výkonu webu.
    • Správu obsahu a modulů: Administrace vlastních typů příspěvků pro support manuály, changelog a správu tiketů přijatých od Discord bota.

Technické shrnutí a klíčové vlastnosti

  • Architektura: Projekt využívá hybridní architekturu. WordPress slouží jako robustní základ pro správu obsahu a uživatelů (CMS), zatímco klíčové funkce jako tržiště, dashboard a chat jsou postaveny jako moderní webová aplikace s intenzivním využitím AJAX a REST API. Frontend se chová jako Single Page Application (SPA), což minimalizuje nutnost obnovování stránek.
  • Komunikace v reálném čase (WebSockets): Pro zajištění okamžitých aktualizací je nasazen samostatný Node.js server s WebSockets (ws). Komunikace probíhá efektivně: WordPress plugin (PHP) odešle POST request na Node.js server, který následně rozešle zprávu pouze relevantním klientům přihlášeným v daných „místnostech“ (např. `live_listings`, `chat_user_123`), čímž se minimalizuje zbytečný datový provoz.
  • Integrace API:
    • Discord API: Pro kompletní proces přihlašování a registrace uživatelů (OAuth2).
    • Albion Online API: Pro ověřování herních postav a získávání dat pro cenové grafy.
    • Vlastní REST API: Rozsáhlé vlastní API slouží jako páteř celé aplikace. Poskytuje zabezpečené endpointy pro veškerou AJAX komunikaci (chat, správa nabídek) a také pro synchronizaci dat s externím Discord botem (synchronizace uživatelů, aktualizace statistik).
  • Datová struktura: Pro ukládání velkého objemu transakčních dat (nabídky `adv_listings`, `adv_offers`; zprávy `adv_messages`, `adv_conversations`) byla navržena a implementována sada vlastních databázových tabulek. Tento přístup zajišťuje výrazně vyšší výkon a lepší relační integritu než použití standardních WordPress post types.
  • Zabezpečení: Veškerá AJAX komunikace je zabezpečena pomocí WordPress nonces. REST API endpointy určené pro komunikaci s botem jsou chráněny tajným API klíčem v hlavičce requestu. Přístup do administrace je striktně omezen na základě uživatelských rolí a granulárních oprávnění (vlastní role „Moderator“). Přihlašovací stránka do administrace je navíc chráněna pomocí geo-blokace.
  • Automatizace: Systém využívá WP-Cron pro pravidelné a automatizované úlohy údržby, jako je označování expirovaných nabídek, archivace starých záznamů pro udržení vysokého výkonu produkčních tabulek, synchronizace blacklistu z externí databáze a čištění prázdných konverzací.