尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Hlavica Dřevo — evidence pohledávek a upomínek Interní webová aplikace pro evidenci pouze těch vydaných faktur, které mají odběratelé zaplatit společnosti R. Hlavica s.r.o. Aplikace hlídá splatnost, plánuje e-mailové upomínky, eviduje jejich průběh a poskytuje přehledy pohledávek.檢視完整 README ↗
Interní webová aplikace pro evidenci pouze těch vydaných faktur, které mají odběratelé zaplatit společnosti R. Hlavica s.r.o. Aplikace hlídá splatnost, plánuje e-mailové upomínky, eviduje jejich průběh a poskytuje přehledy pohledávek.
viewer, accounting, admin,OCR běží lokálně v serverové funkci pomocí Tesseract.js. Textová PDF se čtou přímo, skenovaná PDF a obrázky se zpracují lokálním česko-anglickým modelem. Dokument ani jeho obsah se neposílá do externí AI služby a OCR nevyžaduje žádný API klíč. Když rozpoznání selže, dokument zůstane bezpečně uložený a účetní může údaje doplnit ručně.
Lokální aplikace vyžaduje nakonfigurovaný Supabase projekt a platný firemní účet:
corepack pnpm install --frozen-lockfile
corepack pnpm dev
Globální instalace pnpm není potřeba. Pokud shell hlásí command not found: pnpm, používejte příkazy přes corepack pnpm, který respektuje verzi uvedenou v package.json.
Aplikace poběží na http://localhost:3000.
supabase/schema.sql.
U již existující databáze místo nového schématu postupně spusťte dosud nepoužité soubory ze složky supabase/migrations.
Podrobný návrh tabulek, vztahů a oprávnění je v supabase/README.md.insert into organizations (
name, ico, dic, registered_address, operating_address, data_box_id,
phone, email, bank_account_czk, bank_account_eur
) values (
'R. Hlavica s.r.o.', '26296039', 'CZ26296039',
'Palackého třída 192/60, Brno-Královo Pole, 612 00',
'Podhradní Lhota 193, Rajnochovice, 768 71',
'87qv26b', '+420 573 500 700', '[email protected]',
'6844160247/0100', '94-2613370257/0100'
) returning id;
insert into organization_members (organization_id, email, role)
values ('UUID_ORGANIZACE', 'EMAIL_PRVNIHO_UZIVATELE', 'admin');
insert into reminder_policies (organization_id, name, is_default)
values ('UUID_ORGANIZACE', 'Výchozí upomínky', true);
E-mail v organization_members ukládejte malými písmeny. Při prvním přihlášení se pozvánka bezpečně sváže s ID uživatele Supabase Auth.
[email protected].https://VAŠE-DOMÉNA/api/webhooks/resend pro události email.sent, email.delivered, email.delivery_delayed, email.bounced, email.complained a email.failed.RESEND_WEBHOOK_SECRET.corepack pnpm install --frozen-lockfile; český a anglický OCR model je součástí balíčků projektu.Zkopírujte .env.example do .env.local a vyplňte:
NEXT_PUBLIC_SUPABASE_URL=https://PROJECT.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_ROLE_KEY=...
RESEND_API_KEY=...
REMINDER_EMAIL_FROM=Splatno <[email protected]>
AUTH_EMAIL_FROM=Splatno <[email protected]>
AUTH_EMAIL_DELIVERY_ENABLED=true
RESEND_WEBHOOK_SECRET=...
EMAIL_MFA_SECRET=nahodny-tajny-retezec-alespon-32-znaku
APP_BASE_URL=https://VAŠE-DOMÉNA
CRON_SECRET=dlouhy-nahodny-tajny-retezec
SUPABASE_SERVICE_ROLE_KEY, RESEND_API_KEY, RESEND_WEBHOOK_SECRET ani CRON_SECRET nikdy nevkládejte do proměnné začínající NEXT_PUBLIC_ a necommitujte .env.local.
Site URL,https://VAŠE-DOMÉNA/auth/callback mezi povolené redirect URL,organization_members,@hlavica.cz, které zároveň existují v organization_members,organization_members,V režimech development a test aplikace kvůli lokálnímu testování přijme i platný e-mail mimo @hlavica.cz. Produkční sestavení omezení vždy znovu vynutí; uživatel však i při vývoji musí mít odpovídající záznam v organization_members.
Aplikace vždy vyžaduje skutečně nakonfigurovaný Supabase projekt (proměnné NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY) — bez něj selže i lokální vývoj (fail-closed), žádný demo režim s ukázkovými daty neexistuje.
[email protected], určený pro testování a opravy aplikace; konfigurovatelný seznam výjimek aplikace nepoužívá.vercel.json volá každé ráno v 06:00 UTC trasu /api/cron/check-due. Vercel odešle CRON_SECRET jako Bearer token. Před ostrým provozem ověřte, že zvolený tarif podporuje požadovanou četnost a délku běhu.
Prvotní upload dokumentu nejde přes Vercel Function: prohlížeč jej přenese podepsaným jednorázovým tokenem přímo do soukromého Supabase Storage a API následně ověří jeho skutečný obsah. Chráněná OCR route ověřený dokument serverově načte a zpracuje lokálně pomocí PDF.js a Tesseract.js.
npm run typecheck
npm test
npm run build
Poté v testovací organizaci proveďte celý scénář: přihlášení, OCR z PDF i fotografie, kontrola předvyplněných údajů, vytvoření faktury, změna splatnosti, testovací odeslání na interní adresu, ověření doručovacího webhooku, import bankovní platby se shodným VS, kontrola úhrady a historie a export reportu.
server-only.service_role.Před přepnutím DNS a zahájením ostrého provozu:
supabase/README.md,organization_members nejsou adresy mimo @hlavica.cz,npm run typecheck, npm test a npm run build v čistém CI prostředí.