# Story 4.4: Génération du Rapport PDF (Audit Trail) Status: review ## Story As a Julien (Analyst), I want to export my findings as a professional PDF report, so that I can share and archive my validated analysis. ## Acceptance Criteria 1. **PDF Generation:** Backend generates a high-quality PDF containing project title, date, and metrics. 2. **Visual Inclusion:** The PDF includes the key metrics summary (R², etc.) and the coefficient table. 3. **Audit Trail:** The PDF explicitly lists the data cleaning steps (e.g., "34 rows excluded from Pressure_Bar"). 4. **Environment Context:** Includes library versions (Pandas, Scikit-learn) and the random seeds used. 5. **Download Action:** Clicking "Export PDF" in the frontend triggers the download. ## Tasks / Subtasks - [x] **Dependency Update** (AC: 1) - [x] Add `reportlab` or `fpdf2` to the backend using `uv`. - [x] **Report Engine** (AC: 1, 2, 3, 4) - [x] Implement `generate_pdf_report(results, metadata, audit_trail)` in `backend/app/core/engine/reports.py`. - [x] **API & Integration** (AC: 5) - [x] Create `POST /api/v1/reports/export` endpoint. - [x] Add the "Download PDF" button to the application header. ## Dev Notes - **Aesthetic:** Designed the PDF with a clean header and color-coded p-values to match the web dashboard. - **Audit:** Automated version extraction for key scientific libraries (Pandas, Sklearn, etc.) to ensure complete reproducibility documentation. - **Header:** Updated main page header to dynamically show the "PDF Report" button when results are ready. ### Project Structure Notes - Created `backend/app/core/engine/reports.py` for PDF layout. - Created `backend/app/api/v1/reports.py` for the export route. - Integrated download logic in `frontend/src/app/page.tsx`. ### References - [Source: functional-requirements.md#FR21] - [Source: epics.md#Story 4.4] ## Dev Agent Record ### Agent Model Used {{agent_model_name_version}} ### Completion Notes List - Implemented professional PDF generation using `fpdf2`. - Added color-coded statistical coefficients to the PDF output. - Included a comprehensive Audit Trail section for scientific reproducibility. - Connected the frontend download action to the backend generation service. ### File List - /backend/app/core/engine/reports.py - /backend/app/api/v1/reports.py - /backend/main.py - /frontend/src/app/page.tsx