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.
Translation pending
Business-management system: POS, inventory, production, delivery platforms, accounting.
Translation pending
BusinessTypeScript · PLpgSQLGitHub @danarahmedOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.