Detail reportu: Luros

Týden 11/2026 (od 15.03.) – Výsledky AI analýzy a hodnocení odevzdaného kódu.

📁 Archiv-2026
Zpět

Luros

Období: Týden 11/2026 (od 15.03.) Skupina: tria URL: https://github.com/antoninkucera-lang/Luros.git

1. Splnění základních podmínek

Podmínka Status
Alespoň 3 commity v daném týdnu ✅ SPLNĚNO
Rozestup alespoň 12h mezi 3 commity ✅ SPLNĚNO
Projektová dokumentace (README, projekt.md) ✅ SPLNĚNO

2. Přehled commitů

3. Výsledky AI analýzy kódu

Metrika Hodnota
Celkové body (AI) 16 / 20 b. (80%)
Náročnost projektu (Index) 3
Počet commitů 6
Změněné soubory 4
Počet přid./odeb. řádků kódu 64

Komentář a zpětná vazba od AI

Ahoj! Jako tvůj asistent jsem prošel tvůj repozitář a kód za uplynulý týden. Je vidět, že jsi udělal velký kus práce, zejména na projektu vyhledávače receptů. Oceňuji tvou snahu o profesionální přístup k GUI a práci s externími daty.

Zde je tvé hodnocení:

1. Smysluplnost popisů u commitů [2 body]

Většina tvých commitů je jasná a popisuje, co se v kódu změnilo (např. "Přidána kontrola prázdného vstupu"). Nicméně commit s názvem "delete" je naprosto nevypovídající. Příště se pokus i u mazání kódu specifikovat, co a proč jsi odstranil (např. "odstranění nepoužívané funkce pro výpis do terminálu").

2. Smysluplnost komentářů v kódu [6 bodů]

V této oblasti jsi odvedl skvělou práci. Komentáře v souboru recepty.py jsou věcné, vysvětlují logiku (např. přepínání stavu disabled u Textboxu) a pomáhají v orientaci v kódu. Zvláště oceňuji komentář u ziskej_odkaz, který jasně definuje účel nové funkce.

3. Kvalita a srozumitelnost dokumentace a struktura repozitáře [2 body]

Struktura repozitáře je příkladná. Každý projekt má svou složku, soubory v kořenovém adresáři jsou tam, kde mají být (.gitignore, README.md). Dokumentace v _projekt.md souborech je na vysoké úrovni – obsahuje cíle, technický popis i návod na spuštění, což je přesně to, co se v praxi vyžaduje.

4. Logika řešení a přemýšlení studenta v Pythonu (progrese kódu) [6 bodů]

Udělal jsi velký pokrok. Implementace customtkinter a práce s API (včetně ošetření chyb pomocí try-except) je na středoškoláka velmi dobrá úroveň. Velmi chválím nápad se zamykáním Textboxu (state="disabled"), aby uživatel nemohl přepisovat výsledky.

Našel jsem však zásadní logickou chybu v interakci funkcí: * Ve funkci po_kliknuti voláš nejdříve recepty = hledej_recepty(ingredience). * Pokud v hledej_recepty nastane chyba (např. výpadek internetu), funkce vypíše chybu do boxu a vrátí prázdný seznam. * Jenže hned potom v po_kliknuti následuje příkaz vysledky.delete("1.0", "end") zde je chyba. Tento příkaz smaže chybovou hlášku, kterou jsi tam před milisekundou nechal vypsat, takže uživatel nic neuvidí. Promazání textového pole by mělo proběhnout před voláním vyhledávací funkce. * Dále u kontroly prázdného vstupu vysledky.insert("end", "Zadej prosím ingredience!\n") zde je chyba – chybí zde promazání předchozích výsledků, takže pokud uživatel klikne vícekrát, varování se bude kupit pod sebe.

Celkem získáno bodů: [16 / 80%] ze 20 možných


Slovní zhodnocení: Tvůj projekt se posouvá správným směrem. Použití python-dotenv pro API klíč (jak zmiňuješ v dokumentaci) je skvělá praktika pro bezpečnost. Pokud opravíš pořadí mazání textu v GUI, bude aplikace plně funkční a profesionální. Jen tak dál!

DIFFICULTY_INDEX: [3]

Kontrolní otázka k obhajobě

Proč v kódu u objektu vysledky manipuluješ s parametrem state před a po každém zápisu, a jak by se změnilo chování aplikace z pohledu uživatele, kdybys tento parametr nechal nastavený na normal trvale už od začátku?