ClinicPro – Multi-tenant Clinic & Practice Management SaaS (Next.js + MongoDB)

Self-hosted clinic SaaS: patients, appointments, live queue, EMR & e-prescriptions, lab, pharmacy, billing, HR and a patient portal, with 9 roles, 4 languages (RTL) and strict tenant isolation.

by DEV3 TechnologiesVerified Author(0) 0 sales 0 viewsUpdated 22 Oct 2026
ClinicPro – Multi-tenant Clinic & Practice Management SaaS (Next.js + MongoDB) — preview 1
1 / 7

ClinicPro is a self-hostable, multi-tenant SaaS for clinics and medical practices, built by DEV3 Technologies on Next.js 15 (App Router + Server Actions) and MongoDB. One installation serves many clinics; each clinic has its own staff, branding, display currency and language, plus its own patient portal, self check-in kiosk and waiting-room display.

Try it: the live demo is read-only and has one-click logins for every role (Clinic Admin, Doctor, Nurse, Receptionist, Accountant, Pharmacist, Lab Technician, Patient and Super Admin).

The clinical workflow, end to end

  • Patients – MRN sequence, duplicate detection, allergies and chronic conditions, insurance, documents and a visit timeline. National ID, policy number and clinical notes are encrypted at rest (AES-256-GCM).
  • Appointments – doctor schedules with breaks and leave, a slot engine, day/week/list calendar and walk-ins. Double-booking is blocked by a unique partial index in MongoDB.
  • Live queue – daily tokens, nurse vitals, a drag-and-drop patient-flow board and a full-screen waiting-room display.
  • EMR & e-prescriptions – autosaving consultation workspace with ICD-10/ICD-11 search, prescription PDFs with QR verification and signed finalisation with addenda.
  • Laboratory – test catalogue, a drag-and-drop result-template builder with sex/age reference ranges and critical limits, and a sample → result → verify → publish workflow.
  • Pharmacy & inventory – First-Expiry-First-Out dispensing across batches, OTC counter sales, low-stock and expiry alerts and a stock ledger.
  • Billing – invoices drafted automatically from visit, lab and pharmacy lines, split payments, refunds and voids, a revenue ledger and an invoice template builder (A4, Letter, 80 mm thermal).

Running the practice

  • HR & payroll – attendance with late detection, leave approvals and payslip PDFs posted as salary expenses.
  • Expenses with receipts and recurring schedules, and internal memos targeted by role.
  • Reports – revenue, net margin including COGS, receivables ageing, tax, drug margins, doctor productivity, no-shows, inventory turnover and daily cash, exportable to CSV, XLSX and PDF.
  • Patient portal – self-registration, online booking, records, published lab reports and invoices payable through Stripe Checkout.
  • Optional AI assist – ICD-10 suggestions and prescription safety checks, always labelled as suggestions and never applied automatically.

Built for many clinics on one platform

  • Tenant isolation enforced twice: every query is filtered by clinic, and a Mongoose plugin throws on any query or aggregate that is missing the clinic filter.
  • RBAC: 9 roles × 20 permission keys, each granted at an all, read or self scope, checked on every server action. A repo check script verifies that every mutation goes through a guarded wrapper.
  • Multi-currency: amounts are stored in USD and calculated in integer cents; each clinic picks a display currency and every invoice keeps its exchange-rate snapshot.
  • 4 languages (English, Arabic, Hebrew, Spanish) with full right-to-left layouts.
  • Super Admin console: provision clinics, gate modules by plan, manage subscriptions, translations, logs and the audit trail, and edit the public marketing website (with an animated 3D hero) through the built-in CMS.

What's in the package

  • Full TypeScript source (65 pages, 54 API routes, 39 Mongoose models), .env.example and README.
  • 23 Vitest test files with 73 automated test cases.
  • 4-step web installer, Docker Compose (app + MongoDB replica set) and PM2 configuration, daily cron endpoint, backup/restore and a read-only demo mode.

Requirements

  • Node.js 20.9 or newer and npm
  • MongoDB 5 or newer (a replica set or Atlas is recommended so multi-document transactions are used)
  • Optional: Stripe, Cloudinary, SMTP and a Google Gemini API key for the AI features