尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Pharmacy
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Next.js (App Router, TypeScript, Tailwind) front end for the pharmacy SaaS. Talks to the
Pharmacybackend API (Node.js + MongoDB).
# 1. API (in the Pharmacybackend repo)
npm install && cp .env.example .env && npm run seed && npm run dev # http://localhost:4000
# 2. This app
cp .env.example .env.local # NEXT_PUBLIC_API_URL=http://localhost:4000/api
npm install
npm run dev # http://localhost:3000
The API must allow this origin (CORS_ORIGIN in the API .env, default http://localhost:3000).
| Route | Purpose |
|---|---|
/ | Marketing page: features, multi-branch, online ordering, compliance, pricing, FAQ, demo-request form |
/login, /signup | Staff sign-in (demo accounts listed on the page) and self-service workspace creation |
/app | Owner / manager dashboard across all branches |
/app/pos | Point of sale: barcode, split payments, shifts, hold/recall, receipts |
/app/prescriptions | Capture, pharmacist verification with allergy / interaction warnings, dispensing, labels |
/app/inventory, /app/products | Batch and expiry stock, alerts, receiving, adjustments, recall trace, CSV import, substitutes |
/app/purchasing, /app/transfers | Purchase orders, supplier balances, inter-branch transfers with variance flagging |
/app/register | Append-only controlled-drug register, disposal with witness, inspector CSV export |
/app/orders, /app/rider | Online order review / pack / dispatch, rider mobile view with proof of delivery |
/app/reports, /app/audit | Reports with CSV / print-to-PDF, immutable audit log |
/app/branches, /app/team | Branch licences and details, users with per-branch roles |
/shop/[slug] | Customer portal (demo: /shop/medicare): search, stock per branch, cart, prescription upload, checkout, order tracking |
Navigation adapts to the signed-in role (owner, branch manager, pharmacist, technician, cashier, store officer, accountant, rider, auditor).
/ marketing page, then Try the live demo.[email protected] / Demo@1234: dashboard across three branches, branch licence warning (Kumasi), expiring stock.[email protected]: Prescriptions, open RX-DEMO-001 (patient allergic to penicillin, prescribed Amoxil) and see the warning and override flow. Dispense RX-DEMO-002. Open the controlled-drug register after dispensing RX-DEMO-003./shop/medicare: sign in with any phone number (code 123456), search "malaria", order with delivery. In Online orders record the delivery fee agreed by phone, then approve / pack / dispatch, and deliver as [email protected].[email protected]: open RX-DEMO-004 (uploaded online), type the directions from the photo, then verify.[email protected]: open a shift, sell Panadol (see "Tell the customer" directions), print the receipt.Payments and SMS are simulated in demo mode (see the API README).
/app/pos keeps working without internet: it caches a catalogue snapshot and a service worker (public/sw.js) in the browser, queues
sales in IndexedDB (src/lib/offline.ts), and syncs them when the connection returns (a banner shows what is waiting). Only
non-prescription items can be sold offline. Stock shortfalls found on sync are accepted and flagged on the Sales page.
Visit the till once while online so the catalogue and app shell are cached.
Deploy the API first (see the Pharmacybackend README), then this app.
Vercel (easiest): import the repo, framework Next.js, and set these environment variables before the first build:
| Variable | Value |
|---|---|
NEXT_PUBLIC_API_URL | https://<api-host>/api |
NEXT_PUBLIC_DEMO_MODE | true for a demo deployment (one-click demo accounts on the sign-in page); leave unset for a live pharmacy |
They are baked in at build time, so redeploy after changing them.
Docker:
docker build --build-arg NEXT_PUBLIC_API_URL=https://<api-host>/api --build-arg NEXT_PUBLIC_DEMO_MODE=true -t pharmaone-web .
then docker run -p 3000:3000 pharmaone-web.
After deploying, add the web app's address to the API's CORS_ORIGIN and PUBLIC_WEB_URL, and check:
the sign-in page loads, a demo account signs in (demo mode), and /shop/medicare lists products.
CI (.github/workflows/ci.yml) type-checks and builds on every PR.