= Nutritioneer | Напредни извештаи од базата //[https://dbis-uibk.github.io/relax/calc/local/misc/local/0 Алатка за релациона алгебра] ||= Ознака =||= Операција =|| || σ || || || π || || || ⋈ || || || ⟕ || || || γ || || || τ || || || − || || || ω || || || ← || || || SUM(x | у) || || == Извештај 1: Преглед на активноста во заедницата //Account Activity Log// === Опис на барањата за податоци Извештајот покажува колку е активна секоја сметка во четирите дела на апликацијата. За секој корисник ги брои креираните рецепти, објавите, коментарите и записите во дневникот, заедно со неговата улога од USER кон RECIPE, POST, COMMENT и INTAKE_PLANNER. === SQL - приказ {{{ SELECT u.username, u.role, COUNT(DISTINCT r.id) AS recipes_created, COUNT(DISTINCT p.id) AS posts_created, COUNT(DISTINCT c.id) AS comments_written, COUNT(DISTINCT ip.id) AS diary_entries FROM "user" u LEFT JOIN recipe r ON r.user_id = u.id LEFT JOIN post p ON p.user_id = u.id LEFT JOIN comment c ON c.user_id = u.id LEFT JOIN intake_planner ip ON ip.user_id = u.id GROUP BY u.id, u.username, u.role ORDER BY recipes_created DESC, posts_created DESC, u.username; }}} === Релациона алгебра - приказ {{{ τ_{recipes_created DESC, posts_created DESC, username} ( γ_{u.id, u.username, u.role; COUNT(DISTINCT r.id) → recipes_created, COUNT(DISTINCT p.id) → posts_created, COUNT(DISTINCT c.id) → comments_written, COUNT(DISTINCT ip.id) → diary_entries} ( User ⟕_{u.id = r.user_id} Recipe ⟕_{u.id = p.user_id} Post ⟕_{u.id = c.user_id} Comment ⟕_{u.id = ip.user_id} Intake_Planner ) ) }}} == Извештај 2: Профил на макронутриенти по порција //Health Stat Check// === Опис на барањата за податоци Протеини, јаглехидрати, масти и влакна во една порција од секој рецепт. Спојува две одделни M:N врски во еден нутритивен приказ: рецепт содржи состојки, а состојка содржи нутриенти. За секој рецепт пресметува колку грама од секој макронутриент дава една порција, и ги рангира рецептите по протеини. * (нутриент на 100 g) × (употребени грамови) / 100 преку сите состојки, поделен со бројот на порции. === SQL - приказ {{{ SELECT r.name AS recipe, ROUND(r.kcal_sum / r.servings) AS kcal_per_portion, ROUND(SUM(CASE WHEN n.description = 'Protein' THEN icn.quantity * rci.ingredient_quantity / 100 END) / r.servings, 1) AS protein_g, ROUND(SUM(CASE WHEN n.description = 'Total carbohydrate' THEN icn.quantity * rci.ingredient_quantity / 100 END) / r.servings, 1) AS carbs_g, ROUND(SUM(CASE WHEN n.description = 'Total fat' THEN icn.quantity * rci.ingredient_quantity / 100 END) / r.servings, 1) AS fat_g, ROUND(SUM(CASE WHEN n.description = 'Dietary fibre' THEN icn.quantity * rci.ingredient_quantity / 100 END) / r.servings, 1) AS fibre_g FROM recipe r JOIN recipe_contains_ingredient rci ON rci.recipe_id = r.id JOIN ingredient_contains_nutrient icn ON icn.ingredient_id = rci.ingredient_id JOIN nutrient n ON n.id = icn.nutrient_id WHERE n.type = 'macro' GROUP BY r.id, r.name, r.kcal_sum, r.servings ORDER BY protein_g DESC; }}} === Релациона алгебра - приказ {{{ amount ≡ icn.quantity · rci.ingredient_quantity / 100 τ_{protein_g DESC} ( γ_{r.id, r.name, r.kcal_sum, r.servings; SUM(amount | n.description = 'Protein') / r.servings → protein_g, SUM(amount | n.description = 'Total carbohydrate') / r.servings → carbs_g, SUM(amount | n.description = 'Total fat') / r.servings → fat_g, SUM(amount | n.description = 'Dietary fibre') / r.servings → fibre_g} ( σ_{n.type = 'macro'} ( Recipe ⋈_{r.id = rci.recipe_id} Recipe_Contains_Ingredient ⋈_{rci.ingredient_id = icn.ingredient_id} Ingredient_Contains_Nutrient ⋈_{icn.nutrient_id = n.id} Nutrient ) ) ) }}} == Извештај 3: Целосно растителни рецепти === Опис на барањата за податоци === SQL - приказ === Релациона алгебра - приказ == Извештај 4: Ден со најголем внес по корисник === Опис на барањата за податоци === SQL - приказ === Релациона алгебра - приказ == Навигација низ проектот [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/WikiStart Почетна страна] ||= Фаза =||= Име на фаза =||= Статус =|| || P0 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/About Дефинирање проект] || Одобрен || || P1 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/ERModel Концептуален дизајн и ЕР Дијаграм] || Одобрен || || P2 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/RelationalDesign Логички и физички дизајн - DDL] || Одобрен || || P3 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/UseCaseModel Кориснички/апикациски сценарија со базата на податоци] || Одобрен || || P4 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/PrototypeApplication Протип со основни функционалности] || WIP || || М1 || Презентација на прототип || WIP || || P5 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/Normalization Нормализација и оптимизација на дизајн] || WIP || || P6 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/AdvancedReports Напредни извештаи од базата] || WIP || || P7 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/AdvancedDatabaseDevelopment Понапреден развој на базата] || WIP || || P8 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/AdvancedApplicationDevelopment Напреден апликативен развој] || WIP || || P9 || [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/OtherDevelopment Дополнителни имплементации] || WIP || || М2 || Финализиран проект || WIP || === ^([#hn Trac навигација]) * TracGuide Documentation