# Poznámky k projektu - Evidence Autobazaru ## Splnění zadání ### ? Základní požadavky - [x] WPF aplikace - [x] Evidence autobazaru - [x] Serializace a deserializace (JSON) - [x] CRUD operace (Create, Read, Update, Delete) - [x] Čistý a organizovaný kód - [x] Separation of Concerns (SoC) ### ? Model Auto (Vehicle) - [x] Značka - [x] Model - [x] SPZ - [x] Rok výroby - [x] Palivo (Benzín, Nafta, Elektro, Hybrid, LPG, CNG) - [x] Nájezd v km - [x] Barva (s color pickerem) - [x] Fotografie (Base64) - [x] Cena ### ? Model Vlastník (Owner) - [x] Jméno - [x] Příjmení - [x] Adresa - [x] Telefon - [x] Email - [x] Propojení s autem ### ? GUI Features - [x] Hlavní okno se seznamem vozidel - [x] Zobrazení základních údajů (SPZ, značka+model, barva, rok, palivo) - [x] Detail vozidla po kliknutí (double-click nebo tlačítko) - [x] Okno pro přidání vozidla - [x] Okno pro úpravu vozidla - [x] Okno s detaily vozidla - [x] Výběr barvy pomocí Color Dialogu - [x] Výběr fotografie ## Technická implementace ### Serializace - Použit **System.Text.Json** pro JSON serializaci - Data uložena v souboru `vehicles.json` - Automatické načtení při startu aplikace - Automatické ukládání po každé změně ### Validace - Číselné vstupy (rok, km, cena) - validace pomocí `PreviewTextInput` - SPZ - automatický převod na velká písmena - Obrázky - ošetření chyb při načítání/ukládání ### Separation of Concerns ``` ??? Models ? ??? Vehicle.cs # Datový model vozidla ? ??? Owner.cs # Datový model vlastníka ??? Data ? ??? DataManager.cs # Správa dat, serializace ??? Views ??? MainWindow.xaml/.cs # Hlavní okno ??? AddVehicleWindow.xaml/.cs # Přidání vozidla ??? EditVehicleWindow.xaml/.cs # Úprava vozidla ??? VehicleDetailWindow.xaml/.cs # Detail vozidla ``` ## Použité technologie - .NET 8.0 - WPF (Windows Presentation Foundation) - System.Text.Json (JSON serializace) - Windows Forms ColorDialog (výběr barvy) - XAML pro UI design ## Budoucí vylepšení (pro rozšíření) - [ ] Filtrování a vyhledávání vozidel - [ ] Řazení podle různých sloupců - [ ] Export do PDF/Excel - [ ] Více obrázků na vozidlo - [ ] Historie změn vozidla - [ ] Statistiky (průměrná cena, nejstarší/nejnovější vozidlo, atd.) - [ ] Validace emailu a telefonního čísla - [ ] Podpora pro více autobazarů - [ ] Cloudová synchronizace dat ## Známé limitace - Fotografie je uložena jako Base64 přímo v JSON (může způsobit velké soubory) - Validace vstupů je pouze na UI úrovni - Žádná autentizace/autorizace -?uživatelská aplikace (bez databáze) ## Testování Pro testování aplikace použijte ukázkový soubor `vehicles.example.json`: 1. Přejmenujte `vehicles.example.json` na `vehicles.json` 2. Spusťte aplikaci 3. Data se automaticky načtou ## Klasifikační kritéria ### GUI (User Interface) - ? Přehledné a intuitivní rozhraní - ? Responsivní design - ? Správné použití WPF kontrol - ? Color picker pro výběr barvy - ? Náhled fotografií ### Čistota kódu - ? Jasné pojmenování - ? Oddělené třídy pro různé účely - ? Try-catch bloky pro ošetření chyb - ? Komentáře kde je to vhodné - ? Konzistentní styl kódu ### Funkčnost - ? Všechny CRUD operace fungují - ? Serializace a deserializace funguje - ? Validace vstupů - ? Ošetření chyb - ? Aplikace nepadá ### Separation of Concerns - ? Model (Vehicle, Owner) - ? Data Logic (DataManager) - ? View (XAML) - ? View Logic (Code-behind) ## Autorství - **Autor**: Petr (23ib22_petr) - **Předmět**: PTA25 - Programování v C# - **Termín odevzdání**: 1. 3. 2026