Aplikace pro všemožné jednoduché nástroje, které pomohou automatizovat složité úkony.
Aplikace pro všemožné jednoduché nástroje, které pomohou automatizovat složité úkony.
## Lokální setup
## Struktura projektu
```
.
├── rybicka = Nastavení projektu, URLs.
├── shared = Sdílené templaty a statické soubory pro všechny ostatní aplikace, index.
├── member_group_size_calc = Kalkulačka velikosti skupiny členů.
├── 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í |
V produkci je potřeba:
| proměnná | popis |
| `ALLOWED_HOSTS` | Seznam domén, skrz které se na server lze připojovat. [Více info](https://docs.djangoproject.com/en/4.1/ref/settings/#allowed-hosts) |
## 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:
```bash
$ make help
```
### Lokální setup
Požadavky:
Požadavky:
- Python 3.9+
- Python 3.9+
- Linuxové prostředí, na Windows netestováno
- Linuxové prostředí, na Windows netestováno
Zkopírovat `env.example` do `.env`, nastavit `DATABASE_URL` a `SECRET_KEY`.
Zkopíruj `env.example` do `.env`, nastav potřebné promenné.
Vytvoř virtualenv:
```bash
```bash
make install
$ make venv
make build
make run
```
```
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](https://github.com/pyenv/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:
```bash
$ 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:
```bash
$ alias senv='source .venv/bin/activate'
```
A pak můžeš virtualenv aktivovat pouze jednoduchým voláním:
```bash
$ senv
```
Pro sofistikovanější řešení, které aktivuje virtualenv při změně adresáře na
adresář s projektem, slouží nástroj [direnv](https://direnv.net/).
Deaktivace virtualenv se dělá příkazem:
```bash
$ deactivate
```
### Instalace závislostí
Spusť:
```bash
$ 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ť:
```bash
$ 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:
```bash
$ make run
```
Poté můžeš web otevřít na adrese [http://localhost:8012](http://localhost:8012).