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 operationstender-pack-processor.service.ts: Orchestrates document parsing, tagging, and analysistender-parsing.controller.ts: Exposes HTTP endpoints for document operations- DTOs in
dto/: Define request/response types (future: keep in sync with frontend)