# Systém pro uživatelskou konfiguraci platformy Smart City


## Popis
Paměťové médium bakalářské práce _Systém pro uživatelskou konfiguraci platformy Smart City_.

Autor: Marek Konečný\
Vedoucí práce: Ing. Jiří Hynek, Ph.D.


## Adresářová struktura
- [README.md](README.md) - tento soubor
- [license](license) - licence ke zdrojovým souborům

- [demo-videos/*](demo-videos/) - demonstrační videoukázky pro klienty
- [doc/](doc/)
  - [src/*](doc/src/) - zdrojové soubory technické zprávy
  - [thesis.pdf](doc/thesis.pdf) - technická zpráva

- [sources/](sources/)
  - [implementations/](sources/implementations/)
    - [cypress/*](sources/implementations/cypress) - definice příkazů a testovacích sad pro spuštění v nástroji Cypress
    - [cypress.config.ts](sources/implementations/cypress.config.ts) - konfigurační soubor nástroje Cypress
    - [cypress.Dockerfile](sources/implementations/cypress.Dockerfile) - specifikace sestavení testovacího prostředí technologií Docker
    - [cypress.patch](sources/implementations/cypress.patch) - soubor se změnami nutnými pro spuštění testů v Cypress; automaticky aplikován při sestavení s [cypress.Dockerfile](sources/implementations/cypress.Dockerfile)
    - [src/*](sources/implementations/src/) - implementace `lmgc-gui-configs` a nových metamodelů
  - [patches/*](sources/patches/) - změny v ostatních apl. modulech ve formě souborů aplikovatelných utilitou *patch*


## Spuštění projektu

Prerekvizity: *Docker*

### Příprava zdrojových kódů
1. Stáhnout zdrojové kódy aplikace v produkční větvi
2. Nahradit soubory `lmgc-gui-configs` novou implementací v [lgmc-gui-configs](sources/implementations/src/shared/lgmc-gui/lgmc-gui-configs/)
3. Zkopírovat definice metamodelů ([config/meta/](sources/implementations/src/config/meta/) a [lgmc-gui-dashboard/model/](sources/implementations/src/shared/lgmc-gui/lgmc-gui-dashboard/model/))
4. Zkopírovat definice testovacího prostředí ([cypress/](sources/implementations/cypress/), [cypress.config.ts](sources/implementations/cypress.config.ts), [cypress.Dockerfile](sources/implementations/cypress.Dockerfile) a [cypress.patch](sources/implementations/cypress.patch))
5. Aplikovat změny nad aplikací ([/](sources/patches/)) a jejími submoduly ([src/shared/](sources/patches/src/shared/)) pomocí *patch*

### Spuštění testovacího prostředí
1. V kořenovém adresáři aplikace sestavit obraz:
```
docker build -t <název-obrazu> -f cypress.Dockerfile .
```
2. Spustit kontejner:
```
docker run -p <hostitelský-port>:80 <název-obrazu>
```