JiriUhlirandClaude Fable 5.1 0ae9dab1d4 Ticket jde uzavrit, komentare jsou videt, zakaznik bez soudu, Dashboard misto Portalu
Karta Resitel ma tlacitko Uzavrit ticket a Znovu otevrit; meni jen priznak
closed, text stavu zustava a meni se v poli Stav nezavisle.

Komentar je vlastni druh radku logu (kind comment) s autorem; detail ma
sekci Komentare se seznamem (jmeno, cas, text) a formularem, log ho ukazuje
s autorem. Test tests/data/comments.test.ts.

Sekce Zakaznik jen popisuje: pryc odznak "nedohledan", varovne zbarveni,
text o CRM a garantovi i zvyrazneni v tabulce a na karte; ID v CRM jen
kdyz existuje.

Uzivatelske texty: Portal a Prehled -> Dashboard (zalozka Prehled v Lidech
je Souhrn), v auditu "odepreni" -> "zamitnute pokusy".

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 07:56:55 +02:00
2026-07-31 14:42:26 +00:00

csbot-prototype

Web a klientsky portal firmy zamerene na automatizace, voiceboty, integrace, dashboardy, tickety a incident management.

Jedna aplikace v jednom containeru: Express obsluhuje API i zbuildovanou React aplikaci. Bezi v AppFactory za reverse proxy na /apps/<app-id>.

Rychly start

npm install
npm run build
npm start

Aplikace nasloucha na 0.0.0.0:3000.

Lokalni vyvoj s hot reloadem (API na 3000, web na 5173):

npm run dev

Povinne endpointy

Cesta Ucel
/health Health check pro AppFactory, vraci 200
/docs Swagger UI
/openapi.json OpenAPI definice

Verejne pres proxy jako /apps/<app-id>/health a /apps/<app-id>/docs.

Demo prihlaseni

E-mail Heslo Role
admin@automia.cz demo1234 interni spravce
klient@firma.cz demo1234 klient

Environment variables

Promenna Povinna Vychozi Popis
PORT ne 3000 Port containeru, urcuje AppFactory sablona
ROOT_PATH ne prazdne Prefix proxy, napr. /apps/csbot-prototype
JWT_SECRET ano v produkci - Podpis tokenu, bez nej aplikace nenastartuje
JWT_EXPIRES_IN ne 8h Platnost tokenu
PUBLIC_ORIGIN ne prazdne Verejna domena pro absolutni adresy webhooku
CORS_ORIGIN ne localhost Povolene originy, jen pro lokalni vyvoj
BRAND_NAME ne WorkNuke Nazev produktu v titulku Swaggeru a OpenAPI

Klient je staticky soubor, takze runtime promenne containeru do prohlizece nedosahnou. Nazev znacky si bere z VITE_BRAND_NAME pri buildu, jinak z vychozi hodnoty v web/src/config/brand.ts.

Secrets se nikdy nelogují ani neukladaji do kodu.

Skripty

Prikaz Co dela
npm run build Zbuilduje server i web do dist/
npm start Spusti zbuildovanou aplikaci
npm run dev Vyvoj s hot reloadem
npm run typecheck Kontrola typu bez generovani vystupu
npm run lint ESLint nad serverem, webem a skripty konektoru
npm run format Prettier prepise soubory podle konfigurace
npm run format:check Prettier jen zkontroluje, nic neprepisuje
npm test Testy serveru (vitest) ve slozce tests/

Skripty konektoru (vykonna cast sluzeb) jsou obycejny JavaScript ve slozce connectors/, do buildu se nekompiluji, jen kopiruji.

Dokumentace

Podrobnosti jsou ve slozce documentation/. Pred upravou projektu staci precist ji, neni nutne prochazet cely kod.

Pravidla pro AI asistenty a nastroje jsou v AGENTS.md.

S
Description
No description provided
Readme
2.8 MiB
Languages
TypeScript 91.8%
JavaScript 6.4%
HTML 1.5%
CSS 0.3%