Titan
Období: Týden 13/2026 (od 29.03.) Skupina: tria URL: https://github.com/viktordamek-lang/Titan.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ů
- 2026-03-30 06:51: uprava chatbotapp.py vylepseni programu a zvyseni konfortu pro uzivatele
- 2026-04-02 18:29: uprava programu chatbotapp.py
- 2026-04-04 17:47: uprava programu chatbot
3. Výsledky AI analýzy kódu
| Metrika | Hodnota |
|---|---|
| Celkové body (AI) | 14 / 20 b. (70%) |
| Náročnost projektu (Index) | 4 |
| Počet commitů | 3 |
| Změněné soubory | 5 |
| Počet přid./odeb. řádků kódu | 1036 |
Komentář a zpětná vazba od AI
Ahoj, jsem tvůj asistent pro výuku Pythonu. Prošel jsem tvůj repozitář a kód za uplynulý týden. Je vidět, že jsi udělal velký kus práce, zejména v oblasti uživatelského rozhraní a bezpečnosti kódu. Tady je tvé hodnocení:
1. Smysluplnost popisů u commitů [1 bod]
Popisy tvých commitů jsou bohužel velmi strohé a málo popisné. Slovní spojení jako „uprava programu“ nebo „vylepseni programu“ mi neříká, co konkrétně jsi v kódu změnil (např. „přidána historie výpočtů“ nebo „implementace bezpečného vyhodnocování výrazů“). Třetí commit obsahuje překlep: „zvyseni konfortu pro uzivatele“. Příště se snaž být konkrétnější.
2. Smysluplnost komentářů v kódu [5 bodů]
Komentáře v kódu jsou na dobré úrovni. Oceňuji, že vysvětluješ, proč používáš normalizaci textu (.lower()) nebo jak funguje vkládání historie do vstupního pole. Pomáhá to v orientaci v logice programu. Trochu mi chybí komentář u pokročilejší části s modulem ast, kde by bylo dobré vysvětlit, proč je tato metoda bezpečnější než klasický eval().
3. Kvalita a srozumitelnost dokumentace a struktura repozitáře [0 bodů]
V této kategorii musím body strhnout kvůli porušení základních pravidel organizace projektu:
* Soubory v rootu: V hlavní složce máš volně soubory /Kalkulator, /chat_log.txt a /vymazani zvuku.py. Každý projekt (kalkulačka, chatbot, převodník) musí mít svou vlastní složku.
* Názvy souborů: Soubor /vymazani zvuku.py obsahuje mezeru, což je v programování nepřípustné (používej podtržítka). Složka /konventor obsahuje překlep (správně konvertor).
* README.md: Obsah README je kvůli podivnému formátování (mezery mezi každým písmenem) prakticky nečitelný. Projektová dokumentace v .md souborech je sice podrobná, ale nerespektování struktury složek je zásadní chyba.
4. Logika řešení a přemýšlení studenta v Pythonu [8 bodů]
Tady tě musím pochválit, tvůj pokrok v programování je znát:
* Bezpečnost: Použití ast.parse a ast.walk pro vytvoření bezpečného vyhodnocovače matematických výrazů (safe_eval_math) je vynikající a ukazuje, že o problémech (jako je nebezpečný eval) přemýšlíš do hloubky.
* Refaktoring: Přechod od dlouhých řetězců if-elif k slovníku funkcí (simple_responses) v metodě handle_command je známkou pokročilejšího psaní kódu (tzv. clean code).
* GUI: Rozdělení na hlavní okno a Toplevel okno pro chatovací režim je logické a funkční.
* Logika: Implementace historie příkazů i historie kalkulačky zvyšuje užitnou hodnotu programu.
Celkem získáno bodů: [14 / 70%] ze 20 možných
DIFFICULTY_INDEX: [4]
Kontrolní otázka k obhajobě
V metodě
safe_eval_mathpomocí moduluastkontroluješ typy uzlů a explicitně zakazuješast.Call– mohl bys mi vysvětlit, jaké konkrétní bezpečnostní riziko by hrozilo, kdybys v zadávaném matematickém výrazu volání funkcí povolil?