Add clanker code

This commit is contained in:
2026-02-17 15:33:05 +01:00
parent ced3cbfe6e
commit 9874f78329
24 changed files with 1884 additions and 31 deletions

189
README.md Normal file
View File

@@ -0,0 +1,189 @@
# Evidence Autobazaru - WPF Aplikace
## Popis projektu
WPF aplikace pro evidenci vozidel v autobazaru s mo<6D>nost<73> serializace a deserializace dat.
## Funkce aplikace
### ? Implementovan<61> funkce
- **CRUD operace**
- Create (P<>id<69>n<EFBFBD> vozidla)
- Read (Zobrazen<65> seznamu a detail<69>)
- Update (<28>prava vozidel)
- Delete (Maz<61>n<EFBFBD> vozidel)
- **Serializace a deserializace**
- Ukl<6B>d<EFBFBD>n<EFBFBD> dat do JSON souboru (`vehicles.json`)
- Automatick<63> na<6E><61>t<EFBFBD>n<EFBFBD> dat p<>i spu<70>t<EFBFBD>n<EFBFBD> aplikace
- **Evidence vozidel**
- SPZ
- Zna<6E>ka (nap<61>. <20>koda, BMW, Audi)
- Model
- Rok v<>roby
- Palivo (Benz<6E>n, Nafta, Elektro, Hybrid, LPG, CNG)
- N<>jezd v km
- Cena v K<>
- Barva (s v<>b<EFBFBD>rem z Color Dialogu)
- Fotografie (ulo<6C>en<65> jako Base64)
- **Evidence vlastn<74>k<EFBFBD>**
- Jm<4A>no
- P<><50>jmen<65>
- Adresa
- Telefon
- Email
### ??? U<>ivatelsk<73> rozhran<61>
#### Hlavn<76> okno (MainWindow)
- Seznam v<>ech vozidel v p<>ehledn<64> tabulce
- Zobrazen<65>: SPZ, Zna<6E>ka a Model, Barva, Rok, Palivo
- Akce:
- **P<>idat vozidlo** - otev<65>e okno pro p<>id<69>n<EFBFBD> nov<6F>ho vozidla
- **Detail** - zobraz<61> detailn<6C> informace o vybran<61>m vozidle
- **Upravit** - umo<6D>n<EFBFBD> editaci vybran<61>ho vozidla
- **Smazat** - sma<6D>e vybran<61> vozidlo (s potvrzen<65>m)
- **Double-click** na vozidlo otev<65>e detail
#### Okno p<>id<69>n<EFBFBD> vozidla (AddVehicleWindow)
- Formul<75><6C> pro zad<61>n<EFBFBD> v<>ech <20>daj<61> o vozidle
- V<>b<EFBFBD>r barvy pomoc<6F> Color Dialogu
- V<>b<EFBFBD>r paliva z ComboBoxu
- Mo<4D>nost p<>idat fotografii
- Sekce pro zad<61>n<EFBFBD> informac<61> o vlastn<74>kovi
- Validace <20><>seln<6C>ch vstup<75>
#### Okno <20>pravy vozidla (EditVehicleWindow)
- P<>edvypln<6C>n<EFBFBD> <20>daje z vybran<61>ho vozidla
- N<>hled aktu<74>ln<6C> fotografie
- Mo<4D>nost zm<7A>ny v<>ech <20>daj<61> v<>etn<74> vlastn<74>ka
- Stejn<6A> funkce jako v okn<6B> p<>id<69>n<EFBFBD>
#### Okno detailu vozidla (VehicleDetailWindow)
- Kompletn<74> zobrazen<65> v<>ech informac<61>
- Zobrazen<65> fotografie vozidla
- Informace o vlastn<74>kovi
- Tla<6C><61>tka pro <20>pravu, smaz<61>n<EFBFBD> nebo zav<61>en<65>
## Struktura projektu
### T<><54>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<EFBFBD>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)
### <20>istota k<>du
- Jasn<73> pojmenov<6F>n<EFBFBD> prom<6F>nn<6E>ch a metod
- Validace vstup<75> (PreviewTextInput pro <20><>seln<6C> hodnoty)
- O<>et<65>en<65> chyb (try-catch bloky p<>i pr<70>ci s obr<62>zky)
- Odd<64>len<65> logiky od prezentace
## Instalace a spu<70>t<EFBFBD>n<EFBFBD>
1. Otev<65>ete projekt v **Visual Studio 2022** nebo nov<6F>j<EFBFBD><6A>m
2. Ujist<73>te se, <20>e m<>te nainstalovan<61> **.NET 8.0 SDK**
3. Stiskn<6B>te **F5** nebo klikn<6B>te na **Start** pro spu<70>t<EFBFBD>n<EFBFBD> aplikace
4. Data se automaticky ukl<6B>daj<61> do souboru `vehicles.json` ve stejn<6A> slo<6C>ce jako aplikace
## Ovl<76>d<EFBFBD>n<EFBFBD> aplikace
### P<>id<69>n<EFBFBD> vozidla
1. Klikn<6B>te na tla<6C><61>tko **"P<>idat vozidlo"**
2. Vypl<70>te <20>daje o vozidle
3. Vyberte barvu pomoc<6F> tla<6C><61>tka **"Vybrat barvu"**
4. (Voliteln<6C>) Vyberte fotografii
5. (Voliteln<6C>) Vypl<70>te <20>daje o vlastn<74>kovi
6. Klikn<6B>te na **"Ulozit"**
### Zobrazen<65> detailu
- **Double-click** na vozidlo v seznamu, nebo
- Vyberte vozidlo a klikn<6B>te na **"Detail"**
### <20>prava vozidla
1. Vyberte vozidlo v seznamu
2. Klikn<6B>te na **"Upravit"**
3. Zm<5A><6D>te po<70>adovan<61> <20>daje
4. Klikn<6B>te na **"Ulozit"**
### Smaz<61>n<EFBFBD> vozidla
1. Vyberte vozidlo v seznamu
2. Klikn<6B>te na **"Smazat"**
3. Potvr<76>te smaz<61>n<EFBFBD>
## Ukl<6B>d<EFBFBD>n<EFBFBD> dat
Data jsou ulo<6C>ena v souboru **`vehicles.json`** ve form<72>tu:
```json
[
{
"Spz": "1A2 3456",
"Znacka": "Skoda",
"Model": "Octavia",
"Barva": "#FF0000",
"RokVyroby": 2020,
"Palivo": "Benz<6E>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<EFBFBD>eno pro p<>edm<64>t PTA25 - Programov<6F>n<EFBFBD> v C#
## Term<72>n odevzd<7A>n<EFBFBD>
**1. 3. 2026**