Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
TRENDOW는 판매를 주방, 레시피, 재고, 구매, 직원, 현금, 세금과 하나의 시스템으로 연결해 인터넷 없이도 완전 작동합니다
بيعة واحدة، تسعة آثار. يربط TRENDOW المبيعات بالمطبخ والوصفات والمخزون والمشتريات والموظفين والنقدية والضريبة في نظام واحد — عربي بالتصميم، ويعمل كاملًا دون إنترنت.
비즈니스TypeScript · CSSGitHub @AhmedShantti온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.