Invoice Management Portal — Case Study
Client: Enterprise Operations
Industry: Business Operations

The Challenge
Operations teams were managing vendor invoices across email threads, shared drives, and spreadsheets — with no single source of truth for processing status. Administrators needed to upload invoices in multiple formats, assign visibility to reviewers, and track every status change without losing accountability.
The workflow demanded clear role separation. Admins had to create and manage user accounts, upload vendor invoices with attachments in PDF, PNG, JPG, DOC, DOCX, and other common formats, while assigned users reviewed each invoice and moved it through a defined status lifecycle: Uploaded, Pending or Errors, and Posted.
Compliance and reporting added another layer. Leadership needed a complete audit trail per invoice — upload date, every status change, who posted it, and a chronological activity log — plus a monthly dashboard summarizing totals uploaded, posted, pending, errors, completion rate, and trends.
The Solution
ZadionLabs built a full-stack Invoice Management Portal with a CRM-style workspace UI — dark sidebar navigation across Dashboard, Invoices, Reports, and Users, with role-based access for Admin and User roles secured through authentication and authorization middleware.
Admins upload vendor invoices via a structured form with vendor name, multi-format file attachment, and Cloudinary-backed secure file storage. Once uploaded, invoices appear in a filterable table with status pills — Uploaded, Pending, Posted, and Error — plus search by vendor, uploaded-by attribution, and date-added timestamps.
Users review assigned invoices and update status through the workflow. Every action is logged to a chronological audit trail capturing who performed each change and when — including when an invoice was posted. The dashboard surfaces monthly statistics: total uploaded, posted, pending, errors, and completion rate with recent invoice summaries.
The stack pairs a Next.js and React frontend with a Node.js and Express API layer, SQL database for structured invoice and user data, and Cloudinary for attachment storage. Delivery followed a six-week build: schema and auth in week one, upload and storage in week two, status workflow and audit log in weeks three–four, reporting dashboard in week five, then QA and hardening in week six.
Results
Delivery timeline
6 weeks
User roles
2 (Admin + User)
Invoice statuses
4 tracked
File formats
PDF + images + docs
Tech Stack
- Next.js
- React
- Node.js
- Express
- SQL
- Cloudinary
- TypeScript




