190 lines
4.6 KiB
Markdown
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**
|