Skip to content
Snippets Groups Projects
Select Git revision
  • master protected
  • test default
2 results

contract-registry

  • Clone with SSH
  • Clone with HTTPS
  • Registr smluv

    Aplikace pro transparentní evidenci smluv a informací s nimi spojených.

    Struktura projektu

    .
    ├── registry                = Nastavení projektu, URLs.
    ├── shared                  = Sdílené modely, templaty a statické soubory pro všechny ostatní aplikace.
    ├── contracts               = Aplikace pro samotné smlouvy.
    ├── users                   = Aplikace pro uživatele.
    ├── static_src              = Zdrojové CSS a JS, které příkazem 'make build' buildujeme.
    ├── requirements            = Pythonové závislosti z PyPI.
    └── env.example             = Příklad .env souboru.

    Konfigurace

    Je třeba definovat minimálně následující environment proměnné:

    proměnná popis
    DATABASE_URL URL pro připojení k databázi ve formátu postgresql://username:password@host:5432/database_name
    SECRET_KEY Tajný klíč např. pro šifrování
    DEFAULT_COUNTRY Defaultní země podepisujících stran, např. Česká republika
    DEFAULT_CONTRACTEE_NAME Defaultní jméno naší podepisující strany
    DEFAULT_CONTRACTEE_STREET Defaultní ulice a č.p. naší podepisující strany
    DEFAULT_CONTRACTEE_ZIP Defaultní PSČ naší podepisující strany
    DEFAULT_CONTRACTEE_DISTRICT Defaultní obec naší podepisující strany
    DEFAULT_CONTRACTEE_ICO_NUMBER Defaultní IČO naší podepisující strany

    V produkci je potřeba:

    proměnná popis
    ALLOWED_HOSTS Seznam domén, skrz které se na server lze připojovat. Více info

    Vývoj

    V produkci používáme Docker. Při vývoji se hodí přiložený Makefile, pro automatizování často prováděných akcí. Pro nápovědu zavolej:

    $ make help

    Lokální setup

    Požadavky:

    • Python 3.9+
    • Linuxové prostředí, na Windows netestováno

    Zkopíruj env.example do .env, nastav potřebné proměnné.

    Vytvoř virtualenv:

    $ make venv

    Vytvoří virtualenv ve složce .venv. Předpokládá že výchozí python v terminálu je Python 3. Pokud tomu tak není, použij třeba Pyenv pro instalaci více verzí Pythonu bez rizika rozbití systému.

    Aktivace virtualenvu

    Před prací na projektu je třeba aktivovat virtualenv. To bohužel nejde dělat pomocí nástroje make. Je třeba zavolat příkaz:

    $ source .venv/bin/activate

    Pro shell lze vytvořit alias. Do ~/.bash_profile, ~/.zshrc nebo jiného konfiguračního souboru dle tvého shellu přidej:

    $ alias senv='source .venv/bin/activate'

    A pak můžeš virtualenv aktivovat pouze jednoduchým voláním:

    $ senv

    Pro sofistikovanější řešení, které aktivuje virtualenv při změně adresáře na adresář s projektem, slouží nástroj direnv.

    Deaktivace virtualenv se dělá příkazem:

    $ deactivate

    Instalace závislostí

    Spusť:

    $ make install

    Tím se nainstalují Pythonové závislosti a virtuální Node.js 19x nutné k buildu statických souborů.

    Build statických souborů

    Spusť:

    $ make build

    Tím se vytvoří CSS a JS soubory, které se dají použít v prohlížečovém prostředí.

    Spuštění development serveru

    Django development server na portu 8012 se spustí příkazem:

    $ make run

    Poté můžeš web otevřít na adrese http://localhost:8012.

    Code quality

    K formátování kódu se používá black. Doporučujeme ho nainstalovat do tvého editoru, aby soubory přeformátoval po uložení.

    Přeformátování kódu nástrojem black je součástí pre-commit hooks (viz níže).

    Součástí pre-commit hooků je také automatické seřazení importů v Pythonních souborech nástrojem isort.

    Pre-commit hooky

    Použivá se pre-commit framework pro management git pre-commit hooks.

    Máš-li pre-commit framework nainstalovaný, spusť příkaz:

    $ make install-hooks

    Ten naisntaluje hooky pro projekt. A poté při každém commitu dojde k požadovaným akcím na změněných souborech.

    Ručně se dají hooky na všechny soubory spustit příkazem:

    $ make hooks