Files
Petr_PTA25_Proj_02-10/NOTES.md
2026-02-17 15:33:05 +01:00

132 lines
3.4 KiB
Markdown

# 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