PProcufy
  • Features
  • Solutions
  • How it works
  • Security
Sign in
PProcufyProcurement

From the moment someone asks for an item to the moment the supplier is paid and the paperwork is filed — one system, one trail, no spreadsheets.

procurement.dept@atilimited.net

Product

  • Features
  • How it works
  • Security

Solutions

  • For Administration
  • For Clients
  • For Vendors

Help

  • User manual
  • ব্যবহারবিধি (বাংলা)
  • Troubleshooting

Access

  • Sign in

Serving 17 organisations across the Drug International group

  • Drug International Limited
  • Drug International Limited (Herbal Division)
  • Drug International Unani Limited
  • Khawaja Yunus Ali Medical College
  • Khawaja Yunus Ali Hospital
  • Khawaja Yunus Ali Nursing Institute
  • Khawaja Yunus Ali Laboratory School and College
  • Khawaja Yunus Ali University
  • Khawaja Yunus Ali Foundation
  • ATI Limited
  • ATI Ceramics Limited
  • M. M. Tea Estates Ltd
  • M. M. Multimeter Ltd.
  • M. M. Consortium
  • Harnest (Label Industries Limited)
  • Taj Printers
  • GN Plastic Factory

© 2026 ATI Limited. All rights reserved.

Procufy — procurement management system.

Procurement management system

Procurement, end to end.

From the moment someone asks for an item to the moment the supplier is paid and the paperwork is filed — one system, one trail, no spreadsheets.

  • Role-based access
  • Audited approvals
  • End-to-end tracking
Sign inSee how it works
Procufy dashboard preview

One pipeline, eight stages

  1. Requisition
  2. Quotation
  3. Purchase Order
  4. Shipment
  5. Inventory
  6. Delivery
  7. Finance
  8. Payment

Running purchasing for 17 organisations across the Drug International group

  • Drug International Limited
  • Khawaja Yunus Ali Medical College & Hospital
  • ATI Limited
  • Harnest (Label Industries Limited)
6ModulesOverview, Procurement, Finance, Inventory, Vendor, Set Up
40PagesEvery one a database row, not a hardcoded route
12System rolesSeeded, immutable, editable permissions
4StakeholdersAdministration, Client, Vendor, Project Management
46Data modelsPostgreSQL via Prisma, 28 enums
4EnvironmentsOne build serves all four
The gap

Purchasing runs on inboxes until it cannot.

Every procurement team starts with email and a shared sheet. It works until someone asks who approved a price, or where an order actually is.

Email and spreadsheets

  • Requests scattered across inboxes with no shared status
  • Prices gathered ad hoc, with no record of who else was asked
  • Approvals implied by a reply, not recorded
  • Delivery confirmed verbally, if at all
  • Payment chased through forwarded threads
  • No way to answer "where is this and who touched it"

Procufy

  • Every request traceable from raising to delivery
  • Suppliers compete on price through a structured round
  • Money moves only through a recorded, multi-person chain
  • Receipt confirmed by the person who took delivery
  • Payment status visible to both sides, separately
  • A full history table behind every stage
How it works

16 stages, four sides, one trail.

Every stage has one owner and one page. Each hands off to the next with a notification, and each writes to a history table on the way through.

Client

Requisition raised

A three-step wizard with a live preview. Each line carries its own item, unit of measure and quantity — and each is quoted and ordered separately.

Who
Client Admin / Unit Admin
Moves
Requisition → PENDING
  • Client
  • Procurement
  • Vendor
  • Finance

The unit of work is the item, not the requisition.

A requisition is a container. Quotation, selection, ordering and delivery all happen per line. One requisition with five items can generate five quotation rounds, split across three vendors, and produce three purchase orders that arrive on different days — and the requisition tracks all of it.

Walk the full pipeline
What is inside

Six modules, forty pages.

Every page is a database row with its own permission, so what a person sees is a decision an administrator makes — not something baked into a release.

4 pages

Overview

Shared

Dashboards that change with who is looking, plus the organisation directory and reporting.

  • A different dashboard per stakeholder and department
  • Analytics by month or explicit date range
  • Directory of every organisation and person
10 pages

Procurement

Procurement department

Requisition through to receiving — approvals, competitive quotation rounds, purchase orders and warehouse receipt.

  • One quotation request per item per vendor
  • Side-by-side price comparison before selection
  • Full lifecycle timeline per requisition and per item
8 pages

Finance

Finance department

The multi-stage payment chain: bill, authorise, pay, acknowledge, close — four people, each checking the step before.

  • Separation of duties enforced by reserved pages
  • Cheque, in bulk or singly, or cash
  • VAT and tax document collection as a formal stage
1 page

Inventory

Procurement department

Warehouse stock and the hand-off that sends it on to a client site.

  • A movement ledger for every physical transfer
  • Warehouse stock and client stock kept apart
  • Low-stock and stock-level views
