Country Views, Batch Upload, Translation & Authentication
A large feature cycle: per-country policy views, a batch upload module with automatic translation, original-link health tracking, on-demand English translation, and authentication for the translation feature — alongside a round of performance and robustness hardening.
- NewPer-country policy pages — click a country to see its records sorted by tier, with bulk ZIP download of English and/or original-language documents
- NewRedesigned Country Overview dashboard: Total Policies, Records with Uploaded Documents, Records with a Working Link, Original Language Non-English (Y/N), and Records with English — with country names linking to each country page
- NewBatch upload module — import many policy records at once from an Excel template, with automatic document fetching (including Google Drive / SharePoint links) and optional DeepL translation of non-English originals; includes a downloadable template + data dictionary, a per-batch audit log, and results CSV export
- NewOn-demand English translation — for records with no English version, generate one via DeepL from the country page, with a confirmation dialog showing the estimated character count; the result is stored with the "_ENG" suffix
- NewEnglish translation provenance — each English document is tagged by source: Official, DeepL, Google Translate, WBG Translate, or Other
- NewOriginal-link health indicators — a traffic-light "Original link" button (green = working, yellow = worked before but now broken, red = broken) across the records table, country pages, and detail view, plus a "Recheck links" action and an automatic weekly recheck
- NewSign-in is now required to run translations, with a bootstrap registration flow (the first account becomes admin; later sign-ups are gated by an invite code) so the billed translation feature isn't open to the public
- ImprovedFaster record saves — external link reachability is now checked in the background instead of blocking the save
- ImprovedRepository page loads with fewer database round-trips, and a new composite index speeds up dashboard and language-breakdown queries
- ImprovedDashboards and country pages now refresh immediately after records or documents change
- ImprovedContent-first navigation order (Repository · Browse · Coach · Benchmark · API) and new landing-page entry points
- ImprovedUpload language enforcement plus an original-language breakdown on the statistics page
- FixedPDF text extraction now works reliably in the serverless environment (switched to unpdf)
- FixedHardened the translation pipeline — capped translation polling time, a document size limit, and SSRF protection on document fetches