尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗The staff portal, platform-admin area and public pages for the ERP. Next.js 16 (App Router) · React 19 · TypeScript · Tailwind v4.
The look (design tokens, shell, components in src/components/ui) was taken from the reference UI; all screens and data access are ERP-native and talk to
the backend's /api/v1/* (staff) and /api/platform/* (DAAP platform admin) endpoints.
This Next.js version differs from what many tools and docs assume. Before changing framework-level code, read the bundled docs in
node_modules/next/dist/docs/(seeAGENTS.md).
npm install
npm run dev # http://localhost:3000
The backend must be running (default http://localhost:8000); override with NEXT_PUBLIC_API_BASE_URL.
Sign in at /portal/login with company code + email + password (a tenant is created by a platform admin in the separate shopconnect-admin app).
| Area | Route | Backed by |
|---|---|---|
| Dashboard | /portal/dashboard | orders + low-stock inventory |
| Orders (+ detail: fulfil, cancel, record payment, collect COD, bind IMEIs) | /portal/orders | /api/v1/orders, /payments |
| Products (+ receive stock) | /portal/products | /api/v1/products, /inventory |
| Customers (+ activity timeline) | /portal/customers | /api/v1/customers |
| Sales channels: Website · POS · WhatsApp (+ API keys) | /portal/channels/{online,pos,whatsapp} | orders by channel, /api/v1/channel-clients |
| Analytics / Reports | /portal/analytics | orders (revenue by channel / branch / day) |
| Procurement: suppliers (+ statement, pay), requests, purchase orders (approve, receive goods with freight & IMEIs, return) | /portal/procurement | /api/v1/purchase-*, /suppliers, /goods-receipts |
| Finance: overview, expenses, GST tax invoices, gateway reconciliation, journal & period lock | /portal/finance | /api/v1/finance/* |
| Financial reports: P&L (by branch / channel), branch × channel, balance sheet, GST, product margin, aging | /portal/analytics → Financial reports | /api/v1/finance/reports/* |
| Settings, Team & Access, Roles & Permissions, Activity log, Website Storefront | /portal/settings/* | tenant, users, roles, audit-logs, channel keys |
Not built yet (shown in the sidebar, but say so on the page): WhatsApp Inbox, WhatsApp Automation, Discounts — they depend on later backend phases.
Growth is listed but disabled. Workforce (Attendance, Check-in/out, My Leave, Holidays, Team Attendance, Leave Requests) runs on the ERP's
/api/v1/attendance and /api/v1/leave; rules live in Settings > Attendance and holidays. Plan: ../docs/attendance_leave.md. Portal only --
the till has no attendance.
src/lib/erp.ts — typed API helper (erp(), useErpQuery()), money helpers (formatMoney, toMinor: amounts are integer minor units), channel metadata
(UI labels Website / POS / WhatsApp for the API codes online / pos / whatsapp).src/lib/staffAuth.ts — sign-in, silent token refresh, useStaffSession(), and hasPermission() which maps sidebar pages onto the API's module:action permissions.
Hiding a menu item is a convenience only; the server enforces every permission and branch scope.useSyncExternalStore (src/lib/useStorageValue.ts), not effects, so server and client markup always agree.Product reviews now appear in ERP Feedback with product/customer/order details and branch/rating filters. See Product reviews for eligibility, API contracts and testing.
Customer store-credit balances remain available at /api/v1/customers/{id}/store-credit for refunds and payment redemption.