尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Cheques, party ledgers, receivables, payables and payment management — in one
keyboard-first screen.
React + TypeScript + Firebase (Firestore), offline-first, with a proper
double-entry engine underneath so every figure and report agrees.
Everything happens on one page. Summary cards group into Money, Business
and Cheques; each card filters the register below it.
Inside the register: ↑/↓ move, PgUp/PgDn page, Enter opens details,
Delete reverses, Esc closes. In a form, Enter advances a field,
Shift+Enter goes back, and Enter on the last field saves.檢視完整 README ↗Cheques, party ledgers, receivables, payables and payment management — in one keyboard-first screen.
React + TypeScript + Firebase (Firestore), offline-first, with a proper double-entry engine underneath so every figure and report agrees.
Everything happens on one page. Summary cards group into Money, Business and Cheques; each card filters the register below it.
| Key | Action |
|---|---|
F1 | Sale |
F2 | Purchase |
F3 | Cash Received |
F4 | Cash Paid |
F5 | Cheque In (PDC received) |
F6 | Cheque Out (PDC issued) |
F7 | Cheque Transfer (endorse to another party) |
F8 | Ledger |
F9 | Search |
F10 | Reports |
Inside the register: ↑/↓ move, PgUp/PgDn page, Enter opens details,
Delete reverses, Esc closes. In a form, Enter advances a field,
Shift+Enter goes back, and Enter on the last field saves.
Every action posts balanced double-entry lines sharing one transaction id. Balances are always replayed from the ledger — never stored as a mutable total — so the Cash Book and the reports cannot disagree.
src/lib/pdcEngine.test.ts locks these rules down with 40 tests.
29 reports across five groups — Financial, Trading, Cheques, Ledgers, Activity — each rendering a designed PDF with a branded header, KPI cards, native vector charts (donut, comparison, trend), status pills and page numbers.
Headline reports: Complete Cash Book, Profit & Loss, Balance Sheet.
npm install
npm run dev # http://localhost:5173
npm run build # production build
npm test # 144 tests
Login PIN: 4444
Copy .env.example to .env and fill in your own Firebase web config:
VITE_FIREBASE_API_KEY=…
VITE_FIREBASE_AUTH_DOMAIN=…
VITE_FIREBASE_PROJECT_ID=…
VITE_FIREBASE_STORAGE_BUCKET=…
VITE_FIREBASE_MESSAGING_SENDER_ID=…
VITE_FIREBASE_APP_ID=…
With the keys blank the app runs on local mock data — nothing is written to
a real database. Deploy firestore.rules before using live Firestore, or every
write will fail on permissions.
⚠️ Security note. There is currently no user authentication: the PIN only selects a workspace and lives in the client bundle, and
firestore.rulesallows open read/write. Do not put real accounting data behind a public URL until Firebase Auth and scoped rules are added.
npm run electron:dev # dev
npm run electron:build # Windows installer
React 18 · TypeScript (strict) · Vite · Zustand · Firebase Firestore · jsPDF + autotable · vitest