How utkristauwa/cits3200_57 works
TenderAI discovers tenders across procurement and funding portals, extracts tender and attachment content, and stores records for staff to browse. The main evidenced workflow is orchestrated by manager.py: it runs scrapers, processes documents and tender data, stores attachments, generates embeddings, and upserts records to BigQuery. The API supports filtered and semantic search, while the React app provides browsing and administration. README capabilities such as profile-based matching, review feedback, and Teams notifications are not evidenced in the sampled source, so their wiring is omitted.
Main entry points: manager.py Pipeline manager · main.py FastAPI application · App.tsx TenderAI web app · bigquery.py Tender search
Components 26
Collection and processing
- Pipeline manager
manager.py - Portal scrapers
web_scrapers/run_scrapers.py - Additional scrapers
error_scrapers - Attachment extraction
document_scraper/main.py - Tender processing
processing/tender_processor.py - Attachment storage
attachment_store.py
Tender data services
- Tender ingestion
ingestion/validate_and_submit.py - BigQuery upserts
ingestion/bigquery_client.py - Tender database
- Cloud Storage
API and administration
- FastAPI application
api/app/main.py - Tender endpoints
api/app/routers/tenders.py - Tender search
api/app/bigquery.py - Authentication
api/app/auth.py - Health endpoints
api/app/routers/health.py - User administration
functions/src/index.ts
Staff interface
- TenderAI web app
frontend/src/App.tsx - Tender browsing
frontend/src/pages/TendersPage.tsx - API client
frontend/src/lib/api.ts - Admin pages
frontend/src/pages/ConfigPage.tsx - System health view
frontend/src/pages/SystemHealthPage.tsx - Saved tenders
frontend/src/lib/FavoritesContext.tsx
Other components
- SVA staff
- Tender portals
- Firebase Auth
- Firestore profiles
Connections 30
- Pipeline manager → Portal scrapers: runs
- Pipeline manager → Additional scrapers: runs
- Portal scrapers → Tender portals: scrapes
- Additional scrapers → Tender portals: scrapes
- Pipeline manager → Attachment extraction: extracts text
- Pipeline manager → Tender processing: processes tenders
- Pipeline manager → Attachment storage: stores attachments
- Attachment storage → Cloud Storage: writes files
- Pipeline manager → Tender ingestion: submits records
- Tender ingestion → BigQuery upserts: upserts
- BigQuery upserts → Tender database: writes records
- TenderAI web app → Tender browsing: routes to
- TenderAI web app → Admin pages: routes to
- TenderAI web app → System health view: routes to
- SVA staff → TenderAI web app: uses
- Tender browsing → API client: requests tenders
- API client → FastAPI application: calls
- FastAPI application → Tender endpoints: dispatches
- FastAPI application → Authentication: authenticates
- FastAPI application → Health endpoints: dispatches
- Tender endpoints → Tender search: queries
- Tender search → Tender database: searches
- Tender search → Cloud Storage: reads documents
- System health view → Cloud Storage: reads status
- API client → Authentication: checks identity
- Authentication → Firebase Auth: verifies
- Admin pages → User administration: admin actions
- User administration → Firestore profiles: reads/writes profiles
- User administration → Firebase Auth: manages accounts
- Tender browsing → Saved tenders: saves selections