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.