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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Built from the Software Requirements Specification (ROS-SRS-001 v1.0).
Frontend only: no backend, no database, no Python. The running restaurant —
orders, kitchen tickets, stock, the cash drawer — lives in the browser, so
the system can be used rather than only described.
Requires Node 18.18+ (Node 20+ recommended).檢視完整 README ↗Built from the Software Requirements Specification (ROS-SRS-001 v1.0).
Frontend only: no backend, no database, no Python. The running restaurant — orders, kitchen tickets, stock, the cash drawer — lives in the browser, so the system can be used rather than only described.
npm install
npm run dev # http://localhost:3000
npm run build # production build
npm start # serve the production build
Requires Node 18.18+ (Node 20+ recommended).
/pos and declare an opening float. No shift, no sales
(FR-POS-090)./kds in a second tab. It is a second terminal: the ticket is
already there. Hold to bump; the pass releases the order when every
station is done./orders, /inventory/movements,
/finance/cash-sessions, /audit. The sale is in all of them.Two tabs on the same machine sync through localStorage, which is as close
as a frontend-only build can honestly get to the local-network routing in
NFR-REL-003. Reset terminal in the top bar clears the shift and starts
over; the menu, recipes and branches are untouched.
See PROGRESS.md for what is implemented, what is not, and why stock
depletes when a line is fired rather than when the bill is paid.
app/globals.css under @theme)app/layout.tsx:
Space Grotesk for Latin display, Inter for text, Cairo for Arabic on
every surface including headings, JetBrains Mono for requirement tags
and money columnscomponents/motion.tsx — scroll reveal, count-up,
marquee, scroll progress, cursor-tracked card glow. All of it is off
under prefers-reduced-motion, and the reveal falls back to visible
under @media (scripting: none).Terminals — full screen, no console chrome.
| Route | What it does |
|---|---|
/pos | Floor plan, menu, modifiers, courses, discounts, voids, split payment, receipt |
/kds | Station displays, live timers, hold-to-bump, recall, all-day counts, pass |
Console — behind /login.
| Route | What it does |
|---|---|
/dashboard | The eight figures an owner acts on, plus today's live take |
/orders | Every order with its line detail, costs and payments |
/operations/open-orders | What is on the floor now, oldest first |
/operations/tables | Table setup: label, section and seat capacity |
/operations/table-status | Live table occupancy — Available / Occupied / Conflict — from the backend |
/operations/kitchen | The queue, average ticket time, bottleneck station |
/inventory/levels | Live on-hand, what the shift moved, negatives shown |
/inventory/movements | The append-only ledger every balance derives from |
/inventory/waste | True waste separated from staff meals and tastings |
/finance/cash-sessions | Float, drawer operations, expected cash, variance |
/finance/payments | Net by tender, refunds against the same tender |
/audit | Hash-chained trail of every discount, void and refund |
/settings | Switches that change how the terminals behave |
Marketing — the public site.
| Route | What it does |
|---|---|
/ | The one-sale-nine-effects argument, the four numbers, the food-cost drift calculator, differentiators, the competitive landscape, unit economics, module and segment previews |
/modules | All seventeen module codes from SRS §1.5, in three groups |
/flows | Six use cases at step level — UC-POS-01, UC-KDS-01, UC-INV-01, UC-PRC-01, UC-CST-01, with UC-OFF-01 on /platform |
/architecture | Chapters 5, 7, 24, 25, 26: drivers, module rules, extraction path, event catalogue and envelope, domain model and value objects, the order state machine, movement types, patterns and rejected anti-patterns, schemas, partitioning, migrations, backup, API conventions, status codes, error model, endpoints |
/quality | Chapters 27, 28, 29: usability and accessibility, maintainability, observability, portability, test categories, the conformance corpus, quality gates, environments, the pipeline, deployment rules, SLOs, incident severity, cost management |
/segments | The four buyer segments with buying behaviour, and the five personas each hard requirement came from |
/platform | Offline, Arabic and country packs, audit, integrations, architecture and ADRs, performance, scale and availability, the three shipped country packs, security and compliance mapping, and the UC-OFF-01 outage timeline |
/pricing | Three tiers, the comparison matrix, add-ons, tenant lifecycle |
/spec | The reference key: document control, the requirement scheme and module codes, MoSCoW, assumptions, constraints, out-of-scope, glossary, actors, bounded contexts, the fifteen release-blocking scenarios, test pyramid, data volumes |
/contact | Demo request form (client-side only — see below) |
Arabic is the default locale and the layout is authored right-to-left, then mirrored to English — not the reverse. This mirrors FR-LOC-001..005.
content/en.ts defines the core copy and its shape (export type Copy)content/{flows,architecture,quality}/en.ts do the same for the three
long reference chapters; lib/i18n.tsx composes all four into one tar.ts is typed against its English counterpart, so a missing key
is a build error. 2,309 leaf strings, checked in both directions.lib/i18n.tsx holds the language, writes lang/dir onto <html>,
and remembers the choice in localStorageps-*, me-*, border-s,
start-*), so nothing needs flipping by handAdding a third language: create content/fr.ts typed as Copy, add it to
dictionaries in lib/i18n.tsx, and extend the toggle into a picker.
Numbers in the Arabic build render as Arabic-Indic via
Intl.NumberFormat("ar-EG") in components/DriftCalculator.tsx. Switch
the locale string to en-US there if you want Western numerals in Arabic.
app/contact/page.tsx validates locally and then fakes a submit — nothing
leaves the browser. To make it real, replace the window.setTimeout in
onSubmit with a fetch to your CRM, a Next.js route handler, or a form
service. The success and error states are already in place.
components/SaleCascade.tsx). It animates once on
scroll and can be replayed; it renders complete and static under
prefers-reduced-motion.FR-POS-001, NFR-USA-003).
Every claim on the site points at the requirement it came from, which is
also a useful sales artifact — nothing is promised that isn't specified.amber the brand
and money, emerald "this is working", azure platform and
architecture, violet quality and governance, rose loss and risk.-deep is the only weight
that clears 4.5:1 on paper; -wash is a section background and nothing
else.Section sets
data-accent, which defines --a, --a-deep and --a-wash. Everything
inside reads text-a, bg-a-wash, border-a, so one prop recolours a
whole band and no component knows which hue it is wearing.prefers-reduced-motion.rootMargin does the
"wait until it is properly on screen" job at any element height.