Skip to content

sfkareem/Tender-Lens

Repository files navigation

TenderLens

TenderLens by QS Mind
Created by Kareem Safwat
License: Apache License 2.0

TenderLens is a local-first, BYOK construction tender review desktop application for contractors, QS teams, tendering engineers, procurement teams, and technical office engineers.

It analyzes a tender package from a ZIP file or local folder, scans nested files, classifies documents, extracts construction-relevant content, identifies evidence-backed tender issues, routes findings through engineer review, and exports a professional tender query register.

Who It Is For

  • Contractors
  • Quantity surveying teams
  • Tendering engineers
  • Procurement teams
  • Technical office engineers

Key Features

  • Local .tenderlens workspace per user
  • Separate SQLite database per project
  • ZIP and folder-based tender package ingestion
  • Recursive file inventory
  • PDF, Excel/CSV, Word, TXT/MD, image, DXF, and DWG-adapter support
  • BOQ-focused extraction and issue detection
  • Evidence-first findings with source references
  • Engineer approval workflow before query export
  • BYOK providers: OpenAI, Anthropic, Gemini, and OpenAI-compatible APIs
  • Excel, CSV, Word, Markdown, JSON, executive summary, and evidence package exports

Screenshots

Screenshots will be added after the first packaged desktop release.

Workspace Directory

Default workspace root:

  • Windows: C:\Users\<UserName>\Documents\.tenderlens\
  • macOS: /Users/<UserName>/Documents/.tenderlens/
  • Linux: /home/<UserName>/Documents/.tenderlens/

Project data is stored under:

Documents/.tenderlens/
  projects/
    {project_id}/
      source/
      extracted/
      ocr/
      index/
      evidence/
      exports/
      logs/
      project.sqlite
  app.sqlite
  settings.json
  cache/

Installation

Prerequisites:

  • Node.js 20+
  • Python 3.11+
  • Rust stable
  • Optional: Tesseract and OCRmyPDF for OCR
  • Optional: ODA File Converter for DWG conversion

Install JavaScript dependencies:

npm install

Install Python dependencies:

python -m pip install -e ".[dev]"

Install cloud LLM provider SDKs when you want live BYOK model calls:

python -m pip install -e ".[llm]"

Production Releases

TenderLens releases are published from GitHub tags:

git tag v0.1.0
git push origin v0.1.0

The release workflow builds:

  • Windows MSI/NSIS bundles
  • Windows portable ZIP
  • macOS DMG bundles for Apple Silicon
  • macOS portable app ZIP
  • Linux AppImage and DEB bundles
  • Linux portable TAR.GZ
  • Tauri updater artifacts and latest.json

The packaged app includes the Python FastAPI sidecar built with PyInstaller.

Update Checker

TenderLens checks GitHub Releases for updates when the desktop app starts. Engineers can also check manually from Settings → Application Updates.

Updater endpoint:

https://github.com/sfkareem/Tender-Lens/releases/latest/download/latest.json

Before publishing real releases, add these GitHub repository secrets:

  • TAURI_SIGNING_PRIVATE_KEY
  • TAURI_SIGNING_PRIVATE_KEY_PASSWORD

The public updater key is committed in apps/desktop/src-tauri/tauri.conf.json. The private key must never be committed.

Running Locally

Start the local API:

python services/api/run.py

Start the desktop frontend:

npm run dev

Run the Tauri app:

npm --workspace apps/desktop run tauri dev

BYOK Setup

Configure API keys in Settings or in the local workspace settings.json.

Supported providers:

  • OpenAI
  • Anthropic
  • Gemini
  • OpenAI-compatible endpoint with base URL, model ID, and API key

Default temperature is 0.1.

Supported File Types

  • PDF
  • scanned PDF through OCR adapter
  • Excel: xlsx, xls, xlsm, csv
  • Word: docx
  • Images: jpg, jpeg, png, tiff, bmp, webp
  • DXF
  • DWG through optional converter adapter
  • TXT/MD

Emails, Revit, Navisworks, and IFC are outside the MVP scope.

Privacy Model

TenderLens is local-first:

  • project files remain local
  • OCR runs locally when configured
  • SQLite databases are local
  • only selected extracted text chunks are sent to configured LLM APIs
  • full tender packages and raw drawings/images are not sent unless future settings explicitly enable that behavior

No-Guessing Principle

TenderLens must not invent project facts.

Every finding and query must include evidence from actual project files. Weak evidence is marked as Potential Issue or Needs Engineer Review. Very low-confidence observations are logged internally and are not promoted to client queries.

Current Limitations

  • Quantity Concern mode is qualitative in MVP.
  • Full drawing-based takeoff is not implemented.
  • DWG support requires external converter configuration.
  • OCR depends on local Tesseract/OCRmyPDF setup.
  • Query generation is deterministic in MVP, with LLM adapters prepared for evidence-constrained reasoning.

Roadmap

  • Advanced DWG extraction
  • Deeper drawing vision
  • Full quantity takeoff support
  • Local LLM/Ollama support
  • Team collaboration
  • Project templates
  • RFI tracking
  • Client response tracking
  • Tender revision comparison
  • Advanced commercial risk scoring

Contributing

Contributions are welcome. Keep changes evidence-first, local-first, and construction-professional. Add tests for processing, database, export, and review workflow changes.

Disclaimer

TenderLens is an AI-assisted tender review tool. All outputs must be reviewed and approved by a qualified engineer before use.

About

TenderLens by QS Mind - local-first construction tender review AI agent

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors