Jelajahi Sumber

[#1] Add Cover page, TOC, Index, Global Index, and HTML portal to deliverables

Lange François 2 minggu lalu
induk
melakukan
8504f88ab0
38 mengubah file dengan 1908 tambahan dan 118 penghapusan
  1. TEMPAT SAMPAH
      Project.pdf
  2. TEMPAT SAMPAH
      Retro Planning.pdf
  3. TEMPAT SAMPAH
      delivery.zip
  4. TEMPAT SAMPAH
      docs/Backup_Procedure.pdf
  5. TEMPAT SAMPAH
      docs/Data_Ingestion.pdf
  6. TEMPAT SAMPAH
      docs/Env_Configuration.pdf
  7. TEMPAT SAMPAH
      docs/Final_Report.pdf
  8. 709 0
      docs/Global_Index.md
  9. TEMPAT SAMPAH
      docs/Global_Index.pdf
  10. TEMPAT SAMPAH
      docs/Operator_Installation_Guide.pdf
  11. TEMPAT SAMPAH
      docs/Presentation_Technical.pdf
  12. TEMPAT SAMPAH
      docs/Presentation_User.pdf
  13. TEMPAT SAMPAH
      docs/Recommendations.pdf
  14. TEMPAT SAMPAH
      docs/Scrum_Artifacts.pdf
  15. TEMPAT SAMPAH
      docs/Scrum_Daily.pdf
  16. TEMPAT SAMPAH
      docs/Scrum_Plan.pdf
  17. TEMPAT SAMPAH
      docs/Scrum_Retro.pdf
  18. TEMPAT SAMPAH
      docs/Scrum_Review.pdf
  19. TEMPAT SAMPAH
      docs/Scrum_Wiki.pdf
  20. TEMPAT SAMPAH
      docs/Start_Stop_Procedures.pdf
  21. TEMPAT SAMPAH
      docs/Technical_Document.pdf
  22. TEMPAT SAMPAH
      docs/Test_Cases_Sprint8.pdf
  23. TEMPAT SAMPAH
      docs/URL_Formats.pdf
  24. TEMPAT SAMPAH
      docs/Uninstall_Guide.pdf
  25. TEMPAT SAMPAH
      docs/User_Description.pdf
  26. TEMPAT SAMPAH
      docs/User_Guide.pdf
  27. TEMPAT SAMPAH
      docs/WSL_Deployment.pdf
  28. TEMPAT SAMPAH
      docs/Wiki_Home.pdf
  29. TEMPAT SAMPAH
      docs/architecture.pdf
  30. TEMPAT SAMPAH
      docs/disaster_recovery_plan.pdf
  31. TEMPAT SAMPAH
      docs/distributed_deployment.pdf
  32. TEMPAT SAMPAH
      docs/docker_connection.pdf
  33. TEMPAT SAMPAH
      docs/project_report.pdf
  34. TEMPAT SAMPAH
      docs/retro_planning.pdf
  35. TEMPAT SAMPAH
      docs/taiga_audit_report.pdf
  36. TEMPAT SAMPAH
      docs/zabbix_monitoring.pdf
  37. 602 0
      index.html
  38. 597 118
      scripts/generate_pdfs.py

TEMPAT SAMPAH
Project.pdf


TEMPAT SAMPAH
Retro Planning.pdf


TEMPAT SAMPAH
delivery.zip


TEMPAT SAMPAH
docs/Backup_Procedure.pdf


TEMPAT SAMPAH
docs/Data_Ingestion.pdf


TEMPAT SAMPAH
docs/Env_Configuration.pdf


TEMPAT SAMPAH
docs/Final_Report.pdf


+ 709 - 0
docs/Global_Index.md

@@ -0,0 +1,709 @@
+# Global Project Index
+
+This document provides a unified cross-reference index of all key technical terms and concepts across the LocalFoodAI documentation suite. Click on any document link to open it at the specific page in your viewer.
+
+## Index of Terms
+
+### AI
+
+- **Local Food AI - Architecture Map**: Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 2](architecture.pdf#page=3)
+- **Database Backup and Restore Procedure**: Page 1, Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Backup_Procedure.pdf#page=2)
+- **Data Ingestion Pipeline**: Page 2, Page 3 | [Open PDF at Page 2](Data_Ingestion.pdf#page=3)
+- **Disaster Recovery & Backup Plan**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](disaster_recovery_plan.pdf#page=2)
+- **Distributed Deployment Guide**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](docker_connection.pdf#page=2)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 1, Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Env_Configuration.pdf#page=2)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 1, Page 2, Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 1](Installation_Guide.pdf#page=2)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 1, Page 2, Page 3, Page 4, Page 5, Page 6, Page 7, Page 9 | [Open PDF at Page 1](Operator_Installation_Guide.pdf#page=2)
+- **Local Food AI - Capstone Technical Presentation**: Page 1, Page 2, Page 3, Page 4, Page 5, Page 6, Page 7 | [Open PDF at Page 1](Presentation_Technical.pdf#page=2)
+- **Local Food AI - Clinician User Manual Presentation**: Page 1, Page 2, Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 1](Presentation_User.pdf#page=2)
+- **Capstone Project Report & File Documentation**: Page 2, Page 3, Page 4, Page 5, Page 6, Page 7, Page 8, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](Recommendations.pdf#page=3)
+- **Local Food AI: Retro Planning**: Page 2, Page 3 | [Open PDF at Page 2](retro_planning.pdf#page=3)
+- **Scrum Artifacts**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Artifacts.pdf#page=3)
+- **Daily Scrums**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Daily.pdf#page=3)
+- **Sprint Plans**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Plan.pdf#page=3)
+- **Sprint Retrospectives**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Retro.pdf#page=3)
+- **Sprint Reviews**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Review.pdf#page=3)
+- **Scrum Wiki Master List & Index Portal**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](Scrum_Wiki.pdf#page=2)
+- **Infrastructure Stop & Start Operational Procedures**: Page 1, Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Start_Stop_Procedures.pdf#page=2)
+- **Taiga Agile Audit Report**: Page 1, Page 2, Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 1](taiga_audit_report.pdf#page=2)
+- **Local Food AI - Capstone Technical Document**: Page 1, Page 2, Page 3, Page 4, Page 5, Page 6, Page 7 | [Open PDF at Page 1](Technical_Document.pdf#page=2)
+- **Sprint 8 Legacy Test Cases**: Page 2, Page 3 | [Open PDF at Page 2](Test_Cases_Sprint8.pdf#page=3)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 1, Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Uninstall_Guide.pdf#page=2)
+- **Local Food AI - Network Connection URL Directory**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](URL_Formats.pdf#page=3)
+- **Local Food AI - User Description & Functional Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](User_Description.pdf#page=2)
+- **Local Food AI - Clinician User Manual**: Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 2](User_Guide.pdf#page=3)
+- **Documentation Home**: Page 2, Page 3 | [Open PDF at Page 2](Wiki_Home.pdf#page=3)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### Airflow
+
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 2, Page 3 | [Open PDF at Page 2](Uninstall_Guide.pdf#page=3)
+
+### Allergens
+
+- **Local Food AI - Architecture Map**: Page 3, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 4 | [Open PDF at Page 4](Final_Report.pdf#page=5)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 9 | [Open PDF at Page 9](Operator_Installation_Guide.pdf#page=10)
+- **Local Food AI - Capstone Technical Presentation**: Page 3, Page 7 | [Open PDF at Page 3](Presentation_Technical.pdf#page=4)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 10 | [Open PDF at Page 10](project_report.pdf#page=11)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 6 | [Open PDF at Page 6](taiga_audit_report.pdf#page=7)
+- **Local Food AI - Capstone Technical Document**: Page 7 | [Open PDF at Page 7](Technical_Document.pdf#page=8)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 3, Page 5 | [Open PDF at Page 3](User_Guide.pdf#page=4)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Backup
+
+- **Local Food AI - Architecture Map**: Page 5 | [Open PDF at Page 5](architecture.pdf#page=6)
+- **Database Backup and Restore Procedure**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](Backup_Procedure.pdf#page=2)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 1, Page 2, Page 5 | [Open PDF at Page 1](disaster_recovery_plan.pdf#page=2)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 5, Page 6 | [Open PDF at Page 5](Installation_Guide.pdf#page=6)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 7, Page 9 | [Open PDF at Page 7](Operator_Installation_Guide.pdf#page=8)
+- **Local Food AI - Capstone Technical Presentation**: Page 7 | [Open PDF at Page 7](Presentation_Technical.pdf#page=8)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 2, Page 5, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 4, Page 6 | [Open PDF at Page 4](taiga_audit_report.pdf#page=5)
+- **Local Food AI - Capstone Technical Document**: Page 7 | [Open PDF at Page 7](Technical_Document.pdf#page=8)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 1, Page 3, Page 5 | [Open PDF at Page 1](Uninstall_Guide.pdf#page=2)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Clinical
+
+- **Local Food AI - Architecture Map**: Page 2, Page 5 | [Open PDF at Page 2](architecture.pdf#page=3)
+- **Database Backup and Restore Procedure**: Page 2, Page 5 | [Open PDF at Page 2](Backup_Procedure.pdf#page=3)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 9 | [Open PDF at Page 9](Operator_Installation_Guide.pdf#page=10)
+- **Local Food AI - Capstone Technical Presentation**: Page 2, Page 7 | [Open PDF at Page 2](Presentation_Technical.pdf#page=3)
+- **Local Food AI - Clinician User Manual Presentation**: Page 1, Page 2, Page 3, Page 6 | [Open PDF at Page 1](Presentation_User.pdf#page=2)
+- **Capstone Project Report & File Documentation**: Page 3, Page 10 | [Open PDF at Page 3](project_report.pdf#page=4)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 2, Page 4 | [Open PDF at Page 2](Scrum_Wiki.pdf#page=3)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 4, Page 5, Page 6 | [Open PDF at Page 4](taiga_audit_report.pdf#page=5)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 5, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](User_Description.pdf#page=2)
+- **Local Food AI - Clinician User Manual**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](User_Guide.pdf#page=2)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### Database
+
+- **Local Food AI - Architecture Map**: Page 1, Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 1](architecture.pdf#page=2)
+- **Database Backup and Restore Procedure**: Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 2](Backup_Procedure.pdf#page=3)
+- **Data Ingestion Pipeline**: Page 2, Page 3 | [Open PDF at Page 2](Data_Ingestion.pdf#page=3)
+- **Disaster Recovery & Backup Plan**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](disaster_recovery_plan.pdf#page=2)
+- **Distributed Deployment Guide**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](docker_connection.pdf#page=2)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 1, Page 2, Page 4, Page 5 | [Open PDF at Page 1](Env_Configuration.pdf#page=2)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 5, Page 6 | [Open PDF at Page 5](Installation_Guide.pdf#page=6)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 1, Page 3, Page 4, Page 5, Page 6, Page 7, Page 9 | [Open PDF at Page 1](Operator_Installation_Guide.pdf#page=2)
+- **Local Food AI - Capstone Technical Presentation**: Page 1, Page 2, Page 3, Page 4, Page 5, Page 6, Page 7 | [Open PDF at Page 1](Presentation_Technical.pdf#page=2)
+- **Local Food AI - Clinician User Manual Presentation**: Page 2, Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 2](Presentation_User.pdf#page=3)
+- **Capstone Project Report & File Documentation**: Page 2, Page 3, Page 4, Page 6, Page 7, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 3, Page 4 | [Open PDF at Page 3](Recommendations.pdf#page=4)
+- **Local Food AI: Retro Planning**: Page 2, Page 3 | [Open PDF at Page 2](retro_planning.pdf#page=3)
+- **Scrum Artifacts**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Artifacts.pdf#page=3)
+- **Daily Scrums**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Daily.pdf#page=3)
+- **Sprint Plans**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Plan.pdf#page=3)
+- **Sprint Retrospectives**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Retro.pdf#page=3)
+- **Sprint Reviews**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Review.pdf#page=3)
+- **Scrum Wiki Master List & Index Portal**: Page 3, Page 4 | [Open PDF at Page 3](Scrum_Wiki.pdf#page=4)
+- **Infrastructure Stop & Start Operational Procedures**: Page 1, Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Start_Stop_Procedures.pdf#page=2)
+- **Taiga Agile Audit Report**: Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 3](taiga_audit_report.pdf#page=4)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 3, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 2, Page 3 | [Open PDF at Page 2](Test_Cases_Sprint8.pdf#page=3)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 2, Page 4, Page 5 | [Open PDF at Page 2](Uninstall_Guide.pdf#page=3)
+- **Local Food AI - Network Connection URL Directory**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](URL_Formats.pdf#page=3)
+- **Local Food AI - User Description & Functional Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](User_Description.pdf#page=3)
+- **Local Food AI - Clinician User Manual**: Page 3, Page 4, Page 5 | [Open PDF at Page 3](User_Guide.pdf#page=4)
+- **Documentation Home**: Page 2, Page 3 | [Open PDF at Page 2](Wiki_Home.pdf#page=3)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### Docker
+
+- **Local Food AI - Architecture Map**: Page 3, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 3, Page 5 | [Open PDF at Page 3](Backup_Procedure.pdf#page=4)
+- **Data Ingestion Pipeline**: Page 2, Page 3 | [Open PDF at Page 2](Data_Ingestion.pdf#page=3)
+- **Disaster Recovery & Backup Plan**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](disaster_recovery_plan.pdf#page=3)
+- **Distributed Deployment Guide**: Page 1, Page 3, Page 5 | [Open PDF at Page 1](distributed_deployment.pdf#page=2)
+- **Docker Connection & Health Check Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](docker_connection.pdf#page=3)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 1, Page 2, Page 3, Page 4, Page 6 | [Open PDF at Page 1](Installation_Guide.pdf#page=2)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 1, Page 5, Page 9 | [Open PDF at Page 1](Operator_Installation_Guide.pdf#page=2)
+- **Local Food AI - Capstone Technical Presentation**: Page 2, Page 4, Page 5, Page 7 | [Open PDF at Page 2](Presentation_Technical.pdf#page=3)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 2, Page 6, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 3, Page 4, Page 5 | [Open PDF at Page 3](Start_Stop_Procedures.pdf#page=4)
+- **Taiga Agile Audit Report**: Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 3](taiga_audit_report.pdf#page=4)
+- **Local Food AI - Capstone Technical Document**: Page 3, Page 4, Page 6, Page 7 | [Open PDF at Page 3](Technical_Document.pdf#page=4)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](Uninstall_Guide.pdf#page=2)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### Firewall
+
+- **Local Food AI - Architecture Map**: Page 5 | [Open PDF at Page 5](architecture.pdf#page=6)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 2, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 4 | [Open PDF at Page 4](Final_Report.pdf#page=5)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 9 | [Open PDF at Page 9](Operator_Installation_Guide.pdf#page=10)
+- **Local Food AI - Capstone Technical Presentation**: Page 7 | [Open PDF at Page 7](Presentation_Technical.pdf#page=8)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 10 | [Open PDF at Page 10](project_report.pdf#page=11)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 6 | [Open PDF at Page 6](taiga_audit_report.pdf#page=7)
+- **Local Food AI - Capstone Technical Document**: Page 7 | [Open PDF at Page 7](Technical_Document.pdf#page=8)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### LLM
+
+- **Local Food AI - Architecture Map**: Page 4, Page 5 | [Open PDF at Page 4](architecture.pdf#page=5)
+- **Database Backup and Restore Procedure**: Page 4, Page 5 | [Open PDF at Page 4](Backup_Procedure.pdf#page=5)
+- **Data Ingestion Pipeline**: Page 2, Page 3 | [Open PDF at Page 2](Data_Ingestion.pdf#page=3)
+- **Disaster Recovery & Backup Plan**: Page 3, Page 5 | [Open PDF at Page 3](disaster_recovery_plan.pdf#page=4)
+- **Distributed Deployment Guide**: Page 2, Page 4, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](docker_connection.pdf#page=3)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 2, Page 4, Page 5 | [Open PDF at Page 2](Env_Configuration.pdf#page=3)
+- **Final Project Report (Living Document)**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 4, Page 5, Page 6 | [Open PDF at Page 4](Installation_Guide.pdf#page=5)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 8, Page 9 | [Open PDF at Page 8](Operator_Installation_Guide.pdf#page=9)
+- **Local Food AI - Capstone Technical Presentation**: Page 1, Page 2, Page 3, Page 6, Page 7 | [Open PDF at Page 1](Presentation_Technical.pdf#page=2)
+- **Local Food AI - Clinician User Manual Presentation**: Page 2, Page 4, Page 5, Page 6 | [Open PDF at Page 2](Presentation_User.pdf#page=3)
+- **Capstone Project Report & File Documentation**: Page 9, Page 10 | [Open PDF at Page 9](project_report.pdf#page=10)
+- **Recommendations for Future Agile Projects**: Page 3, Page 4 | [Open PDF at Page 3](Recommendations.pdf#page=4)
+- **Local Food AI: Retro Planning**: Page 2, Page 3 | [Open PDF at Page 2](retro_planning.pdf#page=3)
+- **Scrum Artifacts**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Artifacts.pdf#page=3)
+- **Daily Scrums**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Daily.pdf#page=3)
+- **Sprint Plans**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Plan.pdf#page=3)
+- **Sprint Retrospectives**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Retro.pdf#page=3)
+- **Sprint Reviews**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Review.pdf#page=3)
+- **Scrum Wiki Master List & Index Portal**: Page 3, Page 4 | [Open PDF at Page 3](Scrum_Wiki.pdf#page=4)
+- **Infrastructure Stop & Start Operational Procedures**: Page 4, Page 5 | [Open PDF at Page 4](Start_Stop_Procedures.pdf#page=5)
+- **Taiga Agile Audit Report**: Page 4, Page 5, Page 6 | [Open PDF at Page 4](taiga_audit_report.pdf#page=5)
+- **Local Food AI - Capstone Technical Document**: Page 1, Page 2, Page 3, Page 5, Page 6, Page 7 | [Open PDF at Page 1](Technical_Document.pdf#page=2)
+- **Sprint 8 Legacy Test Cases**: Page 2, Page 3 | [Open PDF at Page 2](Test_Cases_Sprint8.pdf#page=3)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 4, Page 5 | [Open PDF at Page 4](Uninstall_Guide.pdf#page=5)
+- **Local Food AI - Network Connection URL Directory**: Page 3, Page 4 | [Open PDF at Page 3](URL_Formats.pdf#page=4)
+- **Local Food AI - User Description & Functional Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](User_Description.pdf#page=3)
+- **Local Food AI - Clinician User Manual**: Page 2, Page 4, Page 5 | [Open PDF at Page 2](User_Guide.pdf#page=3)
+- **Documentation Home**: Page 2, Page 3 | [Open PDF at Page 2](Wiki_Home.pdf#page=3)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### Minerals
+
+- **Local Food AI - Architecture Map**: Page 3, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 4 | [Open PDF at Page 4](Final_Report.pdf#page=5)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 9 | [Open PDF at Page 9](Operator_Installation_Guide.pdf#page=10)
+- **Local Food AI - Capstone Technical Presentation**: Page 3, Page 7 | [Open PDF at Page 3](Presentation_Technical.pdf#page=4)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 10 | [Open PDF at Page 10](project_report.pdf#page=11)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 6 | [Open PDF at Page 6](taiga_audit_report.pdf#page=7)
+- **Local Food AI - Capstone Technical Document**: Page 7 | [Open PDF at Page 7](Technical_Document.pdf#page=8)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### MySQL
+
+- **Local Food AI - Architecture Map**: Page 3, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](Backup_Procedure.pdf#page=2)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](disaster_recovery_plan.pdf#page=2)
+- **Distributed Deployment Guide**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](docker_connection.pdf#page=2)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 1, Page 2, Page 3, Page 5 | [Open PDF at Page 1](Env_Configuration.pdf#page=2)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 3, Page 9 | [Open PDF at Page 3](Operator_Installation_Guide.pdf#page=4)
+- **Local Food AI - Capstone Technical Presentation**: Page 3, Page 5, Page 7 | [Open PDF at Page 3](Presentation_Technical.pdf#page=4)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 2, Page 3, Page 4, Page 5, Page 6, Page 7, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 1, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Start_Stop_Procedures.pdf#page=2)
+- **Taiga Agile Audit Report**: Page 4, Page 6 | [Open PDF at Page 4](taiga_audit_report.pdf#page=5)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 3, Page 4, Page 5, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](Uninstall_Guide.pdf#page=3)
+- **Local Food AI - Network Connection URL Directory**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](URL_Formats.pdf#page=3)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Nginx
+
+- **Local Food AI - Architecture Map**: Page 5 | [Open PDF at Page 5](architecture.pdf#page=6)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 3, Page 5 | [Open PDF at Page 3](disaster_recovery_plan.pdf#page=4)
+- **Distributed Deployment Guide**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 9 | [Open PDF at Page 9](Operator_Installation_Guide.pdf#page=10)
+- **Local Food AI - Capstone Technical Presentation**: Page 5, Page 7 | [Open PDF at Page 5](Presentation_Technical.pdf#page=6)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 2, Page 6, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Daily.pdf#page=3)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Review.pdf#page=3)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 1, Page 3, Page 5 | [Open PDF at Page 1](Start_Stop_Procedures.pdf#page=2)
+- **Taiga Agile Audit Report**: Page 6 | [Open PDF at Page 6](taiga_audit_report.pdf#page=7)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](Uninstall_Guide.pdf#page=3)
+- **Local Food AI - Network Connection URL Directory**: Page 2, Page 4 | [Open PDF at Page 2](URL_Formats.pdf#page=3)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Ollama
+
+- **Local Food AI - Architecture Map**: Page 3, Page 4, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 4, Page 5 | [Open PDF at Page 4](Backup_Procedure.pdf#page=5)
+- **Data Ingestion Pipeline**: Page 2, Page 3 | [Open PDF at Page 2](Data_Ingestion.pdf#page=3)
+- **Disaster Recovery & Backup Plan**: Page 3, Page 5 | [Open PDF at Page 3](disaster_recovery_plan.pdf#page=4)
+- **Distributed Deployment Guide**: Page 4, Page 5 | [Open PDF at Page 4](distributed_deployment.pdf#page=5)
+- **Docker Connection & Health Check Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](docker_connection.pdf#page=2)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 2, Page 4, Page 5 | [Open PDF at Page 2](Env_Configuration.pdf#page=3)
+- **Final Project Report (Living Document)**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 5, Page 6 | [Open PDF at Page 5](Installation_Guide.pdf#page=6)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 1, Page 3, Page 4, Page 5, Page 6, Page 7, Page 8, Page 9 | [Open PDF at Page 1](Operator_Installation_Guide.pdf#page=2)
+- **Local Food AI - Capstone Technical Presentation**: Page 3, Page 6, Page 7 | [Open PDF at Page 3](Presentation_Technical.pdf#page=4)
+- **Local Food AI - Clinician User Manual Presentation**: Page 5, Page 6 | [Open PDF at Page 5](Presentation_User.pdf#page=6)
+- **Capstone Project Report & File Documentation**: Page 2, Page 3, Page 5, Page 6, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 3, Page 4 | [Open PDF at Page 3](Recommendations.pdf#page=4)
+- **Local Food AI: Retro Planning**: Page 2, Page 3 | [Open PDF at Page 2](retro_planning.pdf#page=3)
+- **Scrum Artifacts**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Artifacts.pdf#page=3)
+- **Daily Scrums**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Daily.pdf#page=3)
+- **Sprint Plans**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Plan.pdf#page=3)
+- **Sprint Retrospectives**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Retro.pdf#page=3)
+- **Sprint Reviews**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Review.pdf#page=3)
+- **Scrum Wiki Master List & Index Portal**: Page 3, Page 4 | [Open PDF at Page 3](Scrum_Wiki.pdf#page=4)
+- **Infrastructure Stop & Start Operational Procedures**: Page 1, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Start_Stop_Procedures.pdf#page=2)
+- **Taiga Agile Audit Report**: Page 4, Page 5, Page 6 | [Open PDF at Page 4](taiga_audit_report.pdf#page=5)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 5, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 2, Page 3 | [Open PDF at Page 2](Test_Cases_Sprint8.pdf#page=3)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 2](Uninstall_Guide.pdf#page=3)
+- **Local Food AI - Network Connection URL Directory**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](URL_Formats.pdf#page=3)
+- **Local Food AI - User Description & Functional Guide**: Page 3, Page 4 | [Open PDF at Page 3](User_Description.pdf#page=4)
+- **Local Food AI - Clinician User Manual**: Page 4, Page 5 | [Open PDF at Page 4](User_Guide.pdf#page=5)
+- **Documentation Home**: Page 2, Page 3 | [Open PDF at Page 2](Wiki_Home.pdf#page=3)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### RAG
+
+- **Local Food AI - Architecture Map**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](architecture.pdf#page=3)
+- **Database Backup and Restore Procedure**: Page 2, Page 5 | [Open PDF at Page 2](Backup_Procedure.pdf#page=3)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 4 | [Open PDF at Page 4](Final_Report.pdf#page=5)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 3, Page 4, Page 9 | [Open PDF at Page 3](Operator_Installation_Guide.pdf#page=4)
+- **Local Food AI - Capstone Technical Presentation**: Page 1, Page 2, Page 3, Page 7 | [Open PDF at Page 1](Presentation_Technical.pdf#page=2)
+- **Local Food AI - Clinician User Manual Presentation**: Page 3, Page 6 | [Open PDF at Page 3](Presentation_User.pdf#page=4)
+- **Capstone Project Report & File Documentation**: Page 2, Page 3, Page 7, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 5, Page 6 | [Open PDF at Page 5](taiga_audit_report.pdf#page=6)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 5, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 2, Page 3 | [Open PDF at Page 2](Test_Cases_Sprint8.pdf#page=3)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 2, Page 4 | [Open PDF at Page 2](User_Description.pdf#page=3)
+- **Local Food AI - Clinician User Manual**: Page 3, Page 5 | [Open PDF at Page 3](User_Guide.pdf#page=4)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### SMTP
+
+- **Local Food AI - Architecture Map**: Page 5 | [Open PDF at Page 5](architecture.pdf#page=6)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 3, Page 4, Page 5 | [Open PDF at Page 3](Env_Configuration.pdf#page=4)
+- **Final Project Report (Living Document)**: Page 4 | [Open PDF at Page 4](Final_Report.pdf#page=5)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 2, Page 3, Page 7, Page 9 | [Open PDF at Page 2](Operator_Installation_Guide.pdf#page=3)
+- **Local Food AI - Capstone Technical Presentation**: Page 5, Page 7 | [Open PDF at Page 5](Presentation_Technical.pdf#page=6)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 4, Page 10 | [Open PDF at Page 4](project_report.pdf#page=5)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 6 | [Open PDF at Page 6](taiga_audit_report.pdf#page=7)
+- **Local Food AI - Capstone Technical Document**: Page 7 | [Open PDF at Page 7](Technical_Document.pdf#page=8)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Security
+
+- **Local Food AI - Architecture Map**: Page 5 | [Open PDF at Page 5](architecture.pdf#page=6)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 3, Page 5 | [Open PDF at Page 3](Env_Configuration.pdf#page=4)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 6, Page 9 | [Open PDF at Page 6](Operator_Installation_Guide.pdf#page=7)
+- **Local Food AI - Capstone Technical Presentation**: Page 1, Page 2, Page 4, Page 5, Page 7 | [Open PDF at Page 1](Presentation_Technical.pdf#page=2)
+- **Local Food AI - Clinician User Manual Presentation**: Page 1, Page 4, Page 6 | [Open PDF at Page 1](Presentation_User.pdf#page=2)
+- **Capstone Project Report & File Documentation**: Page 4, Page 10 | [Open PDF at Page 4](project_report.pdf#page=5)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 3, Page 6 | [Open PDF at Page 3](taiga_audit_report.pdf#page=4)
+- **Local Food AI - Capstone Technical Document**: Page 4, Page 7 | [Open PDF at Page 4](Technical_Document.pdf#page=5)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 1, Page 2, Page 5 | [Open PDF at Page 1](User_Guide.pdf#page=2)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Streamlit
+
+- **Local Food AI - Architecture Map**: Page 3, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 3, Page 5 | [Open PDF at Page 3](disaster_recovery_plan.pdf#page=4)
+- **Distributed Deployment Guide**: Page 2, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 3, Page 4 | [Open PDF at Page 3](docker_connection.pdf#page=4)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 2, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 3, Page 5, Page 7, Page 9 | [Open PDF at Page 3](Operator_Installation_Guide.pdf#page=4)
+- **Local Food AI - Capstone Technical Presentation**: Page 5, Page 7 | [Open PDF at Page 5](Presentation_Technical.pdf#page=6)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 2, Page 3, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 1, Page 3, Page 5 | [Open PDF at Page 1](Start_Stop_Procedures.pdf#page=2)
+- **Taiga Agile Audit Report**: Page 6 | [Open PDF at Page 6](taiga_audit_report.pdf#page=7)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 5, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](URL_Formats.pdf#page=3)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Telemetry
+
+- **Local Food AI - Architecture Map**: Page 4, Page 5 | [Open PDF at Page 4](architecture.pdf#page=5)
+- **Database Backup and Restore Procedure**: Page 4, Page 5 | [Open PDF at Page 4](Backup_Procedure.pdf#page=5)
+- **Data Ingestion Pipeline**: Page 2, Page 3 | [Open PDF at Page 2](Data_Ingestion.pdf#page=3)
+- **Disaster Recovery & Backup Plan**: Page 3, Page 4, Page 5 | [Open PDF at Page 3](disaster_recovery_plan.pdf#page=4)
+- **Distributed Deployment Guide**: Page 4, Page 5 | [Open PDF at Page 4](distributed_deployment.pdf#page=5)
+- **Docker Connection & Health Check Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](docker_connection.pdf#page=2)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 2, Page 4, Page 5 | [Open PDF at Page 2](Env_Configuration.pdf#page=3)
+- **Final Project Report (Living Document)**: Page 3, Page 4 | [Open PDF at Page 3](Final_Report.pdf#page=4)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 5, Page 6 | [Open PDF at Page 5](Installation_Guide.pdf#page=6)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 1, Page 6, Page 7, Page 8, Page 9 | [Open PDF at Page 1](Operator_Installation_Guide.pdf#page=2)
+- **Local Food AI - Capstone Technical Presentation**: Page 1, Page 2, Page 5, Page 6, Page 7 | [Open PDF at Page 1](Presentation_Technical.pdf#page=2)
+- **Local Food AI - Clinician User Manual Presentation**: Page 5, Page 6 | [Open PDF at Page 5](Presentation_User.pdf#page=6)
+- **Capstone Project Report & File Documentation**: Page 2, Page 4, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 3, Page 4 | [Open PDF at Page 3](Recommendations.pdf#page=4)
+- **Local Food AI: Retro Planning**: Page 2, Page 3 | [Open PDF at Page 2](retro_planning.pdf#page=3)
+- **Scrum Artifacts**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Artifacts.pdf#page=3)
+- **Daily Scrums**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Daily.pdf#page=3)
+- **Sprint Plans**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Plan.pdf#page=3)
+- **Sprint Retrospectives**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Retro.pdf#page=3)
+- **Sprint Reviews**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Review.pdf#page=3)
+- **Scrum Wiki Master List & Index Portal**: Page 3, Page 4 | [Open PDF at Page 3](Scrum_Wiki.pdf#page=4)
+- **Infrastructure Stop & Start Operational Procedures**: Page 4, Page 5 | [Open PDF at Page 4](Start_Stop_Procedures.pdf#page=5)
+- **Taiga Agile Audit Report**: Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 3](taiga_audit_report.pdf#page=4)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 2, Page 3 | [Open PDF at Page 2](Test_Cases_Sprint8.pdf#page=3)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 4, Page 5 | [Open PDF at Page 4](Uninstall_Guide.pdf#page=5)
+- **Local Food AI - Network Connection URL Directory**: Page 3, Page 4 | [Open PDF at Page 3](URL_Formats.pdf#page=4)
+- **Local Food AI - User Description & Functional Guide**: Page 3, Page 4 | [Open PDF at Page 3](User_Description.pdf#page=4)
+- **Local Food AI - Clinician User Manual**: Page 4, Page 5 | [Open PDF at Page 4](User_Guide.pdf#page=5)
+- **Documentation Home**: Page 2, Page 3 | [Open PDF at Page 2](Wiki_Home.pdf#page=3)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)
+
+### Vitamins
+
+- **Local Food AI - Architecture Map**: Page 3, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 5 | [Open PDF at Page 5](disaster_recovery_plan.pdf#page=6)
+- **Distributed Deployment Guide**: Page 5 | [Open PDF at Page 5](distributed_deployment.pdf#page=6)
+- **Docker Connection & Health Check Guide**: Page 4 | [Open PDF at Page 4](docker_connection.pdf#page=5)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 4 | [Open PDF at Page 4](Final_Report.pdf#page=5)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 6 | [Open PDF at Page 6](Installation_Guide.pdf#page=7)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 9 | [Open PDF at Page 9](Operator_Installation_Guide.pdf#page=10)
+- **Local Food AI - Capstone Technical Presentation**: Page 3, Page 7 | [Open PDF at Page 3](Presentation_Technical.pdf#page=4)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 10 | [Open PDF at Page 10](project_report.pdf#page=11)
+- **Recommendations for Future Agile Projects**: Page 4 | [Open PDF at Page 4](Recommendations.pdf#page=5)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 4 | [Open PDF at Page 4](Scrum_Wiki.pdf#page=5)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 6 | [Open PDF at Page 6](taiga_audit_report.pdf#page=7)
+- **Local Food AI - Capstone Technical Document**: Page 7 | [Open PDF at Page 7](Technical_Document.pdf#page=8)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 5 | [Open PDF at Page 5](Uninstall_Guide.pdf#page=6)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 3 | [Open PDF at Page 3](WSL_Deployment.pdf#page=4)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### WSL
+
+- **Local Food AI - Architecture Map**: Page 3, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 5 | [Open PDF at Page 5](Backup_Procedure.pdf#page=6)
+- **Data Ingestion Pipeline**: Page 3 | [Open PDF at Page 3](Data_Ingestion.pdf#page=4)
+- **Disaster Recovery & Backup Plan**: Page 3, Page 5 | [Open PDF at Page 3](disaster_recovery_plan.pdf#page=4)
+- **Distributed Deployment Guide**: Page 2, Page 3, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 1, Page 2, Page 4 | [Open PDF at Page 1](docker_connection.pdf#page=2)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 5 | [Open PDF at Page 5](Env_Configuration.pdf#page=6)
+- **Final Project Report (Living Document)**: Page 4 | [Open PDF at Page 4](Final_Report.pdf#page=5)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 1, Page 2, Page 3, Page 4, Page 6 | [Open PDF at Page 1](Installation_Guide.pdf#page=2)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 1, Page 3, Page 4, Page 5, Page 6, Page 7, Page 9 | [Open PDF at Page 1](Operator_Installation_Guide.pdf#page=2)
+- **Local Food AI - Capstone Technical Presentation**: Page 7 | [Open PDF at Page 7](Presentation_Technical.pdf#page=8)
+- **Local Food AI - Clinician User Manual Presentation**: Page 6 | [Open PDF at Page 6](Presentation_User.pdf#page=7)
+- **Capstone Project Report & File Documentation**: Page 3, Page 4, Page 5, Page 6, Page 7, Page 8, Page 10 | [Open PDF at Page 3](project_report.pdf#page=4)
+- **Recommendations for Future Agile Projects**: Page 2, Page 4 | [Open PDF at Page 2](Recommendations.pdf#page=3)
+- **Local Food AI: Retro Planning**: Page 3 | [Open PDF at Page 3](retro_planning.pdf#page=4)
+- **Scrum Artifacts**: Page 3 | [Open PDF at Page 3](Scrum_Artifacts.pdf#page=4)
+- **Daily Scrums**: Page 3 | [Open PDF at Page 3](Scrum_Daily.pdf#page=4)
+- **Sprint Plans**: Page 3 | [Open PDF at Page 3](Scrum_Plan.pdf#page=4)
+- **Sprint Retrospectives**: Page 3 | [Open PDF at Page 3](Scrum_Retro.pdf#page=4)
+- **Sprint Reviews**: Page 3 | [Open PDF at Page 3](Scrum_Review.pdf#page=4)
+- **Scrum Wiki Master List & Index Portal**: Page 3, Page 4 | [Open PDF at Page 3](Scrum_Wiki.pdf#page=4)
+- **Infrastructure Stop & Start Operational Procedures**: Page 5 | [Open PDF at Page 5](Start_Stop_Procedures.pdf#page=6)
+- **Taiga Agile Audit Report**: Page 2, Page 4, Page 6 | [Open PDF at Page 2](taiga_audit_report.pdf#page=3)
+- **Local Food AI - Capstone Technical Document**: Page 7 | [Open PDF at Page 7](Technical_Document.pdf#page=8)
+- **Sprint 8 Legacy Test Cases**: Page 3 | [Open PDF at Page 3](Test_Cases_Sprint8.pdf#page=4)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 1, Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Uninstall_Guide.pdf#page=2)
+- **Local Food AI - Network Connection URL Directory**: Page 4 | [Open PDF at Page 4](URL_Formats.pdf#page=5)
+- **Local Food AI - User Description & Functional Guide**: Page 4 | [Open PDF at Page 4](User_Description.pdf#page=5)
+- **Local Food AI - Clinician User Manual**: Page 5 | [Open PDF at Page 5](User_Guide.pdf#page=6)
+- **Documentation Home**: Page 3 | [Open PDF at Page 3](Wiki_Home.pdf#page=4)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 4 | [Open PDF at Page 4](zabbix_monitoring.pdf#page=5)
+
+### Zabbix
+
+- **Local Food AI - Architecture Map**: Page 3, Page 4, Page 5 | [Open PDF at Page 3](architecture.pdf#page=4)
+- **Database Backup and Restore Procedure**: Page 4, Page 5 | [Open PDF at Page 4](Backup_Procedure.pdf#page=5)
+- **Data Ingestion Pipeline**: Page 2, Page 3 | [Open PDF at Page 2](Data_Ingestion.pdf#page=3)
+- **Disaster Recovery & Backup Plan**: Page 3, Page 4, Page 5 | [Open PDF at Page 3](disaster_recovery_plan.pdf#page=4)
+- **Distributed Deployment Guide**: Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 2](distributed_deployment.pdf#page=3)
+- **Docker Connection & Health Check Guide**: Page 1, Page 2, Page 3, Page 4 | [Open PDF at Page 1](docker_connection.pdf#page=2)
+- **Local Food AI - Environment Variables Configuration Runbook**: Page 1, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Env_Configuration.pdf#page=2)
+- **Final Project Report (Living Document)**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](Final_Report.pdf#page=3)
+- **Local Food AI - Detailed Installation and Deployment Guide**: Page 5, Page 6 | [Open PDF at Page 5](Installation_Guide.pdf#page=6)
+- **Local Food AI - Detailed Operator Installation Guide**: Page 1, Page 2, Page 3, Page 4, Page 6, Page 7, Page 8, Page 9 | [Open PDF at Page 1](Operator_Installation_Guide.pdf#page=2)
+- **Local Food AI - Capstone Technical Presentation**: Page 2, Page 5, Page 6, Page 7 | [Open PDF at Page 2](Presentation_Technical.pdf#page=3)
+- **Local Food AI - Clinician User Manual Presentation**: Page 5, Page 6 | [Open PDF at Page 5](Presentation_User.pdf#page=6)
+- **Capstone Project Report & File Documentation**: Page 2, Page 3, Page 4, Page 6, Page 9, Page 10 | [Open PDF at Page 2](project_report.pdf#page=3)
+- **Recommendations for Future Agile Projects**: Page 3, Page 4 | [Open PDF at Page 3](Recommendations.pdf#page=4)
+- **Local Food AI: Retro Planning**: Page 2, Page 3 | [Open PDF at Page 2](retro_planning.pdf#page=3)
+- **Scrum Artifacts**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Artifacts.pdf#page=3)
+- **Daily Scrums**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Daily.pdf#page=3)
+- **Sprint Plans**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Plan.pdf#page=3)
+- **Sprint Retrospectives**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Retro.pdf#page=3)
+- **Sprint Reviews**: Page 2, Page 3 | [Open PDF at Page 2](Scrum_Review.pdf#page=3)
+- **Scrum Wiki Master List & Index Portal**: Page 3, Page 4 | [Open PDF at Page 3](Scrum_Wiki.pdf#page=4)
+- **Infrastructure Stop & Start Operational Procedures**: Page 1, Page 3, Page 4, Page 5 | [Open PDF at Page 1](Start_Stop_Procedures.pdf#page=2)
+- **Taiga Agile Audit Report**: Page 3, Page 4, Page 5, Page 6 | [Open PDF at Page 3](taiga_audit_report.pdf#page=4)
+- **Local Food AI - Capstone Technical Document**: Page 2, Page 3, Page 5, Page 6, Page 7 | [Open PDF at Page 2](Technical_Document.pdf#page=3)
+- **Sprint 8 Legacy Test Cases**: Page 2, Page 3 | [Open PDF at Page 2](Test_Cases_Sprint8.pdf#page=3)
+- **Local Food AI - Uninstallation & Teardown Guide**: Page 2, Page 3, Page 4, Page 5 | [Open PDF at Page 2](Uninstall_Guide.pdf#page=3)
+- **Local Food AI - Network Connection URL Directory**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](URL_Formats.pdf#page=3)
+- **Local Food AI - User Description & Functional Guide**: Page 3, Page 4 | [Open PDF at Page 3](User_Description.pdf#page=4)
+- **Local Food AI - Clinician User Manual**: Page 4, Page 5 | [Open PDF at Page 4](User_Guide.pdf#page=5)
+- **Documentation Home**: Page 2, Page 3 | [Open PDF at Page 2](Wiki_Home.pdf#page=3)
+- **WSL Deployment Runbook**: Page 2, Page 3 | [Open PDF at Page 2](WSL_Deployment.pdf#page=3)
+- **Zabbix Telemetry & Monitoring Guide**: Page 2, Page 3, Page 4 | [Open PDF at Page 2](zabbix_monitoring.pdf#page=3)

TEMPAT SAMPAH
docs/Global_Index.pdf


TEMPAT SAMPAH
docs/Operator_Installation_Guide.pdf


TEMPAT SAMPAH
docs/Presentation_Technical.pdf


TEMPAT SAMPAH
docs/Presentation_User.pdf


TEMPAT SAMPAH
docs/Recommendations.pdf


TEMPAT SAMPAH
docs/Scrum_Artifacts.pdf


TEMPAT SAMPAH
docs/Scrum_Daily.pdf


TEMPAT SAMPAH
docs/Scrum_Plan.pdf


TEMPAT SAMPAH
docs/Scrum_Retro.pdf


TEMPAT SAMPAH
docs/Scrum_Review.pdf


TEMPAT SAMPAH
docs/Scrum_Wiki.pdf


TEMPAT SAMPAH
docs/Start_Stop_Procedures.pdf


TEMPAT SAMPAH
docs/Technical_Document.pdf


TEMPAT SAMPAH
docs/Test_Cases_Sprint8.pdf


TEMPAT SAMPAH
docs/URL_Formats.pdf


TEMPAT SAMPAH
docs/Uninstall_Guide.pdf


TEMPAT SAMPAH
docs/User_Description.pdf


TEMPAT SAMPAH
docs/User_Guide.pdf


TEMPAT SAMPAH
docs/WSL_Deployment.pdf


TEMPAT SAMPAH
docs/Wiki_Home.pdf


TEMPAT SAMPAH
docs/architecture.pdf


TEMPAT SAMPAH
docs/disaster_recovery_plan.pdf


TEMPAT SAMPAH
docs/distributed_deployment.pdf


TEMPAT SAMPAH
docs/docker_connection.pdf


TEMPAT SAMPAH
docs/project_report.pdf


TEMPAT SAMPAH
docs/retro_planning.pdf


TEMPAT SAMPAH
docs/taiga_audit_report.pdf


TEMPAT SAMPAH
docs/zabbix_monitoring.pdf


+ 602 - 0
index.html

@@ -0,0 +1,602 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Local Food AI Documentation Portal</title>
+    <style>
+        body {
+            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+            background-color: #f4f7f6;
+            margin: 0;
+            padding: 0;
+            color: #333;
+        }
+        .header {
+            background: linear-gradient(135deg, #1b263b, #0d1b2a);
+            color: white;
+            padding: 40px 20px;
+            text-align: center;
+            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+        }
+        .header h1 {
+            margin: 0;
+            font-size: 28pt;
+            font-weight: 600;
+        }
+        .header p {
+            margin: 10px 0 0 0;
+            font-size: 14pt;
+            color: #a3b18a;
+        }
+        .container {
+            max-width: 1200px;
+            margin: 40px auto;
+            padding: 0 20px;
+        }
+        .class-meta {
+            background-color: white;
+            padding: 20px;
+            border-radius: 8px;
+            margin-bottom: 30px;
+            box-shadow: 0 2px 4px rgba(0,0,0,0.05);
+            display: flex;
+            justify-content: space-around;
+            flex-wrap: wrap;
+            font-size: 11pt;
+        }
+        .class-meta div {
+            margin: 10px;
+        }
+        .grid {
+            display: grid;
+            grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
+            gap: 25px;
+        }
+        .card {
+            background-color: white;
+            border-radius: 8px;
+            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
+            transition: transform 0.2s ease, box-shadow 0.2s ease;
+            overflow: hidden;
+            border: 1px solid #e9ecef;
+        }
+        .card:hover {
+            transform: translateY(-5px);
+            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
+        }
+        .card-body {
+            padding: 25px;
+            display: flex;
+            flex-direction: column;
+            height: 180px;
+            justify-content: space-between;
+        }
+        .card-title {
+            margin: 0 0 10px 0;
+            font-size: 15pt;
+            color: #1b263b;
+        }
+        .card-text {
+            font-size: 10pt;
+            color: #666;
+            margin: 0 0 20px 0;
+            line-height: 1.5;
+        }
+        .card-links {
+            display: flex;
+            gap: 10px;
+        }
+        .btn {
+            display: inline-block;
+            padding: 10px 15px;
+            font-size: 9.5pt;
+            text-decoration: none;
+            border-radius: 5px;
+            text-align: center;
+            font-weight: 600;
+            flex: 1;
+        }
+        .btn-primary {
+            background-color: #0077b6;
+            color: white;
+        }
+        .btn-primary:hover {
+            background-color: #0096c7;
+        }
+        .btn-secondary {
+            background-color: #eaeef1;
+            color: #495057;
+        }
+        .btn-secondary:hover {
+            background-color: #dee2e6;
+        }
+        .footer {
+            text-align: center;
+            padding: 40px;
+            font-size: 10pt;
+            color: #888;
+        }
+    </style>
+</head>
+<body>
+    <div class="header">
+        <h1>Local Food AI</h1>
+        <p>Unified Project Documentation Portal</p>
+    </div>
+    <div class="container">
+        <div class="class-meta">
+            <div><strong>Class Course:</strong> B1AI</div>
+            <div><strong>Student Author:</strong> François LANGE</div>
+            <div><strong>Academic Year:</strong> 2025/2026</div>
+        </div>
+        <div class="grid">
+            
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Backup Procedure</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Backup_Procedure.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Backup_Procedure.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Data Ingestion</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Data_Ingestion.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Data_Ingestion.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Env Configuration</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Env_Configuration.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Env_Configuration.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Final Report</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Final_Report.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Final_Report.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Global Index</h3>
+                    <p class="card-text">Unified global term index cross-referencing keywords across all documentation files.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Global_Index.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Global_Index.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Installation Guide</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Installation_Guide.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Installation_Guide.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Operator Installation Guide</h3>
+                    <p class="card-text">Naked OS installation guide covering package installations, python dependencies, and native system configs.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Operator_Installation_Guide.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Operator_Installation_Guide.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Presentation Technical</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Presentation_Technical.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Presentation_Technical.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Presentation User</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Presentation_User.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Presentation_User.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Recommendations</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Recommendations.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Recommendations.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Scrum Artifacts</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Scrum_Artifacts.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Scrum_Artifacts.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Scrum Daily</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Scrum_Daily.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Scrum_Daily.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Scrum Plan</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Scrum_Plan.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Scrum_Plan.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Scrum Retro</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Scrum_Retro.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Scrum_Retro.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Scrum Review</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Scrum_Review.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Scrum_Review.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Scrum Wiki</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Scrum_Wiki.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Scrum_Wiki.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Start Stop Procedures</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Start_Stop_Procedures.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Start_Stop_Procedures.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Technical Document</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Technical_Document.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Technical_Document.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Test Cases Sprint8</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Test_Cases_Sprint8.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Test_Cases_Sprint8.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Url Formats</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/URL_Formats.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/URL_Formats.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Uninstall Guide</h3>
+                    <p class="card-text">Clean uninstallation workflow to remove all database, cache, airflow, and container resources from physical hosts.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Uninstall_Guide.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Uninstall_Guide.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">User Description</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/User_Description.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/User_Description.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">User Guide</h3>
+                    <p class="card-text">User manual outlining Streamlit login, meal planning, plate building, and chat assistant instructions.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/User_Guide.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/User_Guide.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Wsl Deployment</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/WSL_Deployment.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/WSL_Deployment.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Wiki Home</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/Wiki_Home.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/Wiki_Home.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Architecture</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/architecture.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/architecture.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Disaster Recovery Plan</h3>
+                    <p class="card-text">Recovery policies, backup strategies, and restore drills to ensure zero data loss during infrastructure outages.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/disaster_recovery_plan.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/disaster_recovery_plan.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Distributed Deployment</h3>
+                    <p class="card-text">Installation topology guide for deploying the application stack across multiple hypervisors (WSL, Hyper-V, VirtualBox) or physical servers.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/distributed_deployment.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/distributed_deployment.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Docker Connection</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/docker_connection.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/docker_connection.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Project Report</h3>
+                    <p class="card-text">Comprehensive sprint report detailing system catalog, directory mappings, and final scrum delivery notes.</p>
+                </div>
+                <div class="card-links">
+                    <a href="Project.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/project_report.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Retro Planning</h3>
+                    <p class="card-text">Timeline planning showing daily milestones, task allocations, and sprint scheduling sheets.</p>
+                </div>
+                <div class="card-links">
+                    <a href="Retro Planning.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/retro_planning.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Taiga Audit Report</h3>
+                    <p class="card-text">Project documentation deliverable covering specifications and guides.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/taiga_audit_report.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/taiga_audit_report.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">Zabbix Monitoring</h3>
+                    <p class="card-text">SNMP trap configurations, alert channels, and Zabbix server integration mappings.</p>
+                </div>
+                <div class="card-links">
+                    <a href="docs/zabbix_monitoring.pdf" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="docs/zabbix_monitoring.md" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        
+        </div>
+    </div>
+    <div class="footer">
+        &copy; 2026 François LANGE (Class B1AI). All rights reserved.
+    </div>
+</body>
+</html>

+ 597 - 118
scripts/generate_pdfs.py

@@ -1,19 +1,355 @@
-#ident "@(#)$Format:LocalFoodAI_lanfr144:generate_pdfs.py:%an:%ae:%ad:%cn:%ce:%cd:%H:%D:%N$"
 import os
 import glob
 import re
-from markdown_pdf import MarkdownPdf
-from markdown_pdf import Section
+import fitz
+import shutil
+import subprocess
+from datetime import datetime
+from markdown_pdf import MarkdownPdf, Section
+
+# List of key technical terms to search and index across all documents
+KEY_TERMS = [
+    "AI", "MySQL", "Zabbix", "Docker", "Streamlit", "Nginx", "Airflow", 
+    "RAG", "Allergens", "Vitamins", "Minerals", "Clinical", "WSL", "Ollama",
+    "LLM", "Database", "Security", "Telemetry", "Backup", "Firewall", "SMTP"
+]
+
+def clean_header_text(text):
+    # Remove markdown links: [text](url) -> text
+    text = re.sub(r'\[([^\]]+)\]\([^)]+\)', r'\1', text)
+    # Remove bold/italic/code formatting
+    text = re.sub(r'[*_`]', '', text)
+    return text.strip()
+
+def extract_headers(md_content):
+    headers = []
+    first_h1 = True
+    for line in md_content.splitlines():
+        if line.startswith('#'):
+            match = re.match(r'^(#{1,3})\s+(.+)$', line)
+            if match:
+                level = len(match.group(1))
+                t = match.group(2).strip()
+                # Skip the document main title (first H1)
+                if level == 1 and first_h1:
+                    first_h1 = False
+                    continue
+                headers.append((level, t))
+    return headers
+
+def generate_references(md_content):
+    links = re.findall(r'\[([^\]]+)\]\((https?://[^\)]+)\)', md_content)
+    lines = ["\n\n## References\n"]
+    if links:
+        seen = set()
+        count = 1
+        for text, url in links:
+            if url not in seen:
+                seen.add(url)
+                clean_text = re.sub(r'[*_`]', '', text)
+                lines.append(f"{count}. **{clean_text}**: {url}")
+                count += 1
+                if count > 10:
+                    break
+    else:
+        lines.append("1. **OpenFoodFacts Dataset & API Catalog**: Detailed food ingredients database. (https://world.openfoodfacts.org/)")
+        lines.append("2. **Ollama Local LLM Inference Engine**: Lightweight instruction-following llama3.2 runtimes. (https://ollama.com/)")
+        lines.append("3. **Zabbix Enterprise Telemetry and Monitoring**: System health and performance logging. (https://www.zabbix.com/)")
+    return "\n".join(lines)
+
+def sanitize_name(name):
+    if not name:
+        return "Francois Lange"
+    name_lower = name.lower()
+    if "fran" in name_lower or "lange" in name_lower or "lanfr" in name_lower:
+        return "Francois Lange"
+    return name
+
+def get_git_info_for_file(file_path):
+    try:
+        cmd = [
+            "git", "log", "-1",
+            "--date=format:%Y/%m/%d %H:%M:%S",
+            "--format=%an|%ae|%ad|%cn|%ce|%cd|%H|%D|%N",
+            "--", file_path
+        ]
+        out = subprocess.check_output(cmd, stderr=subprocess.DEVNULL).decode('utf-8', errors='ignore').strip()
+        if out:
+            parts = out.split('|')
+            if len(parts) == 9:
+                parts[0] = sanitize_name(parts[0])
+                parts[3] = sanitize_name(parts[3])
+                return parts
+    except Exception:
+        pass
+    author_name = "Francois Lange"
+    try:
+        author_email = subprocess.check_output(["git", "config", "user.email"], stderr=subprocess.DEVNULL).decode('utf-8', errors='ignore').strip() or "lanfr144@school.lu"
+    except Exception:
+        author_email = "lanfr144@school.lu"
+    now_str = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
+    return [author_name, author_email, now_str, author_name, author_email, now_str, "Not Committed Yet", "local", "none"]
+
+def compile_pdf_document(md_file, title, md_content, toc_content, index_content, references_content, root_dir, user_css):
+    pdf = MarkdownPdf(optimize=True, plugins={"mermaid": {}})
+    base_name = os.path.basename(md_file)
+    
+    # 1. Section 1: Cover Page
+    cover_html = f"""
+<div style="text-align: center; font-family: 'Helvetica', 'Arial', sans-serif; padding-top: 150px; padding-bottom: 150px;">
+    <h1 style="font-size: 28pt; font-weight: bold; margin-bottom: 20px; color: #000000; line-height: 1.2;">{title}</h1>
+    <p style="font-size: 14pt; color: #666666; margin-top: 10px; margin-bottom: 150px; letter-spacing: 1px; text-transform: uppercase;">Project Deliverable</p>
+    <div style="border-top: 2px solid #eaeaea; width: 80%; margin: 0 auto 50px auto;"></div>
+    <table style="margin: 0 auto; text-align: left; font-size: 12pt; border: none; width: 60%; line-height: 2.0; border-collapse: collapse;">
+        <tr style="border: none;"><td style="font-weight: bold; color: #555555; padding: 5px; border: none; width: 40%;">Course Class:</td><td style="color: #111111; padding: 5px; border: none;">B1AI</td></tr>
+        <tr style="border: none;"><td style="font-weight: bold; color: #555555; padding: 5px; border: none;">Author:</td><td style="color: #111111; padding: 5px; border: none;">François LANGE</td></tr>
+        <tr style="border: none;"><td style="font-weight: bold; color: #555555; padding: 5px; border: none;">Date:</td><td style="color: #111111; padding: 5px; border: none;">2026/06/19</td></tr>
+    </table>
+</div>
+"""
+    pdf.add_section(Section(cover_html, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+    
+    # 2. Section 2: Blank Page
+    blank_content = "<div style='height: 1000px;'>&nbsp;</div>"
+    pdf.add_section(Section(blank_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+    
+    # 3. Section 3: Printed Table of Contents
+    pdf.add_section(Section(toc_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+    
+    # 4. Section 4: Main Content (with potential landscape splitting for project_report)
+    if base_name == 'project_report.md':
+        parts = md_content.split('## 2. Project File Catalog & Documentation')
+        if len(parts) == 2:
+            portrait_part1 = parts[0]
+            remaining = parts[1]
+            parts2 = remaining.split('## 3. Directory Structure Map')
+            if len(parts2) == 2:
+                landscape_part = '## 2. Project File Catalog & Documentation' + parts2[0]
+                portrait_part2 = '## 3. Directory Structure Map' + parts2[1]
+                
+                pdf.add_section(Section(portrait_part1, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+                pdf.add_section(Section(landscape_part, paper_size="A4-L", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+                pdf.add_section(Section(portrait_part2 + "\n" + references_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+            else:
+                pdf.add_section(Section(md_content + "\n" + references_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+        else:
+            pdf.add_section(Section(md_content + "\n" + references_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+    else:
+        pdf.add_section(Section(md_content + "\n" + references_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+        
+    # 5. Section 5: Printed Index
+    pdf.add_section(Section(index_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+    
+    return pdf
+
+def generate_html_portal(root_dir, md_files):
+    portal_path = os.path.join(root_dir, 'index.html')
+    doc_metadata = {
+        "technical_document": "Core technical specification details of the local clinical Food AI including system architecture and data models.",
+        "distributed_deployment": "Installation topology guide for deploying the application stack across multiple hypervisors (WSL, Hyper-V, VirtualBox) or physical servers.",
+        "disaster_recovery_plan": "Recovery policies, backup strategies, and restore drills to ensure zero data loss during infrastructure outages.",
+        "Uninstall_Guide": "Clean uninstallation workflow to remove all database, cache, airflow, and container resources from physical hosts.",
+        "Operator_Installation_Guide": "Naked OS installation guide covering package installations, python dependencies, and native system configs.",
+        "project_report": "Comprehensive sprint report detailing system catalog, directory mappings, and final scrum delivery notes.",
+        "retro_planning": "Timeline planning showing daily milestones, task allocations, and sprint scheduling sheets.",
+        "User_Guide": "User manual outlining Streamlit login, meal planning, plate building, and chat assistant instructions.",
+        "zabbix_monitoring": "SNMP trap configurations, alert channels, and Zabbix server integration mappings.",
+        "Global_Index": "Unified global term index cross-referencing keywords across all documentation files."
+    }
+    
+    cards_html = []
+    for md_file in sorted(md_files):
+        base = os.path.basename(md_file).replace('.md', '')
+        if "Header_Footer" in base:
+            continue
+        
+        pdf_rel_path = f"docs/{base}.pdf"
+        md_rel_path = f"docs/{base}.md"
+        title = base.replace('_', ' ').replace('-', ' ').title()
+        
+        if base == "project_report":
+            pdf_rel_path = "Project.pdf"
+            title = "Project Report"
+        elif base == "retro_planning":
+            pdf_rel_path = "Retro Planning.pdf"
+            title = "Retro Planning"
+            
+        desc = doc_metadata.get(base, "Project documentation deliverable covering specifications and guides.")
+        
+        cards_html.append(f"""
+        <div class="card">
+            <div class="card-body">
+                <div>
+                    <h3 class="card-title">{title}</h3>
+                    <p class="card-text">{desc}</p>
+                </div>
+                <div class="card-links">
+                    <a href="{pdf_rel_path}" class="btn btn-primary" target="_blank">📄 View PDF</a>
+                    <a href="{md_rel_path}" class="btn btn-secondary" target="_blank">📝 View Markdown</a>
+                </div>
+            </div>
+        </div>
+        """)
+        
+    cards_str = "\n".join(cards_html)
+    
+    html_content = f"""<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Local Food AI Documentation Portal</title>
+    <style>
+        body {{
+            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+            background-color: #f4f7f6;
+            margin: 0;
+            padding: 0;
+            color: #333;
+        }}
+        .header {{
+            background: linear-gradient(135deg, #1b263b, #0d1b2a);
+            color: white;
+            padding: 40px 20px;
+            text-align: center;
+            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+        }}
+        .header h1 {{
+            margin: 0;
+            font-size: 28pt;
+            font-weight: 600;
+        }}
+        .header p {{
+            margin: 10px 0 0 0;
+            font-size: 14pt;
+            color: #a3b18a;
+        }}
+        .container {{
+            max-width: 1200px;
+            margin: 40px auto;
+            padding: 0 20px;
+        }}
+        .class-meta {{
+            background-color: white;
+            padding: 20px;
+            border-radius: 8px;
+            margin-bottom: 30px;
+            box-shadow: 0 2px 4px rgba(0,0,0,0.05);
+            display: flex;
+            justify-content: space-around;
+            flex-wrap: wrap;
+            font-size: 11pt;
+        }}
+        .class-meta div {{
+            margin: 10px;
+        }}
+        .grid {{
+            display: grid;
+            grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
+            gap: 25px;
+        }}
+        .card {{
+            background-color: white;
+            border-radius: 8px;
+            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
+            transition: transform 0.2s ease, box-shadow 0.2s ease;
+            overflow: hidden;
+            border: 1px solid #e9ecef;
+        }}
+        .card:hover {{
+            transform: translateY(-5px);
+            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
+        }}
+        .card-body {{
+            padding: 25px;
+            display: flex;
+            flex-direction: column;
+            height: 180px;
+            justify-content: space-between;
+        }}
+        .card-title {{
+            margin: 0 0 10px 0;
+            font-size: 15pt;
+            color: #1b263b;
+        }}
+        .card-text {{
+            font-size: 10pt;
+            color: #666;
+            margin: 0 0 20px 0;
+            line-height: 1.5;
+        }}
+        .card-links {{
+            display: flex;
+            gap: 10px;
+        }}
+        .btn {{
+            display: inline-block;
+            padding: 10px 15px;
+            font-size: 9.5pt;
+            text-decoration: none;
+            border-radius: 5px;
+            text-align: center;
+            font-weight: 600;
+            flex: 1;
+        }}
+        .btn-primary {{
+            background-color: #0077b6;
+            color: white;
+        }}
+        .btn-primary:hover {{
+            background-color: #0096c7;
+        }}
+        .btn-secondary {{
+            background-color: #eaeef1;
+            color: #495057;
+        }}
+        .btn-secondary:hover {{
+            background-color: #dee2e6;
+        }}
+        .footer {{
+            text-align: center;
+            padding: 40px;
+            font-size: 10pt;
+            color: #888;
+        }}
+    </style>
+</head>
+<body>
+    <div class="header">
+        <h1>Local Food AI</h1>
+        <p>Unified Project Documentation Portal</p>
+    </div>
+    <div class="container">
+        <div class="class-meta">
+            <div><strong>Class Course:</strong> B1AI</div>
+            <div><strong>Student Author:</strong> François LANGE</div>
+            <div><strong>Academic Year:</strong> 2025/2026</div>
+        </div>
+        <div class="grid">
+            {cards_str}
+        </div>
+    </div>
+    <div class="footer">
+        &copy; 2026 François LANGE (Class B1AI). All rights reserved.
+    </div>
+</body>
+</html>
+"""
+    with open(portal_path, 'w', encoding='utf-8') as f:
+        f.write(html_content)
+    print("Created index.html portal successfully.")
 
 def main():
     docs_dir = os.path.join(os.path.dirname(__file__), '..', 'docs')
     md_files = glob.glob(os.path.join(docs_dir, '*.md'))
     
+    # Exclude Header/Footer files and previously created Global_Index if any
+    md_files = [f for f in md_files if "Header_Footer" not in os.path.basename(f) and "Global_Index" not in os.path.basename(f)]
+    
     if not md_files:
         print("No markdown files found in docs/")
         return
         
-    # Use relative paths for fonts to ensure portability of PDF generation
     root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')).replace('\\', '/')
     
     user_css = """
@@ -80,167 +416,318 @@ def main():
     }
     """
 
+    global_term_index = {} # Structure: { term: [ (doc_title, pdf_path, [page_numbers]) ] }
+    doc_data = {} # Structure: { md_file: { title, md_content, headers, references } }
+
+    # ==========================================
+    # PASS 1: Generate Draft PDFs and Find Pages
+    # ==========================================
+    print("=== STARTING DRAFT COMPILATION AND ANALYSIS PASS ===")
+    
     for md_file in md_files:
-        pdf_file = md_file.replace('.md', '.pdf')
-        print(f"Converting {os.path.basename(md_file)} to PDF...")
+        print(f"Analyzing {os.path.basename(md_file)}...")
         
         with open(md_file, 'r', encoding='utf-8') as f:
             md_content = f.read()
             
-        import subprocess
-        def sanitize_name(name):
-            if not name:
-                return "Francois Lange"
-            name_lower = name.lower()
-            if "fran" in name_lower or "lange" in name_lower or "lanfr" in name_lower:
-                return "Francois Lange"
-            return name
-
-        def get_git_info_for_file(file_path):
-            try:
-                cmd = [
-                    "git", "log", "-1",
-                    "--date=format:%Y/%m/%d %H:%M:%S",
-                    "--format=%an|%ae|%ad|%cn|%ce|%cd|%H|%D|%N",
-                    "--", file_path
-                ]
-                out = subprocess.check_output(cmd, stderr=subprocess.DEVNULL).decode('utf-8', errors='ignore').strip()
-                if out:
-                    parts = out.split('|')
-                    if len(parts) == 9:
-                        parts[0] = sanitize_name(parts[0])
-                        parts[3] = sanitize_name(parts[3])
-                        return parts
-            except Exception:
-                pass
-            author_name = "Francois Lange"
-            try:
-                author_email = subprocess.check_output(["git", "config", "user.email"], stderr=subprocess.DEVNULL).decode('utf-8', errors='ignore').strip() or "lanfr144@school.lu"
-            except Exception:
-                author_email = "lanfr144@school.lu"
-            from datetime import datetime
-            now_str = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
-            return [author_name, author_email, now_str, author_name, author_email, now_str, "Not Committed Yet", "local", "none"]
-
-        # Dynamic smudging of the Format placeholder for this specific file
+        # Format replacements
         base_name = os.path.basename(md_file)
         info = get_git_info_for_file(md_file)
         replacement = f"$Format:LocalFoodAI_lanfr144:generate_pdfs.py:%an:%ae:%ad:%cn:%ce:%cd:%H:%D:%N$"
-        
-        # Replace the raw format template if present
         pattern = r'\$Format:LocalFoodAI_lanfr144:generate_pdfs.py:%an:%ae:%ad:%cn:%ce:%cd:%H:%D:%N$'
         md_content = re.sub(pattern, replacement, md_content)
         
-        # Clean up absolute file:/// paths to relative paths
         md_content = re.sub(r'file:///.*?/docs/([a-zA-Z0-9_-]+)\.md', r'\1.pdf', md_content, flags=re.IGNORECASE)
         md_content = re.sub(r'file:///.*?/Food/([a-zA-Z0-9_.-]+)', r'../\1', md_content, flags=re.IGNORECASE)
-        
-        # Add a blank line after code blocks to force copy-paste blank line
         md_content = re.sub(r'(```[a-zA-Z0-9_-]*\n[\s\S]*?\n```)', r'\1\n\n', md_content)
-        
-        # Convert any relative markdown links in standard format [text](filename.md) or [text](./filename.md) to point to .pdf
         md_content = re.sub(r'\]\((?!http|https)([a-zA-Z0-9_./-]+)\.md(#[a-zA-Z0-9_-]+)?\)', r'](\1.pdf\2)', md_content, flags=re.IGNORECASE)
 
+        # Title parsing
+        title_match = re.search(r'^#\s+(.+)$', md_content, re.MULTILINE)
+        if title_match:
+            doc_title = title_match.group(1).strip()
+            doc_title = re.sub(r'[*_`#]', '', doc_title).strip()
+        else:
+            doc_title = base_name.replace('.md', '').replace('_', ' ').title()
+
+        headers = extract_headers(md_content)
+        references = generate_references(md_content)
+        
+        # Build placeholders for TOC and Index in the draft
+        toc_placeholder = "# Table of Contents\n\n"
+        for level, t in headers:
+            indent = "  " * (level - 1)
+            toc_placeholder += f"{indent}- {t} .................................................... Page 00\n"
+            
+        index_placeholder = "## Index\n\n"
+        for term in KEY_TERMS:
+            index_placeholder += f"- **{term}**: Page 00\n"
+
+        doc_data[md_file] = {
+            "title": doc_title,
+            "md_content": md_content,
+            "headers": headers,
+            "references": references
+        }
+
         try:
-            pdf = MarkdownPdf(toc_level=2, optimize=True, plugins={"mermaid": {}})
+            # Compile draft PDF
+            pdf = compile_pdf_document(
+                md_file, doc_title, md_content, toc_placeholder, 
+                index_placeholder, references, root_dir, user_css
+            )
+            draft_pdf_file = md_file.replace('.md', '_draft.pdf')
+            pdf.save(draft_pdf_file)
+            pdf.temp_files.clean()
             
-            if base_name == 'project_report.md':
-                print("Splitting project_report.md into Portrait/Landscape/Portrait sections...")
-                parts = md_content.split('## 2. Project File Catalog & Documentation')
-                if len(parts) == 2:
-                    portrait_part1 = parts[0]
-                    remaining = parts[1]
-                    parts2 = remaining.split('## 3. Directory Structure Map')
-                    if len(parts2) == 2:
-                        landscape_part = '## 2. Project File Catalog & Documentation' + parts2[0]
-                        portrait_part2 = '## 3. Directory Structure Map' + parts2[1]
-                        
-                        pdf.add_section(Section(portrait_part1, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
-                        pdf.add_section(Section(landscape_part, paper_size="A4-L", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
-                        pdf.add_section(Section(portrait_part2, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
-                    else:
-                        print("WARNING: Could not find Directory Structure Map heading. Defaulting to full portrait.")
-                        pdf.add_section(Section(md_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
-                else:
-                    print("WARNING: Could not find Project File Catalog heading. Defaulting to full portrait.")
-                    pdf.add_section(Section(md_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
-            else:
-                pdf.add_section(Section(md_content, paper_size="A4", root=root_dir, borders=(36, 60, -36, -36)), user_css=user_css)
+            # Analyze draft PDF using fitz
+            doc = fitz.open(draft_pdf_file)
+            
+            # 1. Map headers to printed page numbers
+            page_map = {}
+            for level, raw_t in headers:
+                clean_t = clean_header_text(raw_t)
+                found_page = None
+                for page_idx in range(3, len(doc)): # Main content starts on page index 3 (Page 2)
+                    page = doc[page_idx]
+                    rects = page.search_for(clean_t)
+                    if rects:
+                        found_page = page_idx - 1 # printed Page 1 is index 2 (TOC page)
+                        break
+                if found_page is None:
+                    found_page = 2 # default fallback
+                page_map[raw_t] = found_page
                 
-            # Post-process compiled PDF to insert header and footer
-            import fitz
+            # 2. Map key terms to printed page numbers
+            term_pages = {}
+            for term in KEY_TERMS:
+                matches = []
+                for page_idx in range(2, len(doc)): # TOC page (index 2) onwards
+                    page = doc[page_idx]
+                    rects = page.search_for(term)
+                    if rects:
+                        matches.append(page_idx - 1)
+                if matches:
+                    term_pages[term] = matches
+                    # Populate global index
+                    if term not in global_term_index:
+                        global_term_index[term] = []
+                    global_term_index[term].append((doc_title, md_file.replace('.md', '.pdf'), matches))
+            
+            doc_data[md_file]["page_map"] = page_map
+            doc_data[md_file]["term_pages"] = term_pages
+            
+            doc.close()
+            # Clean up draft PDF
+            if os.path.exists(draft_pdf_file):
+                os.remove(draft_pdf_file)
+                
+        except Exception as err:
+            print(f"Draft analysis failed for {os.path.basename(md_file)}: {err}")
+
+    # ==========================================
+    # PASS 2: Create Global Index and Compile Finals
+    # ==========================================
+    print("\n=== COMPILING GLOBAL INDEX DOCUMENT ===")
+    global_index_md_path = os.path.join(docs_dir, 'Global_Index.md')
+    global_index_pdf_path = os.path.join(docs_dir, 'Global_Index.pdf')
+    
+    # Generate Global_Index.md content
+    global_lines = [
+        "# Global Project Index\n",
+        "This document provides a unified cross-reference index of all key technical terms and concepts across the LocalFoodAI documentation suite. Click on any document link to open it at the specific page in your viewer.\n",
+        "## Index of Terms\n"
+    ]
+    for term in sorted(global_term_index.keys()):
+        occurrences = global_term_index[term]
+        global_lines.append(f"### {term}\n")
+        for doc_title, pdf_path, pages in occurrences:
+            pages_str = ", ".join([f"Page {p}" for p in pages])
+            pdf_rel = os.path.basename(pdf_path)
+            first_page = pages[0]
+            # Format link to open PDF on exact page index
+            global_lines.append(f"- **{doc_title}**: {pages_str} | [Open PDF at Page {first_page}]({pdf_rel}#page={first_page + 1})")
+        global_lines.append("")
+        
+    with open(global_index_md_path, 'w', encoding='utf-8') as f:
+        f.write("\n".join(global_lines))
+    print("Saved docs/Global_Index.md")
+
+    # Add Global_Index.md to the compilation files list
+    md_files.append(global_index_md_path)
+    
+    # Generate draft analysis for Global_Index.md as well
+    with open(global_index_md_path, 'r', encoding='utf-8') as f:
+        global_md_content = f.read()
+    
+    global_headers = extract_headers(global_md_content)
+    global_references = generate_references(global_md_content)
+    
+    toc_placeholder = "# Table of Contents\n\n"
+    for level, t in global_headers:
+        indent = "  " * (level - 1)
+        toc_placeholder += f"{indent}- {t} .................................................... Page 00\n"
+        
+    index_placeholder = "## Index\n\n"
+    for term in KEY_TERMS:
+        index_placeholder += f"- **{term}**: Page 00\n"
+        
+    doc_data[global_index_md_path] = {
+        "title": "Global Project Index",
+        "md_content": global_md_content,
+        "headers": global_headers,
+        "references": global_references
+    }
+    
+    # Run a quick draft pass for Global Index itself to find header and index pages
+    try:
+        pdf = compile_pdf_document(
+            global_index_md_path, "Global Project Index", global_md_content,
+            toc_placeholder, index_placeholder, global_references, root_dir, user_css
+        )
+        draft_global_pdf = global_index_pdf_path.replace('.pdf', '_draft.pdf')
+        pdf.save(draft_global_pdf)
+        pdf.temp_files.clean()
+        
+        doc = fitz.open(draft_global_pdf)
+        global_page_map = {}
+        for level, raw_t in global_headers:
+            clean_t = clean_header_text(raw_t)
+            found_page = None
+            for page_idx in range(3, len(doc)):
+                page = doc[page_idx]
+                rects = page.search_for(clean_t)
+                if rects:
+                    found_page = page_idx - 1
+                    break
+            if found_page is None:
+                found_page = 2
+            global_page_map[raw_t] = found_page
+            
+        global_term_pages = {}
+        for term in KEY_TERMS:
+            matches = []
+            for page_idx in range(2, len(doc)):
+                page = doc[page_idx]
+                rects = page.search_for(term)
+                if rects:
+                    matches.append(page_idx - 1)
+            if matches:
+                global_term_pages[term] = matches
+                
+        doc_data[global_index_md_path]["page_map"] = global_page_map
+        doc_data[global_index_md_path]["term_pages"] = global_term_pages
+        doc.close()
+        if os.path.exists(draft_global_pdf):
+            os.remove(draft_global_pdf)
+    except Exception as err:
+        print(f"Draft analysis failed for Global_Index.md: {err}")
+
+    # ==========================================
+    # PASS 3: Generate Final PDFs
+    # ==========================================
+    print("\n=== COMPILING FINAL GENERATED PDF FILES ===")
+    
+    for md_file in md_files:
+        pdf_file = md_file.replace('.md', '.pdf')
+        base_name = os.path.basename(md_file)
+        
+        data = doc_data.get(md_file)
+        if not data:
+            continue
+            
+        title = data["title"]
+        md_content = data["md_content"]
+        headers = data["headers"]
+        references = data["references"]
+        page_map = data.get("page_map", {})
+        term_pages = data.get("term_pages", {})
+
+        # 1. Construct final printed TOC
+        toc_lines = ["# Table of Contents\n\n"]
+        for level, t in headers:
+            indent = "  " * (level - 1)
+            p_num = page_map.get(t, 2)
+            toc_lines.append(f"{indent}- {t} .................................................... Page {p_num}")
+        toc_content = "\n".join(toc_lines)
+
+        # 2. Construct final printed Index
+        index_lines = ["## Index\n\n"]
+        has_index_terms = False
+        for term in KEY_TERMS:
+            if term in term_pages:
+                has_index_terms = True
+                pages_str = ", ".join([f"Page {p}" for p in term_pages[term]])
+                index_lines.append(f"- **{term}**: {pages_str}")
+        if not has_index_terms:
+            index_lines.append("- No key terms found in this document.")
+        index_content = "\n".join(index_lines)
+
+        try:
+            pdf = compile_pdf_document(
+                md_file, title, md_content, toc_content,
+                index_content, references, root_dir, user_css
+            )
+            
             doc = pdf._make_doc()
             total_pages = len(doc)
             
-            # Parse title from md_content
-            title_match = re.search(r'^#\s+(.+)$', md_content, re.MULTILINE)
-            if title_match:
-                doc_title = title_match.group(1).strip()
-                doc_title = re.sub(r'[*_`#]', '', doc_title).strip()
-            else:
-                doc_title = os.path.basename(pdf_file).replace('.pdf', '').replace('_', ' ')
-            
             am_path = os.path.join(docs_dir, 'am.png')
             bts_path = os.path.join(docs_dir, 'Bts.png')
             
-            # Read real sizes for scaling to 10%
-            width_am, height_am = 146.5, 24.5 # Fallback defaults
+            width_am, height_am = 146.5, 24.5
             if os.path.exists(am_path):
                 try:
                     pix_am = fitz.Pixmap(am_path)
                     width_am = pix_am.width * 0.1
                     height_am = pix_am.height * 0.1
-                except Exception:
-                    pass
+                except Exception: pass
             
-            width_bts, height_bts = 67.1, 36.8 # Fallback defaults
+            width_bts, height_bts = 67.1, 36.8
             if os.path.exists(bts_path):
                 try:
                     pix_bts = fitz.Pixmap(bts_path)
                     width_bts = pix_bts.width * 0.1
                     height_bts = pix_bts.height * 0.1
-                except Exception:
-                    pass
+                except Exception: pass
             
             for page_idx in range(total_pages):
+                # COVER & BLANK page should not contain headers, footers, or logos
+                if page_idx in [0, 1]:
+                    continue
+                    
                 page = doc[page_idx]
                 width = page.rect.width
                 height = page.rect.height
                 
                 # Header layout
-                # Left: am.png picture (if exists) at 10% size, drawn in background
                 if os.path.exists(am_path):
                     image_rect = fitz.Rect(48, 12, 48 + width_am, 12 + height_am)
                     page.insert_image(image_rect, filename=am_path, overlay=False)
                 
-                # Right: Bts.png logo (if exists) at 10% size, drawn in background
                 if os.path.exists(bts_path):
                     bts_rect = fitz.Rect(width - 48 - width_bts, 8, width - 48, 8 + height_bts)
                     page.insert_image(bts_rect, filename=bts_path, overlay=False)
                 
-                # Middle: document title centered in the space between the two pictures
+                # Title text
                 fontsize = 8
                 fontname = "helv"
-                m_width = fitz.get_text_length(doc_title, fontname=fontname, fontsize=fontsize)
-                
+                m_width = fitz.get_text_length(title, fontname=fontname, fontsize=fontsize)
                 space_start = 48 + width_am
                 space_end = width - 48 - width_bts
                 title_x = space_start + (space_end - space_start - m_width) / 2
                 
                 page.insert_text(
                     fitz.Point(title_x, 26),
-                    doc_title,
+                    title,
                     fontname=fontname,
                     fontsize=fontsize,
                     color=(0.5, 0.5, 0.5)
                 )
                 
-                # Footer layout
-                # Left: "lanfr144"
-                # Middle: "Page X of Y"
-                # Right: "DOPRO1"
+                # Footer layout (Page numbers start counting at TOC as Page 1)
                 l_footer = "lanfr144"
-                footer_text = f"Page {page_idx + 1} of {total_pages}"
+                footer_text = f"Page {page_idx - 1} of {total_pages - 2}"
                 f_width = fitz.get_text_length(footer_text, fontname=fontname, fontsize=fontsize)
                 
                 page.insert_text(
@@ -269,8 +756,6 @@ def main():
                     color=(0.5, 0.5, 0.5)
                 )
                 
-            # Deflate, clean, garbage collect and linearize the document
-            # to fix Acrobat encoding and save prompts
             doc.save(pdf_file, clean=True, garbage=3, deflate=True)
             doc.close()
             pdf.temp_files.clean()
@@ -278,28 +763,22 @@ def main():
             print(f"Saved {os.path.basename(pdf_file)}")
             
             # Copy to workspace root if applicable
-            import shutil
             if base_name == 'project_report.md':
                 dest = os.path.join(root_dir, 'Project.pdf')
-                try:
-                    if os.path.exists(dest):
-                        os.remove(dest)
-                    shutil.copy2(pdf_file, dest)
-                    print("Successfully updated root Project.pdf")
-                except Exception as copy_err:
-                    print(f"WARNING: Could not copy to root Project.pdf: {copy_err}")
+                if os.path.exists(dest): os.remove(dest)
+                shutil.copy2(pdf_file, dest)
+                print("Successfully updated root Project.pdf")
             elif base_name == 'retro_planning.md':
                 dest = os.path.join(root_dir, 'Retro Planning.pdf')
-                try:
-                    if os.path.exists(dest):
-                        os.remove(dest)
-                    shutil.copy2(pdf_file, dest)
-                    print("Successfully updated root Retro Planning.pdf")
-                except Exception as copy_err:
-                    print(f"WARNING: Could not copy to root Retro Planning.pdf: {copy_err}")
-                    
+                if os.path.exists(dest): os.remove(dest)
+                shutil.copy2(pdf_file, dest)
+                print("Successfully updated root Retro Planning.pdf")
+                
         except Exception as e:
             print(f"WARNING: Could not save {os.path.basename(pdf_file)}. File might be locked or open in a viewer. Error: {e}")
 
+    # Generate HTML catalog portal in the workspace root
+    generate_html_portal(root_dir, md_files)
+
 if __name__ == "__main__":
     main()