codebros care
Integrace

Mobilní aplikace

Klientská aplikace Codebros Care pro iOS a Android. Přehled webů, dostupnost, zálohy, provedená práce, měsíční reporty a push notifikace při výpadku.

Codebros Care je nativní aplikace pro klienty (iOS a Android, Expo / React Native). Nabízí stejný pohled jako webový portál a navíc push notifikace do telefonu, když web spadne a když ho zase zprovozníme. Jediné, co v ní klient mění, jsou sledované otázky a dotazy; nic se v ní neplatí ani nenastavuje.

Bundle ID: cz.codebros.care. Aplikace mluví se stejným API jako portál (api.care.codebros.cz), pod stejným účtem klienta.

Přihlášení

  • Účty zakládá operátor pozvánkou z adminu, v aplikaci není žádná registrace. Přístupové údaje klient dostane e-mailem při převzetí webu do péče.
  • Přihlášení je e-mailem a heslem přes better-auth. Session drží aplikace bezpečně v systémovém úložišti (expo-secure-store) a posílá ji jako cookie hlavičku.
  • Zapomenuté heslo se řeší přímo v aplikaci. Klient zadá e-mail, API pošle odkaz a ten se přes deep link (codebroscare://obnova-hesla?token=...) vrátí zpátky do aplikace, kde si nastaví nové heslo. Je to stejný účet i stejný mechanismus tokenů jako na portálu, odkaz platí hodinu.
  • Passkey: místo hesla jde použít otisk nebo obličej. Klíč je vázaný na care.codebros.cz (rpID), takže stejný klíč platí i v portálu v prohlížeči. Nativní část řeší react-native-passkeys, ověření běží proti stejným endpointům better-auth jako na webu (/api/auth/passkey/*). Aby systém aplikaci přiznal doménu, servíruje web care.codebros.cz soubory /.well-known/apple-app-site-association a /.well-known/assetlinks.json a aplikace má v app.json associatedDomains. Klíč si klient nastaví v Nastavení.
  • Dokud běží obnova session, drží se splash screen, takže přihlášenému uživateli nikdy neblikne přihlašovací obrazovka.

Aplikace má tři hlavní záložky: Weby, Reporty a Nastavení.

Vztah k webu (portál a admin)

Mobilní aplikace je jedním ze tří klientsky relevantních povrchů nad stejným API:

  • Mobilní aplikace (tento dokument) je nativní forma pro telefon a jako jediná umí push notifikace.
  • Klientský portál (portal.care.codebros.cz, Next.js) je webová obdoba pro klienty: stejná data (weby, dostupnost, zálohy, provedené práce, reporty) v prohlížeči.
  • Admin (admin.care.codebros.cz) je interní web jen pro operátora (klienti, weby, fronta úkolů agentů a jejich dohled), klienti do něj nemají přístup.

Aplikace i portál čtou z jednoho API pod jedním účtem klienta, takže se obsah shoduje. Rozdíl je jen ve formě: telefon navíc s push notifikacemi, portál kdykoli v prohlížeči.

Technická poznámka: aplikace je univerzální Expo projekt (web.output: static), takže se z ní dá vygenerovat i webový build. Klientský web ale primárně obsluhuje portál, ne tento export.

Weby (nástěnka)

Úvodní obrazovka je seznam všech webů klienta s živým stavem. Podporuje tažení dolů pro obnovení (pull to refresh).

  • Jednotlivé weby se zobrazí jako karta: název, hostname, plán, platforma a hosting.
  • Skupiny webů (dvojice frontend + doména, nebo multisite) se seskupí do jedné karty a jejich členové se vypíší pod sebou seřazení podle role: systém, web, náhled, doména.
  • Stavová tečka u každého webu i skupiny ukazuje, jestli je vše v pořádku, nebo běží výpadek. U skupiny svítí, když je v problému kterýkoli člen.
  • Pokud web hlásí nefunkční formulář (z funkčních kontrol), ukáže se u něj štítek „formulář“.
  • Klepnutí na web otevře jeho detail, klepnutí na hlavičku skupiny otevře detail skupiny.

Detail skupiny

Souhrn za celou skupinu webů: seznam členů s rolí a stavem (klepnutím se jde na konkrétní web), vážená dostupnost přes všechny členy za 30 dní, odezva spravované instalace, poslední záloha, počet incidentů, dostupnost po dnech zvlášť pro každý měřený web (domény se neměří) a společný worklog všech členů seřazený od nejnovějšího.

Detail webu

Detail sbalí všechno, co o webu evidujeme, do jedné rolovací obrazovky.

  • Živý stav nahoře: proklikávací adresa webu (otevře se v prohlížeči) a text „vše v pořádku“ / „řešíme výpadek“ podle otevřených incidentů.
  • Dlaždice statistik (2×2):
    • dostupnost za posledních 30 dní v procentech a počet kontrol,
    • průměrná odezva v ms,
    • datum a velikost poslední úspěšné zálohy,
    • počet incidentů za období.
  • Dostupnost po dnech: sloupcový přehled po dnech plus výpis incidentů s časem začátku, případně konce, a popisem (výpadek dostupnosti nebo nefunkční formulář).
  • Zálohy: posledních 10 záloh s datem, velikostí a stavem (v pořádku / selhala / probíhá). Podrobnosti o tom, co a jak zálohujeme, jsou v zálohách.
  • Vyhledávání (jen weby s napojeným Search Console): návštěvy z Googlu, zobrazení, průměrná pozice, návštěvy z Bingu za 28 dní a pět nejsilnějších dotazů aktuálního měsíce.
  • Viditelnost v AI (jen weby s nárokem, viz AI viditelnost): počet zmínek v odpovědích, kolik otázek sledujeme, kolik odkazů na web AI citovala, podíl zmínek, seznam otázek se stavem "zmíněn (enginy)" nebo "zatím bez zmínky" a týdenní vývoj podílu zmínek. Sloupce se dají projet prstem, u každého týdne se ukáže datum a procento.
  • Co pro vás sledujeme: náhled sledovaných AI otázek a SEO dotazů s prokliknutím do editoru, kde si je klient sám upraví (jedna položka na řádek, limity 15 otázek po 5 až 300 znacích a 10 dotazů do 200 znaků). Uloží se přes PATCH /api/sites/:id/search-config, tedy stejnou cestou jako v portálu, a projeví se při příští týdenní kontrole.
  • Provedené práce: chronologický worklog jako markdown. U každého záznamu je čas a autor, kde „automatická údržba“ značí zásah agenta, jinak jméno operátora, a případně strávený čas. Starší záznamy se donačítají tlačítkem.

Reporty

  • Seznam odeslaných měsíčních reportů seřazený od nejnovějšího, s obdobím (např. „červen 2026“), datem odeslání a webem, kterého se týká (nebo „všechny vaše weby“).
  • Klientovi se report zobrazí až po odeslání. Seznam vrací jen metadata, obsah reportu se načte v detailu.
  • Detail vykreslí obsah reportu jako čtecí markdown.

Nastavení

  • Účet: jméno a e-mail přihlášeného uživatele.
  • Upozornění: přepínač push notifikací o výpadcích. Když je oprávnění zamítnuté v systému, aplikace nabídne odkaz do nastavení telefonu.
  • Zabezpečení: změna hesla (vyžaduje současné heslo, nové min. 8 znaků; po změně se ostatní přihlášení odhlásí) a správa passkey: seznam uložených klíčů s datem, přidání dalšího a smazání.
  • Odhlášení: s potvrzením. Před zrušením session se ještě odregistruje push token zařízení.
  • Dole verze aplikace.

Push notifikace

  • Zařízení se po přihlášení (a po zapnutí přepínače) zaregistruje přes POST /api/devices (Expo push token). Odhlášení nebo vypnutí přepínače token odregistruje.
  • Při otevření nebo vyřešení incidentu pošle API push všem zařízením uživatelů daného klienta:
    • výpadek dostupnosti (z monitoringu): „Řešíme výpadek“ / „Vyřešeno“,
    • nefunkční formulář (z funkčních kontrol): „Formulář nefunguje“ / „Vyřešeno“.
  • Jiné než incidentní zprávy neposíláme.
  • Doručování je best-effort přes Expo Push Service. Server ukládá jen anonymní push tokeny, mrtvé tokeny (DeviceNotRegistered) se samy mažou.
  • Klepnutí na notifikaci otevře přímo detail příslušného webu (deep link přes siteId v payloadu).

Co aplikace používá

Autentizace je stejná jako na portálu (better-auth). Klientská data jsou vždy omezená na granty přihlášeného uživatele (celý klient, skupina, nebo jeden web); interní pole webu i skupiny (poznámky, paměť agenta, id monitoru, vazba na předplatné) API klientům nevrací.

EndpointÚčel
GET /api/sites, GET /api/sites/groupsseznam webů a skupin se stavem
GET /api/sites/groups/:iddetail skupiny se členy a jejich stavem
GET /api/sites/:iddetail webu
GET /api/sites/:id/uptime?days=30dostupnost, odezva, denní přehled, incidenty
GET /api/sites/:id/backupshistorie záloh
GET /api/sites/:id/worklogprovedené práce
GET /api/sites/:id/search?days=28metriky z vyhledávačů (404 bez napojení)
GET /api/sites/:id/aividitelnost v AI (404 bez nároku)
GET, PATCH /api/sites/:id/search-configsledované AI otázky a SEO dotazy
GET /api/reports, GET /api/reports/:idodeslané měsíční reporty
POST /api/devices, DELETE /api/devicesregistrace a odregistrace zařízení pro push
POST /api/auth/*přihlášení, změna hesla, odhlášení
/api/auth/passkey/*přihlášení klíčem, registrace a správa passkey

Data se cachují přes TanStack Query (staleTime 30 s), každá obrazovka jde ručně obnovit tažením dolů.

On this page