Skip to content

ZHarvett/TenderLens

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TenderLens

Agentic multimodal tender compliance copilot for South African SMEs. Built with Amazon Nova on AWS Bedrock for the Amazon Nova AI Hackathon 2026.

Problem: South African SMEs spend days manually cross-referencing tender requirements against their company documents, often missing requirements and losing bids.

Solution: TenderLens ingests a tender RFP and evidence documents, uses Amazon Nova to extract every mandatory returnable, match evidence via multimodal embeddings, and produce a compliance matrix — in minutes, not days.

Demo

# One command to start everything
./scripts/run_demo.sh

Then open http://localhost:5173, upload the sample tender and evidence, and watch TenderLens analyse compliance in real time.

See scripts/demo_walkthrough.md for step-by-step instructions.

Quick Start

Backend

cd backend
pip install -e ".[dev]"
pytest tests/ -v          # 52 tests
uvicorn app.main:app --reload --port 8000

Frontend

cd frontend
npm install --legacy-peer-deps
npm run dev               # http://localhost:5173

Generate Sample Data

python scripts/generate_sample_data.py

Integration Test (requires running backend + real Bedrock)

./scripts/integration_test.sh

How It Works

  1. Ingest — Upload tender PDF and evidence documents (PDF, PNG, JPG)
  2. Extract — Amazon Nova 2 Lite extracts mandatory returnables from the tender via Converse API
  3. Embed — Amazon Nova Multimodal Embeddings vectorizes all document pages (text + images, 1024-dim)
  4. Search — For each requirement, find matching evidence via cosine similarity
  5. Decide — Amazon Nova 2 Lite evaluates whether each requirement is complete, missing, or unclear
  6. Export — Generate a compliance matrix (JSON), CSV checklist, and per-requirement evidence folders as a downloadable ZIP

Architecture

Component Technology
Reasoning Amazon Nova 2 Lite (us.amazon.nova-2-lite-v1:0) via Converse API with tool use
Embeddings Amazon Nova Multimodal Embeddings (amazon.nova-2-multimodal-embeddings-v1:0, 1024-dim)
Vector Store In-memory numpy cosine similarity
Backend FastAPI + Python 3.11
Frontend React + Vite + Tailwind CSS v4
Ingestion PyMuPDF (PDF), Pillow (images)
Agent Deterministic pipeline (default) or LLM-driven agentic loop
Export ZIP with compliance matrix, CSV, summary, per-requirement folders

Project Structure

tenderlens/
├── backend/
│   ├── app/
│   │   ├── agent/          # Deterministic + agentic compliance loops
│   │   ├── schemas/        # Pydantic v2 data models
│   │   ├── services/       # Embeddings, vector store, ingestion, export, pipeline
│   │   ├── tools/          # Extract requirements, search evidence, decide compliance
│   │   ├── config.py       # Settings from verified_config.json
│   │   └── main.py         # FastAPI app with REST endpoints
│   └── tests/              # 52 unit tests
├── frontend/
│   └── src/
│       ├── components/     # FileDropZone, StatusProgress, SummaryCards, ComplianceTable, MetricsPanel, StatusBadge
│       ├── pages/          # UploadPage, ResultsPage
│       ├── lib/            # API client (axios)
│       └── App.tsx         # State-based routing
├── scripts/
│   ├── generate_sample_data.py
│   ├── integration_test.sh
│   ├── run_demo.sh
│   └── demo_walkthrough.md
└── sample_data/            # Generated tender + evidence for demo

API Endpoints

Method Path Description
GET /health Health check with model info
POST /api/ingest Upload tender + evidence files
GET /api/status/{job_id} Pipeline progress (poll every 2s)
GET /api/compliance/{job_id} Compliance matrix with decisions
GET /api/export/{job_id} Export download URL
GET /api/metrics/{job_id} Pipeline metrics (tokens, latency)

Amazon Nova Models Used

  • Amazon Nova 2 Lite — Reasoning, requirement extraction, and compliance decisions via the Converse API with structured tool use
  • Amazon Nova Multimodal Embeddings — Text and image embeddings for semantic evidence search (1024-dim vectors)

Tests

cd backend && pytest tests/ -v
# 52 tests covering schemas, ingestion, embeddings, vector store, tools, agent loop, and export

#AmazonNova

About

Agentic multimodal tender compliance copilot for South African SMEs — built with Amazon Nova on AWS Bedrock. #AmazonNova

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors