尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A business-tracking app for freelancers and small businesses in Austria — income/expense tracking, VAT (UVA) reporting, invoicing, and industry-specific modules (Transport/Fleet, Retail/Inventory), plus a read-only companion portal for accountants.
Live: https://smartac-wine.vercel.app
A single-file, no-build, client-side web app. There is no backend and no build step — index.html is the entire application (HTML, CSS, and JS in one file), loaded directly by the browser or served as-is by Vercel.
Two HTML files make up the product:
index.html — the main app: transactions, invoices, clients/suppliers, employees, calendar/notes, and (depending on the business's selected type) Fleet or Inventory. This is what business owners use.buchhalter.html — German-only, read-only accountant portal in the Trabis design (client list → year/month view with invoices → employees' hours & leave → government entities → Steuerberater-Paket). All data goes through one BuApi object: today it reads the same browser's storage as the app; set window.BU_API_BASE to talk to the server instead (contract in ACCOUNTANT_SHARING.md).| File | What it is |
|---|---|
trabis.html | The current app (served at /). Full working app with the new home picker, month screen, Government Entities, Projects and the timesheet/vacation sheet. Same smartac_* storage keys as before. |
index.html | The previous stable app, kept untouched and reachable at /index.html. |
css/trabis.css, js/*.js | The current app's styles and code, split out of trabis.html by area (01-core … 14-system, then 99-boot). Plain global scripts, loaded in order — no build step. 99-boot.js runs last (language + saved notifications). jsPDF comes from cdnjs (same 2.5.1 that used to be inlined). |
preview.html | Static design mockup with demo data only, reachable at /preview.html. |
buchhalter.html | Read-only accountant portal (BuApi: local storage now, server via BU_API_BASE). |
trabis-package.js | Builds the accountant package (PDF with invoices + Excel + CSV); shared by the app and the portal. |
vercel.json redirects / to /trabis.html (a rewrite does not work because Vercel serves the existing index.html first).
index.html) for PDF export; SheetJS via CDN for Excel exportpackage.json, no build pipeline — the app runs by opening the HTML fileThere's nothing to install or build. Either:
# just open it
open index.html
# or serve it (recommended, so relative paths and the PWA manifest work correctly)
python3 -m http.server 8000
# then visit http://localhost:8000
Everything lives in the browser — there is no server and no database.
localStorage, namespaced per user: keys are prefixed smartac_u_<username>_<key> (see uk() in index.html). All reads/writes go through loadUserData() and save().smartac_receipts (expense receipts), smartac_empdocs (employee documents), smartac_fleetdocs (vehicle documents). Created via a shared makeFileStore(dbName) factory.btoa, not real encryption — this is a prototype auth scheme) live under smartac_accounts.⚠️ IndexedDB gotcha: indexedDB.open(name, version) creates the database if it doesn't exist yet, even from a read-only caller. buchhalter.html has to open these databases without ever accidentally triggering their onupgradeneeded (which would leave an empty, uninitialized store that the main app can then never properly create). If you touch the IndexedDB code in either file, preserve the existence-check-first pattern in buchhalter.html's idbGet()/dbExists().
Because everything is localStorage/IndexedDB, data is per-browser, per-device — there's no sync between devices. That's also why buchhalter.html only works from the same browser the business data was entered in.
Set once at registration (state.businessType, editable later from Settings → Account). Gates which extra modules show up in navigation:
| Type | Unlocks |
|---|---|
general | Base app only |
transport | Fleet (vehicles, maintenance log, document expiry alerts, depreciation linked to Assets) |
retail | Inventory (products, stock levels, low-stock alerts, quantity auto-adjusts on income/expense) |
restaurant, construction, medical | Selectable in onboarding, but no dedicated module yet — planned for v2.0 |
Auto-deploys via Vercel on every push to main. There's no CI/build step — Vercel just serves the static files.
See TODO.md for the phased plan (current phase, what's done, what's deferred to the Cloud/v2.0 phase, and why).
Bringing on a backend developer for the Cloud (v2.0) phase? See BACKEND_HANDOFF.md — what's already set up (Supabase schema, RLS, Auth, Storage buckets), what's still client-only, and the Supabase-vs-own-server tradeoffs.
Proprietary — Smartordi OG. Not licensed for reuse.