Vit Busek
← Projekty

srpen 2026

Trader

Obchodní terminál s vymyšlenými penězi: ceny přitékají dvakrát za sekundu a asistent si umí přečíst vaše portfolio a zadat obchody za vás.

Terminál Trader po nákupu pěti akcií AAPL: vlevo watchlist s deseti tickery, uprostřed graf ceny AAPL nad otevřenou pozicí a graf zisku a ztráty za relaci, vpravo návrhy promptů pro asistenta.
Role
Sólo projekt — frontend, backend, infrastruktura
Stack
Next.js, FastAPI, Postgres, SSE, OpenRouter, Docker, Vercel

Co to přináší

Technický návrh

SSE /api/market/streamlitellm (container build)

Klient

  • Next.js 15 (static export)

  • Zustand

  • lightweight-charts

Server

  • FastAPI

    Jedna serverless funkce, api/index.py.

  • app/market

    Deterministické ceny, dva ticky za sekundu.

  • app/llm

Data

  • Postgres

    Přes asyncpg.

Externí služby

  • OpenRouter

    Jen v kontejnerovém buildu.

GET /api/*

asyncpg

  1. Jedna aplikace ve FastAPI, dvě nasazení. Kontejnerový build simuluje ceny přes numpy a odpovídá skutečným modelem; funkce na Vercelu je počítá uzavřeným vzorcem a běží s LLM_MOCK=true. Obě varianty mluví se stejným Postgresem a routy jsou stejné, takže frontend nepozná, ke které z nich se dostal.
  2. SSE, ne WebSockety. Ceny tečou jen jedním směrem. STREAM_MAX_SECONDS je 55, takže se stream vejde do šedesátisekundového limitu funkce na Vercelu.
  3. Frontend je statický export na CDN. Jediné, co vercel.json přepisuje na funkci v Pythonu, jsou cesty /api/*, takže vykreslení stránky nikdy neprochází funkcí.

Demo běží v serverless variantě bez připojené databáze, takže portfolio startuje na 10 000 $ a resetuje se pokaždé, když se instance recykluje.