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

190 lines
4.6 KiB
Markdown

# Evidence Autobazaru - WPF Aplikace
## Popis projektu
WPF aplikace pro evidenci vozidel v autobazaru s možností serializace a deserializace dat.
## Funkce aplikace
### ? Implementované funkce
- **CRUD operace**
- Create (Přidání vozidla)
- Read (Zobrazení seznamu a detailů)
- Update (Úprava vozidel)
- Delete (Mazání vozidel)
- **Serializace a deserializace**
- Ukládání dat do JSON souboru (`vehicles.json`)
- Automatické načítání dat při spuštění aplikace
- **Evidence vozidel**
- SPZ
- Značka (např. Škoda, BMW, Audi)
- Model
- Rok výroby
- Palivo (Benzín, Nafta, Elektro, Hybrid, LPG, CNG)
- Nájezd v km
- Cena v Kč
- Barva (s výběrem z Color Dialogu)
- Fotografie (uložená jako Base64)
- **Evidence vlastníků**
- Jméno
- Příjmení
- Adresa
- Telefon
- Email
### ??? Uživatelské rozhraní
#### Hlavní okno (MainWindow)
- Seznam všech vozidel v přehledné tabulce
- Zobrazení: SPZ, Značka a Model, Barva, Rok, Palivo
- Akce:
- **Přidat vozidlo** - otevře okno pro přidání nového vozidla
- **Detail** - zobrazí detailní informace o vybraném vozidle
- **Upravit** - umožní editaci vybraného vozidla
- **Smazat** - smaže vybrané vozidlo (s potvrzením)
- **Double-click** na vozidlo otevře detail
#### Okno přidání vozidla (AddVehicleWindow)
- Formulář pro zadání všech údajů o vozidle
- Výběr barvy pomocí Color Dialogu
- Výběr paliva z ComboBoxu
- Možnost přidat fotografii
- Sekce pro zadání informací o vlastníkovi
- Validace číselných vstupů
#### Okno úpravy vozidla (EditVehicleWindow)
- Předvyplněné údaje z vybraného vozidla
- Náhled aktuální fotografie
- Možnost změny všech údajů včetně vlastníka
- Stejné funkce jako v okně přidání
#### Okno detailu vozidla (VehicleDetailWindow)
- Kompletní zobrazení všech informací
- Zobrazení fotografie vozidla
- Informace o vlastníkovi
- Tlačítka pro úpravu, smazání nebo zavření
## Struktura projektu
### Třídy
#### `Vehicle.cs`
```csharp
- Spz: string
- Znacka: string
- Model: string
- Barva: string
- RokVyroby: int?
- Palivo: string
- NajeteKm: int?
- Cena: decimal?
- Fotografie: string (Base64)
- Vlastnik: Owner
- ZnackaModel: string (computed property)
```
#### `Owner.cs`
```csharp
- Jmeno: string
- Prijmeni: string
- Adresa: string
- Telefon: string
- Email: string
- CeleJmeno: string (computed property)
```
#### `DataManager.cs`
```csharp
- AddVehicle(Vehicle)
- GetAllVehicles(): IEnumerable<Vehicle>
- RemoveVehicle(Vehicle)
- Save() - serializace do JSON
- Load() - deserializace z JSON
```
## Technologie
- **.NET 8.0**
- **WPF (Windows Presentation Foundation)**
- **System.Text.Json** - pro serializaci/deserializaci
- **Windows Forms ColorDialog** - pro výběr barvy
## Principy návrhu
### Separation of Concerns (SoC)
- **Model** - `Vehicle.cs`, `Owner.cs`
- **Data Logic** - `DataManager.cs`
- **View** - XAML soubory (MainWindow, AddVehicleWindow, EditVehicleWindow, VehicleDetailWindow)
- **View Logic** - Code-behind soubory (.xaml.cs)
### Čistota kódu
- Jasné pojmenování proměnných a metod
- Validace vstupů (PreviewTextInput pro číselné hodnoty)
- Ošetření chyb (try-catch bloky při práci s obrázky)
- Oddělení logiky od prezentace
## Instalace a spuštění
1. Otevřete projekt v **Visual Studio 2022** nebo novějším
2. Ujistěte se, že máte nainstalovaný **.NET 8.0 SDK**
3. Stiskněte **F5** nebo klikněte na **Start** pro spuštění aplikace
4. Data se automaticky ukládají do souboru `vehicles.json` ve stejné složce jako aplikace
## Ovládání aplikace
### Přidání vozidla
1. Klikněte na tlačítko **"Přidat vozidlo"**
2. Vyplňte údaje o vozidle
3. Vyberte barvu pomocí tlačítka **"Vybrat barvu"**
4. (Volitelně) Vyberte fotografii
5. (Volitelně) Vyplňte údaje o vlastníkovi
6. Klikněte na **"Ulozit"**
### Zobrazení detailu
- **Double-click** na vozidlo v seznamu, nebo
- Vyberte vozidlo a klikněte na **"Detail"**
### Úprava vozidla
1. Vyberte vozidlo v seznamu
2. Klikněte na **"Upravit"**
3. Změňte požadované údaje
4. Klikněte na **"Ulozit"**
### Smazání vozidla
1. Vyberte vozidlo v seznamu
2. Klikněte na **"Smazat"**
3. Potvrďte smazání
## Ukládání dat
Data jsou uložena v souboru **`vehicles.json`** ve formátu:
```json
[
{
"Spz": "1A2 3456",
"Znacka": "Skoda",
"Model": "Octavia",
"Barva": "#FF0000",
"RokVyroby": 2020,
"Palivo": "Benzín",
"NajeteKm": 50000,
"Cena": 350000,
"Fotografie": "base64_string...",
"Vlastnik": {
"Jmeno": "Jan",
"Prijmeni": "Novak",
"Adresa": "Praha 1",
"Telefon": "+420123456789",
"Email": "jan.novak@email.cz"
}
}
]
```
## Autor
Vytvořeno pro předmět PTA25 - Programování v C#
## Termín odevzdání
**1. 3. 2026**