Přeskočit obsah

[Název aplikace] — specifikace

Status: draft / spec / in-progress / shipped Verze spec: 0.1 Aktualizováno: YYYY-MM-DD Autor specifikace: [jméno]

1. Cíl a motivace

Co aplikace dělá (1 odstavec): [jaký problém řeší, pro koho]

Proč ji děláme: [byznys / produktový důvod]

Kategorie: [ekonomika, právní, mzdy, sklad, …]

Cílová skupina: [malé firmy, střední, jednatelé, účetní, …]

2. User stories

Hlavní scénáře použití (3–5 nejdůležitějších, formát Jako [X] chci [Y], abych [Z]):

  1. Jako [role] chci [akce], abych [hodnota].
  2. ...

3. UI / UX

Obrazovky

Obrazovka Účel Klíčové prvky
[název] [účel] [tlačítka, tabulky, …]

Diagram nebo seznam přechodů mezi obrazovkami.

Mockupy / screenshoty

Odkaz na Figma / přiložené obrázky / textové wireframe.

4. Datový model

Vlastní DB tabulky

Pokud aplikace nemá vlastní DB tabulky, smaž tuto sekci.

Tabulka Sloupce Účel
<app>_items id, …, created_at

Schéma se nasazuje per-app Alembic migrace (viz docs/spec/per-app-container.md).

S3 prefix struktura

backup-<ico>/apps/<slug>/                     ← per-firma data
  └── <user_id>/...                           ← per-user data v rámci firmy

Sdílená data z hlavního backendu

Které endpointy main backendu aplikace čte (auth, katalog, org, …): - GET /auth/me — identity uživatele - ...

5. Backend API (vlastní)

Pokud má aplikace vlastní backend kontejner (per-app container architektura — viz docs/spec/per-app-container.md), zde jsou jeho endpointy.

Base path: /<slug>/* (routováno gateway na app container)

GET    /<slug>/items                   → seznam položek
POST   /<slug>/items                   → vytvořit
GET    /<slug>/items/{id}              → detail
DELETE /<slug>/items/{id}              → smazat
GET    /<slug>/health                  → health check (povinný!)

Auth: JWT z hlavního backendu, validace přes shared middleware.

6. Klient (desktop app)

Stack: [customtkinter / tauri / electron / cli / …]

Komunikace: - IPC s launcherem (přes AVAX SDK) — session token, theme, lifecycle - REST na vlastní backend /<slug>/* - REST na hlavní backend pro auth/storage tokeny

Lokální data: %LOCALAPPDATA%/Avaxis/apps/<slug>/data/

7. Závislosti

Externí

Služba Použití Kritická?
(např.) ARES API IČO lookup ne, fallback ruční

Interní (jiné AVAX komponenty)

  • Auth (/auth/login, /auth/me)
  • Catalog (/catalog/apps)
  • Storage (/storage/token) — pokud app ukládá do S3
  • Chat — pokud aplikace má integraci

8. Oprávnění a role

Které role mají k aplikaci přístup: - super_admin — vždy - company_admin — ano (default) - user (custom role) — podle pozice / role assignment

Per-feature oprávnění uvnitř aplikace (pokud existují): - <slug>:read — číst data - <slug>:write — měnit data - <slug>:admin — administrace

9. Telemetrie a logging

  • Strukturovaný log do stdout (JSON, vyžaduje per-app container architektura)
  • Klíčové eventy: login, create/update/delete entity, error
  • Metriky: počet uživatelů, počet operací/den, response time p95

10. Acceptance criteria

MVP (verze 0.x — alpha)

  • Klient se přihlásí přes launcher
  • Backend /health vrací 200
  • Základní CRUD nad hlavní entitou
  • Smoke test (pytest)

Verze 1.0 (stable)

  • Plný feature set z User stories
  • Per-app Alembic migrace s downgrade
  • Documentation v docs/apps/<slug>.notes.md
  • CI v Gitea: build + test + publish alpha

Verze 2.0 (budoucnost)

11. Otevřené otázky

  • [otázka která vyžaduje rozhodnutí před implementací]

12. Timeline a status

Fáze Status Cílový termín
Spec ⏳ draft YYYY-MM-DD
MVP YYYY-MM-DD
Beta YYYY-MM-DD
Stable YYYY-MM-DD

13. Související