World Vibe Web
The distributed app store for vibe-coded projects. Browse, discover, and install open-source apps from across GitHub.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證POS wireframe for UT
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A Ramen POS — Interactive Hi-Fi Wireframe
Interactive Hi-Fi wireframe for an A Ramen restaurant POS system. Dual-purpose: dev-handoff spec + stakeholder presentation artifact. Browser-based, no backend — all data is mock/in-memory or localStorage-persisted via Zustand.
Part of the FIP (Food Intelligent Platform) ecosystem.
Open http://localhost:3000 — login with any role using PIN 9999.檢視完整 README ↗Interactive Hi-Fi wireframe for an A Ramen restaurant POS system. Dual-purpose: dev-handoff spec + stakeholder presentation artifact. Browser-based, no backend — all data is mock/in-memory or localStorage-persisted via Zustand.
Part of the FIP (Food Intelligent Platform) ecosystem.
npm install
npm run dev
Open http://localhost:3000 — login with any role using PIN 9999.
npm run dev # Start dev server (localhost:3000)
npm run build # Production build (catches type errors)
npm run lint # ESLint
@theme block in globals.csspersist middleware for cross-route state| Group | Path | Purpose |
|---|---|---|
(auth) | /login | Role selection + PIN entry |
(app) | /table-map, /orders, /order/*, /payment/*, /manager | Staff POS interface with AppShell |
(kds) | /kds | Kitchen Display System — full-screen, no shell |
Full-screen kitchen display at /kds for Kitchen and Manager roles.
| Action | Flow |
|---|---|
| Send single item | Click "ส่งออร์เดอร์" on card → card disappears → toast |
| Send all (by menu) | Sidebar ReplyAll → confirm dialog with affected tables → ยืนยัน |
| Send all (by table) | Table bar ReplyAll → confirm dialog → ยืนยัน |
| View table detail | Click table card → bottomsheet with all orders for that table |
| View menu detail | Click sidebar item → bottomsheet filtered by that menu item |
| Cancel order | POS cancels → card shows "ออร์เดอร์ถูกยกเลิก" overlay → click to update info |
Enable via settings gear dropdown:
The table bottomsheet has a built-in Design A/B toggle in its header:
| Component | File | Purpose |
|---|---|---|
KdsBoard | src/components/kds/KdsBoard.tsx | Main board layout with auto-registration |
KdsTicketCard | src/components/kds/KdsTicketCard.tsx | Single item card (normal + cancelled states) |
KdsItemRow | src/components/kds/KdsItemRow.tsx | Item with color-coded modifier icons |
KdsKpiBar | src/components/kds/KdsKpiBar.tsx | Top KPI stats bar |
KdsSummaryPanel | src/components/kds/KdsSummaryPanel.tsx | Right sidebar with time-grouped aggregation |
KdsTableBar | src/components/kds/KdsTableBar.tsx | Bottom table bar with per-table cards |
KdsTableBottomsheet | src/components/kds/KdsTableBottomsheet.tsx | Table/menu detail bottomsheet (A/B variants) |
KdsSendConfirmDialog | src/components/kds/KdsSendConfirmDialog.tsx | Menu-level send confirmation with table list |
KdsTableSendConfirmDialog | src/components/kds/KdsTableSendConfirmDialog.tsx | Table-level send confirmation |
KdsCancelInfoDialog | src/components/kds/KdsCancelInfoDialog.tsx | Cancel info form (stock deduct + notes) |
KDS store (src/stores/kds.store.ts) — not persisted:
tickets — Active KDS tickets keyed by ticketIdKdsTicket.sentLineIds — Tracks individually sent itemsKdsTicket.cancelledLineIds — Tracks items cancelled from POScompletedTableIds — Prevents re-registration of completed tables| Role | PIN | Access |
|---|---|---|
| Waiter | 9999 | POS app (orders, tables) |
| Cashier | 9999 | POS app (payments) |
| Manager | 9999 | POS app + KDS + manager tools |
| Kitchen | 9999 | KDS only |
npm run build
Deploy to Vercel or any Node.js hosting platform.