{ "project_id": "21", "sprints": [ { "id": 83, "name": "Sprint 8", "estimated_start": "2026-06-04", "estimated_finish": "2026-06-10", "closed": true }, { "id": 82, "name": "Sprint 7", "estimated_start": "2026-05-28", "estimated_finish": "2026-06-03", "closed": true }, { "id": 73, "name": "Sprint 6", "estimated_start": "2026-05-21", "estimated_finish": "2026-05-28", "closed": true }, { "id": 89, "name": "Sprint 7: Production Hardening & Handover", "estimated_start": "2026-05-18", "estimated_finish": "2026-05-20", "closed": true }, { "id": 72, "name": "Sprint 5", "estimated_start": "2026-05-14", "estimated_finish": "2026-05-21", "closed": true }, { "id": 88, "name": "Sprint 13", "estimated_start": "2026-05-12", "estimated_finish": "2026-05-19", "closed": true }, { "id": 87, "name": "Sprint 12", "estimated_start": "2026-05-11", "estimated_finish": "2026-05-18", "closed": true }, { "id": 86, "name": "Sprint 11", "estimated_start": "2026-05-08", "estimated_finish": "2026-05-15", "closed": true }, { "id": 71, "name": "Sprint 4", "estimated_start": "2026-05-07", "estimated_finish": "2026-05-14", "closed": true }, { "id": 85, "name": "Sprint 10", "estimated_start": "2026-05-06", "estimated_finish": "2026-05-13", "closed": true }, { "id": 84, "name": "Sprint 9", "estimated_start": "2026-05-04", "estimated_finish": "2026-05-04", "closed": true }, { "id": 70, "name": "Sprint 3", "estimated_start": "2026-04-30", "estimated_finish": "2026-05-07", "closed": true }, { "id": 69, "name": "Sprint 2", "estimated_start": "2026-04-23", "estimated_finish": "2026-04-30", "closed": true }, { "id": 68, "name": "Sprint 1", "estimated_start": "2026-04-16", "estimated_finish": "2026-04-23", "closed": true } ], "user_stories": [ { "id": 204, "subject": "US-10: Public Git repository with easy cloning support (LocalFoodAI_lanfr144)", "status_id": 125, "is_closed": false, "milestone": 73 }, { "id": 207, "subject": "US-9: 100% local data privacy (no user data leaves the server)", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 206, "subject": "US-1: Create an account and log in securely", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 208, "subject": "US-2: Get complete nutritional value information on any food", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 209, "subject": "US-4: Search for specific nutrient content and get a sortable list of all foods", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 211, "subject": "US-5: Store food combinations in named and editable lists", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 212, "subject": "US-11: Local hardware boundary containment on Ubuntu 24.04 VM", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 210, "subject": "US-3: Get the full nutritional value overview for a given food combination", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 213, "subject": "US-7: Freely chat about anything related to nutrition and get competent answers", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 214, "subject": "US-6: Get menu proposals based on nutritional value and health constraints", "status_id": 125, "is_closed": true, "milestone": 71 }, { "id": 215, "subject": "US-8: Anonymous private web search tool (SearXNG) integration", "status_id": 125, "is_closed": true, "milestone": 71 } ], "tasks": [ { "id": 435, "subject": "Rebuild setup_db.py to allow dynamic Pandas table generation.", "status_id": 104, "is_closed": true, "user_story": 208 }, { "id": 436, "subject": "Update ingest_csv.py with to_sql and post-load index generating.", "status_id": 104, "is_closed": true, "user_story": 208 }, { "id": 437, "subject": "Create start_batch_ingest.sh wrapper for disconnected execution.", "status_id": 104, "is_closed": true, "user_story": 208 }, { "id": 438, "subject": "Configure server .forward mail protocols for centralized admin support.", "status_id": 104, "is_closed": true, "user_story": 208 }, { "id": 439, "subject": "Create setup_searxng.sh to install Docker and bind anonymous SearXNG to localhost:8080.", "status_id": 104, "is_closed": true, "user_story": 215 }, { "id": 440, "subject": "Update deploy.sh to include requests connectivity dependency.", "status_id": 104, "is_closed": true, "user_story": 215 }, { "id": 441, "subject": "Rework app.py LLM inference loop to support native Mistral Tool/Function calling integrations.", "status_id": 104, "is_closed": true, "user_story": 215 }, { "id": 442, "subject": "Why: Applying the global CSS architecture is the direct prerequisite to making the visual information actually look premium and readable when the user views the data.", "status_id": 104, "is_closed": true, "user_story": 208 }, { "id": 443, "subject": "Why: Building the numerical filtering sliders logically completes the \"Advanced Search\" capabilities explicitly defined by this story.", "status_id": 104, "is_closed": true, "user_story": 209 }, { "id": 445, "subject": "Why: Generating the Pandas calculation logic that mathematically adds up the macros is what delivers the final \"Combined Value Overview\" to the user!", "status_id": 104, "is_closed": true, "user_story": 210 }, { "id": 446, "subject": "Why: The core of this story is storing data, which is entirely solved by creating the explicit relational plates and plate_items MySQL database tables.", "status_id": 104, "is_closed": true, "user_story": 211 }, { "id": 447, "subject": "Implement EAV Mapping Database Architecture", "status_id": 104, "is_closed": true, "user_story": 214 }, { "id": 448, "subject": "Fix Windows Encodings in Pandas Ingestion Engine", "status_id": 104, "is_closed": true, "user_story": 208 }, { "id": 449, "subject": "Build Dynamic 'Medical Profile' CRUD Interface", "status_id": 104, "is_closed": true, "user_story": 214 }, { "id": 450, "subject": "Deploy Clinical Health-Warning Alert Engine", "status_id": 104, "is_closed": true, "user_story": 214 }, { "id": 451, "subject": "Deploy Email Resets and Persistent Query Limits", "status_id": 104, "is_closed": true, "user_story": 214 }, { "id": 452, "subject": "Create unified PDF presentation for review", "status_id": 104, "is_closed": true, "user_story": 214 }, { "id": 453, "subject": "Execute Alembic Database Migration scripting", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 454, "subject": "Sanitize Ollama Mistral LLM endpoints on .170", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 455, "subject": "Perform Green Recommendation Engine Demo", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 546, "subject": "Auto‑generated task (define details)", "status_id": 104, "is_closed": true, "user_story": 204 }, { "id": 547, "subject": "Auto‑generated task (define details)", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 548, "subject": "Execute: Zabbix Server Docker Setup", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 549, "subject": "Execute: SNMPv3 Integration", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 550, "subject": "Execute: Application Component Traps", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 551, "subject": "Execute: Clinical Explorer Verification Testing", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 552, "subject": "Execute: Zabbix Application Monitoring Checks", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 553, "subject": "Execute: Zabbix Email Integration", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 554, "subject": "Execute: Zabbix Live Alert Testing", "status_id": 104, "is_closed": true, "user_story": 212 }, { "id": 555, "subject": "Execute: Server Backup Procedures", "status_id": 104, "is_closed": true, "user_story": 212 } ] }