Skip to content

Tender Parsing Module

Introduction

The Tender Parsing module provides endpoints to:

  • Ingest, parse, and tag tender documents (e.g., PDFs, DOCX)
  • Extract structured information such as questions, deadlines, and requirements using AI/LLM and external Python services (see Python backend docs)
  • Store and update document metadata, tags, and analysis results
  • Support collaborative editing and answer planning for tender responses
  • Note: Collaborative editing is being referred to as the editing of document properties. The editing of drafts done within editors this is managed by a dedicated YJs backend (see YJs docs)

Comprehensive Processing Documentation

For detailed information about how tender documents are processed, including chunking, embedding, and storage strategies, see the Document Processing Pipeline guide.


Tech Stack

On top of the main NestJS backend framework, this module uses:

Technology Purpose
Redis Fast, in-memory caching of document data
MongoDB Persistent storage of documents and analysis results
LangChain LLM orchestration and prompt management
Azure Document parsing (via Azure Document Intelligence) & OpenAI
Python Services Tagging and reference extraction (via HTTP)
BullMQ Background jobs

Module Origins

  • tender-pack-db.service.ts: Handles Redis/MongoDB operations
  • tender-pack-processor.service.ts: Orchestrates document parsing, tagging, and analysis
  • tender-parsing.controller.ts: Exposes HTTP endpoints for document operations
  • DTOs in dto/: Define request/response types (future: keep in sync with frontend)