https://github.com/eetagent/dohodaprovedeniprace
Knihovna, terminálový program a grafické rozhraní pro vytváření SSPŠ výkazů práce
https://github.com/eetagent/dohodaprovedeniprace
c cli dpp gtk4 gui ssps
Last synced: 3 months ago
JSON representation
Knihovna, terminálový program a grafické rozhraní pro vytváření SSPŠ výkazů práce
- Host: GitHub
- URL: https://github.com/eetagent/dohodaprovedeniprace
- Owner: EETagent
- License: mit
- Created: 2021-08-20T10:26:12.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-07-22T23:15:06.000Z (almost 2 years ago)
- Last Synced: 2025-02-28T09:11:13.546Z (3 months ago)
- Topics: c, cli, dpp, gtk4, gui, ssps
- Language: C
- Homepage:
- Size: 495 KB
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Dohoda o provedení práce - Okamžité vytvoření DPP pro SSPŠ
Jednoduchý terminálový program a knihovna pro tvorbu výkazů práce.
Vytvořená dohoda je totožná a kompatibilní s DPP užívanými na Smíchovské střední průmyslové škole.[]()
[]()
[]()
## Použití
Program vytvoří PDF na základě poskytnuté [TOML](https://toml.io/en/) konfigurace z `stdin` (Možno přesměrovat obsah souboru viz. níže) a uloží ho do aktuální složky.
Název výsledného souboru je kombinace prefixu DPP_ a přijmení zaměstnance (Pokud je uvedeno).```bash
dohoda_ssps < konfigurace.toml
```S přepínačem `--` podporuje program vypsání PDF souboru do `stdout`, tento výstup je tedy možné přesměrovat do libovolného souboru.
```bash
dohoda_ssps -- < konfigurace.toml > ../mojedohoda.pdf
```Vypsání nápovědy
```bash
dohoda_ssps -h
```
```
DohodaProvedeniPrace (https://github.com/EETagent/DohodaProvedeniPrace)
Použití programu: ./dohoda_ssps [-hnstf] < soubor
-h Vypsání této nápovědy
-n Seřazení položek od nejnovější
-s Seřazení položek od nejstarší
-t Vypsat počet odpracovaných hodin
-p Vypsat celkovou částku za odpracované hodiny
-w Živé sledování změn v souboru - watch
-f Cesta k souboru
-- Vypsat PDF do stdout (Musí být na konci příkazu)PŘÍKLADY:
./dohoda_ssps < vykaz.toml
./dohoda_ssps -s < vykaz.toml
./dohoda_ssps -- < vykaz.toml > dohoda.pdf
./dohoda_ssps -n -f /home/thinkpad/vykaz.toml -- > dohoda.pdf
```## Ukázkový TOML
```toml
[dohoda]
nazev = "Program na tovrbu výkazů pro dohody o provedení práce"
kde = "V Liberci"
zastupce_email = "[email protected]"[zamestnanec]
jmeno = "Franta Novák"
email = "[email protected]"
rodne_cislo = ""
banka = ""
misto_narozeni = "Praha"
adresa = "Novákových 123/2, Praha"
pojistovna = "VZP - xxxxx"[[prace]]
datum = "14.8"
cinnost = "Hodně jsem pracoval"
hodiny = "4"
poznamka = ""[[prace]]
datum = "15.8"
cinnost = "Další práce"
hodiny = "2"
poznamka = ""[[prace]]
datum = "16.8"
cinnost = "Třetí položka už"
hodiny = "9"
poznamka = ""[[prace]]
datum = "17.8"
cinnost = "Poslední testovací blok"
hodiny = "2"
poznamka = ""
```
Další příklady v toml/## Kompilace
K sestavení projektu jsou potřeba následující závislosti:
* C11 kompilátor (gcc / clang)
* cmake
* ninja nebo makeStažení projektu:
```bash
git clone https://github.com/EETagent/DohodaProvedeniPrace.git
```Sestavení aplikace:
```bash
mkdir build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
ninja
```## Testy
Součástí projektu jsou i zabudované testy:
- `PDF_TEST` -> Zda je výstup PDF totožný k jeho TOML konfiguraci
- `PDF_VELKE_TEST` -> Zda je výstup PDF totožný k jeho TOML konfiguraci větší než 15 položek
- `PDF_RAZENI_TEST` -> Zda jsou položky v PDF správě seřazeny, jinak stejný jako PDF_SAME_HASH_TEST
- `PDF_VELIKOST_TEST` -> Zda je výsledné PDF menší než 1 MB```bash
ninja test
```## Grafické rozhraní

Alternativa k terminálovému programu. GUI napsané v nejnovějším přenosném frameworku GTK4.
Zatím není propojenou s knihovnou, jinak je UI plně funkční, vytváří TOML konfiguraci, která je posléze vypsána do STDOUT.
## TODO
- [x] Řazení podle data
- [x] Optimalizace kódu a dokumentace
- [x] Výpis počtu odpracovaných hodin
- [x] Dynamický počet maximálních možných položek
- [x] UTF-8 ready omezení délky textu
- [ ] **Vícestránkový dokument**
- [ ] **CGI interface a webový frontend**