← EP21 Internal Docs Podpora21.cz
Solution Design · DS-0002 · v0.1.0

Public Portal and Client Access Layer

draft Authors: david.sorf, claude-sonnet-4-6 Created: 2026-04-10 Updated: 2026-04-10
portal public client tenant landing
Podpora21.cz provozuje veřejný klientský portál pro příjem a správu požadavků na podporu. Nepřihlášený návštěvník vidí statickou landing page s popisem služby a zkráceným formulářem pro rychlé odeslání požadavku. Přihlášený agent/operátor pracuje v helpdesk backendu (/helpdesk). Klient (zákazník EP21) se může přihlásit nebo registrovat přes /portal a sledovat stav svých ticketů. Architektura je single-tenant v první fázi (EP21 jako jediný tenant), připravena na multi-tenant rozšíření přes core_tenant tabulku.
Related docs:
Related tasks:

Typy uživatelů a přístupové cesty

TypPopisPřístupová cestaAutentizace

Anonymní návštěvník

Veřejnost, potenciální klient

/ (landing page)

Nepotřebuje — může odeslat rychlý formulář

Klient (zákazník EP21)

Registrovaný klient se sledováním ticketů

/portal

Login / self-registration

Agent / operátor

Interní pracovník EP21

/helpdesk

Login (podpora21.user)

System admin

IT správce instance

/rbac-admin, /tek

Login + system_admin role

Landing page — nepřihlášený stav (/)

Statická prezentační stránka bez autentizace. Obsah:

HomepagePresenter::renderDefault() — pokud je uživatel přihlášen, přesměruje na /helpdesk (agenti) nebo /portal (klienti). Pokud nepřihlášen, renderuje landing šablonu.

Klientský portál (/portal)

Vstupní bod pro zákazníky EP21. Dvousloupce layout:

Levý sloupec — informační:

Pravý sloupec — akce:

Po přihlášení klient vidí /portal/dashboard — přehled svých ticketů.

Rychlý formulář (Quick Ticket)

Zjednodušený formulář na landing page pro anonymní odeslání požadavku:

Povinná pole: Jméno (varchar), E-mail (email validation), Popis (textarea min 20 znaků)

Volitelná pole: Typ (dropdown: technický problém / fakturace / obecný dotaz)

Behavior:

Implementace: QuickTicketForm v HomepagePresenter, použití existujícího TicketModel::create().

Tenant model (fáze 1 — single-tenant)

V první fázi je podpora21.cz single-tenant instance pro EP21:

Pro multi-tenant rozšíření (fáze 2) viz ADR-0001. V této fázi není implementováno — pouze DB připravenost.

URL mapa

URLPresenter:ActionPřístupPopis

/

Homepage:default

public

Landing page (nepřihlášen) nebo redirect (přihlášen)

/portal

Portal:default

public

Klientský portál — info + login/register

/portal/dashboard

Portal:dashboard

client

Přehled ticketů klienta

/portal/ticket/<id>

Portal:ticket

client

Detail ticketu klienta

/portal/register

Portal:register

public

Registrace nového klienta

/helpdesk

Ticket:dashboard

agent

Agent dashboard (stávající)

/log/in

Log:in

public

Sdílená přihlašovací stránka

Implementační fáze

FázeCoTask

1a

Landing page — statická, s Quick Ticket formulářem

TASK-0342

1b

Portal page /portal — info + login

TASK-0342

1c

Quick Ticket — anonymní odeslání, e-mail potvrzení

TASK-0342

2a

Klientský login (rozšíření stávajícího auth)

budoucí task

2b

Klientský dashboard /portal/dashboard

budoucí task

3a

Tenant seed (EP21) + tenant_id na user tabulce

TASK-0343

3b

Multi-tenant rozšíření (fáze 2)

budoucí task — viz ADR-0001

Omezení a plánovaná vylepšení

Changelog

VersionDateAuthorNote
0.1.02026-04-10david.sorf + claude-sonnet-4-6

Initial draft — landing page, quick ticket form, client portal, tenant model fáze 1.