OpenLinker
OpenLinker keeps orders, inventory and fulfilment in sync across your store, marketplaces, invoicing and shipping. Self-hosted, Apache 2.0.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证ChefoTech Inventory Management is a best platform to manage the inventory
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
PharmaOS — Pharmacy Management & Operations Platform
A ChefoTech product.
A multi-tenant, multi-outlet operating platform for pharmacies: products with batches and expiry, keyboard-first POS, purchases and GRN, credit (Baki), returns, transfers, prescriptions, documents, reports and analytics.查看完整 README ↗A ChefoTech product.
A multi-tenant, multi-outlet operating platform for pharmacies: products with batches and expiry, keyboard-first POS, purchases and GRN, credit (Baki), returns, transfers, prescriptions, documents, reports and analytics.
Status: Phases 0–9, 11 and 12 complete; Phase 10 (hardening) in progress. Every module in the sidebar is live end to end: catalogue, inventory with batches and FEFO, purchases and GRN, keyboard-first POS with credit and held bills, returns and transfers, prescriptions, PDF documents with a drag-and-drop template designer, invoice email, import/export, 33 reports, dashboard, notifications and plans. See docs/PHASES.md for what each phase delivers and what remains.
| Path | What |
|---|---|
apps/api | Node.js + TypeScript REST API (Express 5, Mongoose 9, zod 4, pino) |
apps/web | Next.js App Router frontend (Tailwind v4, Radix primitives, TanStack Query) |
packages/shared | Types, zod schemas, permission catalog, money/quantity helpers shared by both |
docs/ | Architecture, data model, API, security, frontend, edge cases, phases, ADRs |
Requirements: Node 20+, pnpm 10, a MongoDB replica set (Atlas or a local rs0; transactions are required).
pnpm install
cp apps/api/.env.example apps/api/.env # fill MONGODB_URI, JWT_ACCESS_SECRET, (optional) BREVO/CLOUDINARY
cp apps/web/.env.example apps/web/.env.local
pnpm --filter @pharmaos/shared build
pnpm dev # api on :4000, web on :3000
Open http://localhost:3000, click Start free trial, and register your organization. The first user becomes the Owner with a default MAIN outlet and the system roles seeded.
Each organization can connect its own Google Gemini API key under Settings → AI & Gemini. That unlocks a page-aware assistant (English / Hindi / Hinglish), invoice and prescription reading, natural-language reports and reorder suggestions. The key is encrypted at rest, never returned to the browser, and the assistant can only do what the signed-in user can already do; money and stock never move without a confirmation click. Without a key the platform runs exactly as before. Details in docs/PHASES.md (Phase 11) and docs/SECURITY.md.
The marketing site (home, features, solutions, pricing, FAQ, demo, contact, legal) lives in apps/web/src/app/(marketing). PharmaOS is presented as a ChefoTech product. The company details (contact person, phones, WhatsApp, inboxes, offices) and the emblem are defaults in apps/web/src/lib/site.ts; override or hide any of them with the NEXT_PUBLIC_* variables in apps/web/.env.local (see .env.example) — an empty value hides that item. Refresh product screenshots with node apps/web/scripts/capture-screenshots.mjs while the dev servers run.
pnpm typecheck # all packages
pnpm test # shared unit tests + api integration tests (in-memory Mongo replica set)
pnpm lint
pnpm build
orgFilter / outletFilter (apps/api/src/lib/scoped.ts). organizationId always comes from the token, never from the client.mongoose.sanitizeFilter is on globally; server-built operator filters are marked trusted via trustedFilter.requirePermission on the API; the web app only uses them to shape the UI.withTransaction and created through endpoints guarded by idempotent().AuditLog entry.More: docs/ARCHITECTURE.md, docs/DATA-MODEL.md, docs/API.md, docs/SECURITY.md, docs/FRONTEND.md, docs/EDGE-CASES.md, docs/adr/.