Add clanker code
This commit is contained in:
189
README.md
Normal file
189
README.md
Normal 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**
|
||||
Reference in New Issue
Block a user