taiga_export.json 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. {
  2. "project_id": "21",
  3. "sprints": [
  4. {
  5. "id": 83,
  6. "name": "Sprint 8",
  7. "estimated_start": "2026-06-04",
  8. "estimated_finish": "2026-06-10",
  9. "closed": true
  10. },
  11. {
  12. "id": 82,
  13. "name": "Sprint 7",
  14. "estimated_start": "2026-05-28",
  15. "estimated_finish": "2026-06-03",
  16. "closed": true
  17. },
  18. {
  19. "id": 73,
  20. "name": "Sprint 6",
  21. "estimated_start": "2026-05-21",
  22. "estimated_finish": "2026-05-28",
  23. "closed": true
  24. },
  25. {
  26. "id": 89,
  27. "name": "Sprint 7: Production Hardening & Handover",
  28. "estimated_start": "2026-05-18",
  29. "estimated_finish": "2026-05-20",
  30. "closed": true
  31. },
  32. {
  33. "id": 72,
  34. "name": "Sprint 5",
  35. "estimated_start": "2026-05-14",
  36. "estimated_finish": "2026-05-21",
  37. "closed": true
  38. },
  39. {
  40. "id": 88,
  41. "name": "Sprint 13",
  42. "estimated_start": "2026-05-12",
  43. "estimated_finish": "2026-05-19",
  44. "closed": true
  45. },
  46. {
  47. "id": 87,
  48. "name": "Sprint 12",
  49. "estimated_start": "2026-05-11",
  50. "estimated_finish": "2026-05-18",
  51. "closed": true
  52. },
  53. {
  54. "id": 86,
  55. "name": "Sprint 11",
  56. "estimated_start": "2026-05-08",
  57. "estimated_finish": "2026-05-15",
  58. "closed": true
  59. },
  60. {
  61. "id": 71,
  62. "name": "Sprint 4",
  63. "estimated_start": "2026-05-07",
  64. "estimated_finish": "2026-05-14",
  65. "closed": true
  66. },
  67. {
  68. "id": 85,
  69. "name": "Sprint 10",
  70. "estimated_start": "2026-05-06",
  71. "estimated_finish": "2026-05-13",
  72. "closed": true
  73. },
  74. {
  75. "id": 84,
  76. "name": "Sprint 9",
  77. "estimated_start": "2026-05-04",
  78. "estimated_finish": "2026-05-04",
  79. "closed": true
  80. },
  81. {
  82. "id": 70,
  83. "name": "Sprint 3",
  84. "estimated_start": "2026-04-30",
  85. "estimated_finish": "2026-05-07",
  86. "closed": true
  87. },
  88. {
  89. "id": 69,
  90. "name": "Sprint 2",
  91. "estimated_start": "2026-04-23",
  92. "estimated_finish": "2026-04-30",
  93. "closed": true
  94. },
  95. {
  96. "id": 68,
  97. "name": "Sprint 1",
  98. "estimated_start": "2026-04-16",
  99. "estimated_finish": "2026-04-23",
  100. "closed": true
  101. }
  102. ],
  103. "user_stories": [
  104. {
  105. "id": 204,
  106. "subject": "US-10: Public Git repository with easy cloning support (LocalFoodAI_lanfr144)",
  107. "status_id": 125,
  108. "is_closed": false,
  109. "milestone": 73
  110. },
  111. {
  112. "id": 207,
  113. "subject": "US-9: 100% local data privacy (no user data leaves the server)",
  114. "status_id": 125,
  115. "is_closed": true,
  116. "milestone": 71
  117. },
  118. {
  119. "id": 206,
  120. "subject": "US-1: Create an account and log in securely",
  121. "status_id": 125,
  122. "is_closed": true,
  123. "milestone": 71
  124. },
  125. {
  126. "id": 208,
  127. "subject": "US-2: Get complete nutritional value information on any food",
  128. "status_id": 125,
  129. "is_closed": true,
  130. "milestone": 71
  131. },
  132. {
  133. "id": 209,
  134. "subject": "US-4: Search for specific nutrient content and get a sortable list of all foods",
  135. "status_id": 125,
  136. "is_closed": true,
  137. "milestone": 71
  138. },
  139. {
  140. "id": 211,
  141. "subject": "US-5: Store food combinations in named and editable lists",
  142. "status_id": 125,
  143. "is_closed": true,
  144. "milestone": 71
  145. },
  146. {
  147. "id": 212,
  148. "subject": "US-11: Local hardware boundary containment on Ubuntu 24.04 VM",
  149. "status_id": 125,
  150. "is_closed": true,
  151. "milestone": 71
  152. },
  153. {
  154. "id": 210,
  155. "subject": "US-3: Get the full nutritional value overview for a given food combination",
  156. "status_id": 125,
  157. "is_closed": true,
  158. "milestone": 71
  159. },
  160. {
  161. "id": 213,
  162. "subject": "US-7: Freely chat about anything related to nutrition and get competent answers",
  163. "status_id": 125,
  164. "is_closed": true,
  165. "milestone": 71
  166. },
  167. {
  168. "id": 214,
  169. "subject": "US-6: Get menu proposals based on nutritional value and health constraints",
  170. "status_id": 125,
  171. "is_closed": true,
  172. "milestone": 71
  173. },
  174. {
  175. "id": 215,
  176. "subject": "US-8: Anonymous private web search tool (SearXNG) integration",
  177. "status_id": 125,
  178. "is_closed": true,
  179. "milestone": 71
  180. }
  181. ],
  182. "tasks": [
  183. {
  184. "id": 435,
  185. "subject": "Rebuild setup_db.py to allow dynamic Pandas table generation.",
  186. "status_id": 104,
  187. "is_closed": true,
  188. "user_story": 208
  189. },
  190. {
  191. "id": 436,
  192. "subject": "Update ingest_csv.py with to_sql and post-load index generating.",
  193. "status_id": 104,
  194. "is_closed": true,
  195. "user_story": 208
  196. },
  197. {
  198. "id": 437,
  199. "subject": "Create start_batch_ingest.sh wrapper for disconnected execution.",
  200. "status_id": 104,
  201. "is_closed": true,
  202. "user_story": 208
  203. },
  204. {
  205. "id": 438,
  206. "subject": "Configure server .forward mail protocols for centralized admin support.",
  207. "status_id": 104,
  208. "is_closed": true,
  209. "user_story": 208
  210. },
  211. {
  212. "id": 439,
  213. "subject": "Create setup_searxng.sh to install Docker and bind anonymous SearXNG to localhost:8080.",
  214. "status_id": 104,
  215. "is_closed": true,
  216. "user_story": 215
  217. },
  218. {
  219. "id": 440,
  220. "subject": "Update deploy.sh to include requests connectivity dependency.",
  221. "status_id": 104,
  222. "is_closed": true,
  223. "user_story": 215
  224. },
  225. {
  226. "id": 441,
  227. "subject": "Rework app.py LLM inference loop to support native Mistral Tool/Function calling integrations.",
  228. "status_id": 104,
  229. "is_closed": true,
  230. "user_story": 215
  231. },
  232. {
  233. "id": 442,
  234. "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.",
  235. "status_id": 104,
  236. "is_closed": true,
  237. "user_story": 208
  238. },
  239. {
  240. "id": 443,
  241. "subject": "Why: Building the numerical filtering sliders logically completes the \"Advanced Search\" capabilities explicitly defined by this story.",
  242. "status_id": 104,
  243. "is_closed": true,
  244. "user_story": 209
  245. },
  246. {
  247. "id": 445,
  248. "subject": "Why: Generating the Pandas calculation logic that mathematically adds up the macros is what delivers the final \"Combined Value Overview\" to the user!",
  249. "status_id": 104,
  250. "is_closed": true,
  251. "user_story": 210
  252. },
  253. {
  254. "id": 446,
  255. "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.",
  256. "status_id": 104,
  257. "is_closed": true,
  258. "user_story": 211
  259. },
  260. {
  261. "id": 447,
  262. "subject": "Implement EAV Mapping Database Architecture",
  263. "status_id": 104,
  264. "is_closed": true,
  265. "user_story": 214
  266. },
  267. {
  268. "id": 448,
  269. "subject": "Fix Windows Encodings in Pandas Ingestion Engine",
  270. "status_id": 104,
  271. "is_closed": true,
  272. "user_story": 208
  273. },
  274. {
  275. "id": 449,
  276. "subject": "Build Dynamic 'Medical Profile' CRUD Interface",
  277. "status_id": 104,
  278. "is_closed": true,
  279. "user_story": 214
  280. },
  281. {
  282. "id": 450,
  283. "subject": "Deploy Clinical Health-Warning Alert Engine",
  284. "status_id": 104,
  285. "is_closed": true,
  286. "user_story": 214
  287. },
  288. {
  289. "id": 451,
  290. "subject": "Deploy Email Resets and Persistent Query Limits",
  291. "status_id": 104,
  292. "is_closed": true,
  293. "user_story": 214
  294. },
  295. {
  296. "id": 452,
  297. "subject": "Create unified PDF presentation for review",
  298. "status_id": 104,
  299. "is_closed": true,
  300. "user_story": 214
  301. },
  302. {
  303. "id": 453,
  304. "subject": "Execute Alembic Database Migration scripting",
  305. "status_id": 104,
  306. "is_closed": true,
  307. "user_story": 212
  308. },
  309. {
  310. "id": 454,
  311. "subject": "Sanitize Ollama Mistral LLM endpoints on .170",
  312. "status_id": 104,
  313. "is_closed": true,
  314. "user_story": 212
  315. },
  316. {
  317. "id": 455,
  318. "subject": "Perform Green Recommendation Engine Demo",
  319. "status_id": 104,
  320. "is_closed": true,
  321. "user_story": 212
  322. },
  323. {
  324. "id": 546,
  325. "subject": "Auto‑generated task (define details)",
  326. "status_id": 104,
  327. "is_closed": true,
  328. "user_story": 204
  329. },
  330. {
  331. "id": 547,
  332. "subject": "Auto‑generated task (define details)",
  333. "status_id": 104,
  334. "is_closed": true,
  335. "user_story": 212
  336. },
  337. {
  338. "id": 548,
  339. "subject": "Execute: Zabbix Server Docker Setup",
  340. "status_id": 104,
  341. "is_closed": true,
  342. "user_story": 212
  343. },
  344. {
  345. "id": 549,
  346. "subject": "Execute: SNMPv3 Integration",
  347. "status_id": 104,
  348. "is_closed": true,
  349. "user_story": 212
  350. },
  351. {
  352. "id": 550,
  353. "subject": "Execute: Application Component Traps",
  354. "status_id": 104,
  355. "is_closed": true,
  356. "user_story": 212
  357. },
  358. {
  359. "id": 551,
  360. "subject": "Execute: Clinical Explorer Verification Testing",
  361. "status_id": 104,
  362. "is_closed": true,
  363. "user_story": 212
  364. },
  365. {
  366. "id": 552,
  367. "subject": "Execute: Zabbix Application Monitoring Checks",
  368. "status_id": 104,
  369. "is_closed": true,
  370. "user_story": 212
  371. },
  372. {
  373. "id": 553,
  374. "subject": "Execute: Zabbix Email Integration",
  375. "status_id": 104,
  376. "is_closed": true,
  377. "user_story": 212
  378. },
  379. {
  380. "id": 554,
  381. "subject": "Execute: Zabbix Live Alert Testing",
  382. "status_id": 104,
  383. "is_closed": true,
  384. "user_story": 212
  385. },
  386. {
  387. "id": 555,
  388. "subject": "Execute: Server Backup Procedures",
  389. "status_id": 104,
  390. "is_closed": true,
  391. "user_story": 212
  392. }
  393. ]
  394. }