restaurant/docs/index.md
Padreug 42a8b08a5b docs: Obsidian-style vault under docs/
Add a navigable Obsidian vault as the project's first-class
technical documentation. Notes cross-reference with [[wikilinks]];
docs/index.md is the Map of Content.

New notes:
  index.md             MOC, entry point
  architecture.md      what the extension owns vs what lives outside
  data-model.md        entity-by-entity schema reference
  menu-tree.md         the arbitrary-depth tree concept
  order-flow.md        state machine + invoice listener + print
  nostr-layer.md       kinds 0/30402/5/1059, signing, t-tags
  api-reference.md     endpoint catalog by audience
  cms.md               Vue 3 + Quasar 2 UMD conventions, q-tree
  webapp-integration.md  multi-restaurant cart pattern + atomicity
  glossary.md          domain terms

Existing notes (kept as-is):
  adr-0001-menu-tree.md  the storage choice rationale
  design-conversation.md trimmed transcript

README.md adds a Documentation section pointing at docs/index.md
with the headline note list. Each note links to ~3-5 others; the
vault forms a connected graph.

A project-level memory rule (saved outside the repo) commits us to
keeping these docs in sync as the code evolves: any commit that
materially changes schema, API, order flow, Nostr surface, CMS
conventions, or webapp integration must update the relevant note(s)
in the same commit.
2026-05-09 07:11:06 +02:00

1.8 KiB

Restaurant extension — docs

Map of Content for the restaurant LNbits extension.

Treat this folder as an Obsidian vault: notes use [[wikilinks]] to cross-reference. Open the folder in Obsidian (or any markdown editor that resolves bare-name links) for the full graph.

Start here

  • architecture — what the extension is and how it sits inside LNbits, alongside the customer webapp and Nostr.
  • glossary — domain terms used throughout the docs.

Concepts

  • data-model — every table, every relationship.
  • menu-tree — the arbitrary-depth menu structure (capped at 4 levels), where items can attach to any node.
  • order-flow — the order state machine, the invoice listener, and the kitchen pipeline.
  • nostr-layer — what we publish to Nostr (kind 0, kind 30402, kind 5) and what we listen for (kind 1059, scaffolded).

Surface

  • api-reference — REST endpoints organized by audience (public read, customer order placement, owner CRUD).
  • cms — the operator UI: Vue 3 + Quasar 2 UMD conventions, template structure, q-tree menu builder.
  • webapp-integration — how the AIO webapp aggregates multiple restaurants into a single cart and pays each one's invoice.

Decisions

  • adr-0001-menu-tree — why an adjacency list with materialized path, not a closure table or ltree.

Process

  • design-conversation — trimmed transcript of the design discussion that produced the initial scaffold. Keep for rationale that didn't make it into commit messages.

Maintenance

This vault is the project's first-class technical documentation. Every commit that changes the surface listed in architecture or the rules above must update the matching note(s) in the same commit. Stale docs are worse than no docs.