Skip to main content
Navigation
HomeTechnical ReferenceJournalGitHubGitHub
Sidebar — toggle document categories via the logo
Maven Platform — Bill of Quantities Management

Maven Platform — Bill of Quantities Management

June 29, 2025

Overview

Maven Platform is a specialized Bill of Quantities (BOQ) management system built for the construction and procurement industry. It handles the entire BOQ workflow — from project creation and work order generation to work item classification, checklist management, and professional document export.

What sets Maven apart is its .NET BOQ Exporter — a dedicated microservice that generates commercial-grade multi-sheet Excel (XLSX) and PDF documents with professional formatting: table of contents, preambles, section sheets, page numbers, watermarks, and A4 print layouts. This is powered by Aspose.Cells, a licensed Excel generation engine.


Key Features

  • Five-role RBAC: SuperAdmin, TeamManager, TeamLeader, QS, OfficeManager with entity-level permissions
  • BOQ Export Engine: Commercial-grade XLSX/PDF generation with Aspose.Cells — multi-sheet, table of contents, watermarks, A4 formatting
  • TanStack React Table: Performant data grids with sorting, filtering, and pagination for large BOQ datasets
  • Flexible query protocol: $and/$or JSON filters, population, pagination, fuzzy search, soft delete — all through a clean REST API
  • Drag-and-drop editing: DnD Kit for interactive reordering of work items and sections
  • QR code tracking: Generated QR codes on uploads and documents for traceability
  • Dual deployment mode: Kubernetes for staging, bare-metal VMs via systemd for production (with Cloudflare load balancing)

Architecture

A polyglot three-service system with OxideAuth for authentication:

ServiceRole
www (Next.js)Administrative dashboard
api (Express.js)REST API with 25 service files
BOQExporter (.NET)Professional XLSX/PDF document generation
PostgreSQLPrimary database

The API uses five role types (SuperAdmin, TeamManager, TeamLeader, QS, OfficeManager) with fine-grained permissions on every entity. Auth is delegated to OxideAuth.


www — Dashboard

The frontend is a Next.js App Router application with MUI v7, MUI X Pro (Tree View), and TanStack React Table for performant data grids. It supports English and Arabic with full RTL layout.

Dashboard Sections

  • Projects & Clients — Project lifecycle management and client relationships
  • Work Orders & BOQs — The core BOQ workflow
  • Work Items — Classified line items within BOQs
  • Templates — Reusable BOQ templates for standardization
  • Checklists — QA/QC checklists with response tracking
  • Section Editor — BOQ section organization
  • Suppliers, Tenders & Bids — Procurement workflow
  • Invoice — Billing and payment tracking
  • Variable Option Sets — Dynamic pricing configuration
  • Settings & Users — Platform administration

Rich Content Editing

The dashboard includes TipTap for rich text editing (with color, highlighting, images, alignment) and DnD Kit for drag-and-drop reordering. Puck CMS (@measured/puck) provides a visual page builder for custom layouts.


api — Express.js Backend

The Express.js API uses MikroORM for database access with 22 entity models and 22+ route sets. A flexible query protocol supports $and/$or JSON filters, population, pagination, fuzzy search, and soft deletion — giving the frontend powerful querying without exposing SQL.

All routes enforce OxideAuth-based RBAC with permissions like maven.boq.create and maven.ui.admin. The API also handles file uploads with drag-and-drop support, QR code generation for document tracking, and integration with the .NET export engine.


BOQExporter — .NET 8 Export Engine

The BOQ Exporter is a .NET 8 ASP.NET Core Minimal API that uses Aspose.Cells (licensed) to generate professional BOQ documents:

  • Multi-sheet XLSX: Cover page, table of contents, preambles, individual section sheets, summary sheet
  • Custom formatting: Fonts, colors, borders, print area, A4 portrait, page numbers, watermarks
  • PDF generation: Via SkiaSharp for non-editable distribution
  • Storage integration: Uploads generated files to Hetzner S3 and returns download URLs

Endpoints: POST /export-boq, POST /export-section, GET /ping. The production Docker image includes LibreOffice Calc for server-side document format conversion.


Tech Stack

LayerTechnology
FrontendNext.js (App Router), React, TypeScript, MUI v7, TanStack Table, ApexCharts
Rich EditingTipTap (rich text), DnD Kit (drag-and-drop), Puck CMS (page builder)
API BackendExpress.js, TypeScript, MikroORM
Export Engine.NET 8 C#, ASP.NET Core Minimal API, Aspose.Cells, SkiaSharp
DatabasePostgreSQL
AuthOxideAuth (JWT-based centralized auth)
StorageHetzner S3, Azure Blob (alternative)
i18nEnglish + Arabic with RTL