Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A cross-platform POS, inventory, accounting, production, delivery-platform reconciliation, and AI analytics system for The Sixty’s Gelato & Café in Sulaymaniyah, supporting English, Arabic, and Kurdish.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
The Sixty's Gelato & Café — Books The till, the stock ledger, purchasing to payment, expenses, journals, the period close and the reports for a gelato café in Sulaymaniyah — kept as one set of books that the database posts and proves.檢視完整 README ↗
The till, the stock ledger, purchasing to payment, expenses, journals, the period close and the reports for a gelato café in Sulaymaniyah — kept as one set of books that the database posts and proves.
Live: https://sixties-gelato-cafe.vercel.app. To put this version live, follow
docs/guides/deployment.md. Until then, the site
runs the previous app.
New here? Read the guide to every screen.
NUMERIC, never in floating point.The reasoning is in ADR 0002 and the
formulas in docs/CALCULATIONS.md.
| Layer | Choice |
|---|---|
| App | Next.js 15 (App Router), React 19, TypeScript strict |
| Sign-in | Supabase Auth, cookie sessions via @supabase/ssr |
| Database | PostgreSQL (Supabase): row-level security, posting functions, triggers |
| Input | zod validation; Arabic-Indic digits accepted |
| Tests | Vitest; SQL suites on real PostgreSQL 16 and 17; browser tests (Playwright) through a real PostgREST |
src/app/ Screens (App Router): /pos, /sales, /vendors, /journals, …
src/components/ Screen components (forms, tables, the shell)
src/lib/auth/ Session, role gating, sign-in actions
src/lib/db/ Reads (row-level security decides what comes back)
src/lib/actions/ Writes: each calls one posting function
src/lib/supabase/ Supabase clients; no built-in address or key
src/domain/ The tested specification: money, units, costing, recipes, permissions
supabase/migrations 0001–0017; 0014–0017 are the controls
supabase/seed/ Demonstration master data (examples, not real figures)
tests/ Vitest suites, tests/sql (SQL suites), tests/e2e (browser)
scripts/ test-sql.sh, test-e2e.sh
docs/ Guides, remediation, security, test plan, status
Two environment variables, both required (copy .env.example to .env.local):
| Name | Where to find it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase → Project Settings → API → Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase → Project Settings → API → anon key |
There is no default. Without them the app shows Not configured and touches nothing, so a copy can never write to another business's books by accident. No service-role key is used; the app acts only as the signed-in person.
Prerequisites: Node 20+, and the Supabase CLI or a Supabase project of your own (never the live one).
npm install
supabase start && supabase db reset # migrations + demonstration master data
cp .env.example .env.local # URL http://127.0.0.1:54321; anon key from `supabase status`
npm run dev # http://localhost:3000 → sign in
The seed creates four placeholder people (owner@, manager@, cashier@,
[email protected]) with no logins. Choose First time here? Create your
login with one of those emails. The local stack does not ask for email
confirmation by default, so you can sign in straight away; any email it sends
appears in Inbucket at http://localhost:54324.
npm run verify # formatting, types, lint, unit + contract tests (Vitest)
scripts/test-sql.sh # upgrade rehearsal + SQL suites + concurrency (PostgreSQL 15+)
scripts/test-e2e.sh # the real app in a browser, as every role
The SQL and browser tests create and drop their own databases on the PostgreSQL
server you point them at (PGHOST, PGPORT, PGUSER). They never touch a
deployed project. See docs/TEST_PLAN.md.
All code and data belong to the business owner. A pg_dump moves everything to
any PostgreSQL host; see docs/guides/backup-restore.md.