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

4.6 KiB

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

- 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

- Jmeno: string
- Prijmeni: string
- Adresa: string
- Telefon: string
- Email: string
- CeleJmeno: string (computed property)

DataManager.cs

- 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:

[
  {
    "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