TheReader
Období: Týden 13/2026 (od 29.03.) Skupina: tria URL: https://github.com/thereadero/TheReader.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:43: started to make a website
- 2026-03-30 08:08: added footer to web
- 2026-04-03 15:58: added a window to the calculator, uprated the gd and kalkulacka projekt.md
- 2026-04-04 17:41: updated kalkulacka.py, added a shift button, history, fullscreen
3. Výsledky AI analýzy kódu
| Metrika | Hodnota |
|---|---|
| Celkové body (AI) | 17 / 20 b. (85%) |
| Náročnost projektu (Index) | 3 |
| Počet commitů | 4 |
| Změněné soubory | 7 |
| Počet přid./odeb. řádků kódu | 380 |
Komentář a zpětná vazba od AI
Jako pedagogický asistent hodnotím tvou práci za uplynulý týden následovně. Odvedl jsi velký kus práce, zejména na refaktoringu kalkulačky a rozšíření funkcionality Geometry Dash klonu.
1. Smysluplnost popisů u commitů [3 body]
Zprávy u commitů jsou jasné, stručné a přesně popisují, co se v kódu změnilo (např. přidání shift tlačítka, historie, úprava dokumentace). Angličtina je v nich sice s drobnými překlepy (uprated místo updated), ale to nesnižuje jejich srozumitelnost. * Body: 3/3
2. Smysluplnost komentářů v kódu [4 body]
Kód v kalkulacka.py obsahuje základní komentáře, které vysvětlují účel bloků (např. "Screen frame", "Buttons for numbers"). Oceňuji české vysvětlivky u výpočtů. Nicméně pokročilejší části, jako je dynamické překreslování tlačítek v metodě render_buttons nebo práce s lambda funkcemi v cyklu, by si zasloužily hlubší vysvětlení pro budoucí údržbu.
* Body: 4/6
3. Kvalita a srozumitelnost dokumentace a struktura repozitáře [2 body]
Dodržel jsi pravidlo o adresářové struktuře – každý projekt má svou složku a v rootu nejsou žádné volně poletující skripty. Dokumentace v souborech _projekt.md je na vynikající úrovni, zejména u GD_projekt.md a ffmpeg_conv_projekt.md, kde podrobně popisuješ funkce i instalaci. Hlavní README.md v rootu je sice jen strohý seznam termínů, ale projektová dokumentace to plně vynahrazuje.
* Body: 2/2
4. Logika řešení a přemýšlení studenta v Pythonu [8 bodů]
V tomto týdnu jsi udělal výrazný pokrok:
- Refaktoring: Převedl jsi kalkulačku z čistě konzolové/základní verze na plnohodnotnou objektovou aplikaci v tkinter.
- Pokročilé GUI: Implementace "Shift" režimu je logicky zvládnutá přes překreslování widgetů (destroy a nové vyvolání render_buttons).
- Matematická logika: Správně používáš replace pro přípravu výrazu pro funkci eval. Použití eval je v tomto kontextu (školní projekt) akceptovatelné, i když v ostré praxi nebezpečné.
- Práce s Lambda: Správně jsi zvládl předávání argumentů do tlačítek pomocí lambda x=button: self.click(x), což bývá častým zdrojem chyb (zachycení poslední hodnoty cyklu).
- GD Projekt: Podle dokumentace jsi implementoval masky pro kolize a stavbu mapy, což svědčí o velmi dobrém algoritmickém myšlení.
* Body: 8/9
Celkem získáno bodů: [17 / 85%] ze 20 možných
Slovní hodnocení:
Velmi dobrá práce. Tvůj přechod od jednoduchých skriptů k objektově orientovanému programování (třídy CalculatorApp) je přesně to, co od studenta střední školy očekávám. Příště se zkus zaměřit na ošetření vstupů v kalkulačce (např. aby nešlo napsat sin(cos(++))), což tvůj eval aktuálně shodí na "Error".
DIFFICULTY_INDEX: [3]
Kontrolní otázka k obhajobě
V metodě
render_buttonspoužíváš cyklus s podmínkouisinstance(widget, tk.Button)k promazání plochy – co přesně by se s grafickým rozhraním kalkulačky při stisknutí tlačítka Shift stalo, kdybys tuto podmínku vynechal a volalwidget.destroy()na všechny prvky vself.rootbez rozdílu?