6 pages

Vendor

Vendor

A self-service supplier portal: quote, ship, invoice, get paid, close the file.

  • Quote against a deadline you can see
  • Ship against live orders, partially if needed
  • Acknowledge payment and close the record
11 pages

Set Up

Super Admin

Master data, users, roles and the Control Unit where page permissions are edited.

  • Clients, units, vendors, warehouses, banks, tax rates
  • Email-verified onboarding for every account
  • Permissions edited as data — no release required
Explore every module
Built for three sides

One system, three different products.

What a person sees depends entirely on which side they are on — and the sides are kept apart on purpose.

Administration

8 roles across 3 departments

ATI Limited staff

Three departments with three jobs. Procurement runs the goods. Finance runs the money. Administration runs the system and reports on both.

Procurement runs the goods. Finance runs the money. Administration runs the system and reports on both.

What they do here

  • Approve requisitions and run competitive quotation rounds
  • Issue purchase orders and receive goods into the warehouse
  • Bill, authorise and settle supplier payments
  • Administer users, roles and page permissions
  • Report across every client, vendor and order
More for administration
The wall

Clients and suppliers never see each other.

Not a policy — a property of the system. It is enforced in the data the API returns, in every email template, and in every generated PDF.

Clientorders
ATI warehousereceives and dispatches
Vendorships

Goods never travel vendor-to-client directly. They pass through an ATI warehouse — which is what keeps the two sides apart.

The vendor never sees

  • Which client or client unit an order is for
  • The client's name, address or contact details
  • Other vendors' quoted prices

The client never sees

  • Which vendors were invited to quote
  • Vendor identities during the comparison round
  • Vendor contact details
Enforced inThe data the API returnsEvery email templateEvery generated PDF
Control

Money moves only through a recorded chain.

Approval, execution and record-keeping are held by different people by design, and the system will not let a step be skipped.

Permissions are data, not code

There is no hardcoded list of which role sees which page. Every page is a row, every grant is a row, and administrators edit them in the Control Unit. Add a page, grant it, and it appears in the sidebar — no release required.

Separation of duties

Three finance pages belong to exactly one role each and are revoked from everyone else on every seed run. The person who authorises a payment is never the person who executes it.

Nothing is deleted

Records move through statuses rather than disappearing. Four history tables, change logs on master data, a tax audit trail and a system-wide audit log across eight categories.

No god mode

Even the superuser is denied client-only and vendor-only pages, cannot open Inventory, and cannot edit its own permission matrix. System roles and departments cannot be renamed or deleted.

Atomic transitions

Status changes run inside serializable transactions, so a partial pipeline move is impossible. Selecting a winning quote sets the winner, rejects the others and prices the item in one write.

Verified onboarding

No self-service sign-up. Every organisation and user is created by an administrator and must pass a six-digit email code — hashed, constant-time compared, valid four minutes, five attempts.

How access and audit work
In the day to day

It tells you when it is your turn.

A pipeline this long only works if the hand-offs are loud. Every stage notifies the next person and links them straight to the page where they act.

Live notifications

Twelve events pushed over a WebSocket, prioritised and deep-linked to the page where you act. Recipients resolve by role at send time, so a new team member starts receiving immediately.

Lifecycle timelines

Every requisition, item, purchase order and bill has a timeline showing each step, who took it and when.

Lists that refresh themselves

Server state is cached and revalidated, so a list updates the moment you submit a form — no manual refresh.

PDF and Excel out of the box

Purchase orders, bills and reports render to PDF in the browser; list pages export to XLSX. Export is one of the four permission flags, so it is granted per role.

Under the hood

Built on a current, boring stack.

Two independently deployed applications. One build of the web client serves all four environments, resolving its API from the address it was loaded from.

Web client

  • Next.js16 · App Router, Turbopack
  • React19 · TypeScript 5
  • Tailwind CSSv4 · shadcn/ui on Radix
  • TanStack Queryserver state and caching
  • Redux Toolkitclient auth state
  • React Hook Form + Zodtyped, validated forms
  • Socket.io clientlive notifications
  • PDF and XLSXin-browser document generation

API

  • NestJS11 · modular, ~45 feature modules
  • Prisma6 · PostgreSQL, 46 models
  • Passport JWTbcrypt, short-lived access tokens
  • Socket.ioauthenticated WebSocket gateway
  • Swaggerlive API schema, off in production
  • Helmet + Throttlerheaders and rate limiting
  • Winstondaily-rotating logs
  • Handlebars mailertemplated transactional email
Questions

The things people ask first.

Every request, every price, every approval — on the record.

Procufy is in daily use across the Drug International group. If your organisation is part of it, your administrator can issue you an account.

Sign inSee how it works