Horvatti Drywall
Monte o orçamento de gesso e drywall do seu apartamento no Flores de Bragança e feche pelo WhatsApp.
Translation pending
PharmaOS by ChefoTech is pharmacy management software for billing, inventory, batches and expiry, purchases, customer credit (Baki), GST invoices, reports and multi-outlet control, with an optional AI
CommerceTypeScript · JavaScriptGitHub @chefoindiaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
ChefoTech Inventory Management is a best platform to manage the inventory
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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/.