mirror of
https://github.com/pepaskopec-blip/Graduately.git
synced 2026-10-27 15:14:35 +00:00
The header magnifier and Cmd/Ctrl+K open a palette that jumps straight to a matching page. Co-authored-by: Cursor <cursoragent@cursor.com>
277 lines
11 KiB
Markdown
277 lines
11 KiB
Markdown
# maturita.c
|
||
|
||
Vzdělávací GTK 4 aplikace k přípravě na maturitu. / An educational GTK 4 app for the Czech maturita exam.
|
||
|
||
**[Česky](#česky)** · **[English](#english)**
|
||
|
||
---
|
||
|
||
## Česky
|
||
|
||
Rozhraní je v češtině a angličtině. Hotové jsou čtyři předměty; ostatní jsou
|
||
zatím zamčené placeholdery. Aplikace se po instalaci aktualizuje sama.
|
||
|
||
| Úvod | Předměty | Německá cesta |
|
||
| ---- | -------- | ------------- |
|
||
|  |  |  |
|
||
|
||
### Instalace
|
||
|
||
Žádné releasy ani čísla verzí nejsou. CI po každém pushi na `main` uloží
|
||
balíčky do větve [`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds).
|
||
Instalátor samotnou aplikaci neobsahuje — při spuštění si dohledá aktuální
|
||
commit větve `builds` a stáhne ten soubor, ne kešovanou kopii podle názvu
|
||
větve.
|
||
|
||
**Stáhni zip, rozbal ho a otevři instalátor.** Nic víc (žádný Terminál):
|
||
|
||
| Platforma | Soubor | Jak spustit |
|
||
| --------- | ------ | ----------- |
|
||
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-macos.zip) | Rozbalit, pravý klik na **Nainstalovat maturita.C** → **Otevřít** |
|
||
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-windows.zip) | Rozbalit a dvojklik; u SmartScreenu **Další informace → Přesto spustit** |
|
||
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-linux.zip) | Rozbalit a dvojklik na instalátor |
|
||
|
||
Kam se to nainstaluje: `/Applications` nebo `~/Applications` (macOS),
|
||
`%LOCALAPPDATA%\Programs\Maturita` (Windows), `~/Applications` (Linux).
|
||
|
||
Buildy zatím nejsou notarizované (chybí Apple Developer ID), proto je při
|
||
**prvním** spuštění potřeba výše uvedený krok navíc. Aplikace se pak udržuje
|
||
sama: po startu porovná svůj commit se souborem `VERSION` ve větvi `builds`
|
||
a aktualizaci nabídne v pruhu nahoře. Ruční kontrola je
|
||
v **Nastavení → Aktualizace**.
|
||
|
||
#### Bez instalátoru
|
||
|
||
Na větvi [`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds)
|
||
jsou i hotové balíčky. Odkazy podle názvu větve umí CDN kešovat, proto je
|
||
spolehlivější instalátor výše, nebo stažení přímo z té stránky větve:
|
||
|
||
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-macos-arm64.zip)
|
||
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-windows-x64.zip)
|
||
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-linux-x86_64.AppImage)
|
||
|
||
Postup a nastavení se ukládají vedle `.app` / složky / AppImage do `progress/`.
|
||
|
||
Intel Mac, jiná architektura nebo úpravy kódu → [sestavení ze zdroje](#sestavení-ze-zdroje).
|
||
|
||
### Co v aplikaci je
|
||
|
||
- **Deutsch** — 3 otevřené jednotky (Neue Freunde, Aus aller Welt, Bei uns zu
|
||
Hause): cvičení, nápovědy, vokabeltraining
|
||
- **Správa počítačových sítí** — 1. ročník, 27 lekcí (VLSM + teorie a kvízy);
|
||
ročníky 2–4 jsou zamčené
|
||
- **Technické vybavení** — 3 lekce (architektura, historie, bit/byte)
|
||
- **Český jazyk a literatura** — mluvnice (20 cvičení) a maturitní četba
|
||
(1984, Spalovač mrtvol); literatura je zatím zamčená
|
||
- statistiky, hledání (lupa nebo `Cmd/Ctrl+K`), 10 témat, tmavý/světlý režim, čeština/angličtina
|
||
- ukončení: `Cmd/Super+Q` nebo `Alt+F4`
|
||
|
||
### Použití
|
||
|
||
1. **Pokračuj** otevře mapu předmětů.
|
||
2. Otevřený předmět (vlajka, Wi‑Fi, čip, česká vlajka) vede na učební cestu.
|
||
3. Uzly cvičení / lekcí otevřou obsah; zamčené nic nedělají.
|
||
4. **Hledat** (lupa), **Statistiky** (graf) a **Nastavení** (ozubené kolo) jsou vpravo nahoře.
|
||
|
||
### Sestavení ze zdroje
|
||
|
||
```bash
|
||
# macOS
|
||
brew install gtk4 gcc make pkg-config
|
||
|
||
# Debian / Ubuntu
|
||
sudo apt install build-essential pkg-config libgtk-4-dev
|
||
|
||
# Fedora
|
||
sudo dnf install gcc make pkgconf-pkg-config gtk4-devel
|
||
|
||
# Arch
|
||
sudo pacman -S base-devel pkgconf gtk4
|
||
```
|
||
|
||
```bash
|
||
git clone https://github.com/pepaskopec-blip/maturita.c.git
|
||
cd maturita.c
|
||
make
|
||
make run # nebo ./maturita
|
||
make bundle # AppImage / .app zip / Windows složka s DLL
|
||
```
|
||
|
||
Volitelně CMake: `cmake -S . -B build && cmake --build build`.
|
||
|
||
Aby stažená aplikace na macOS šla otevřít bez potvrzení v Nastavení, CI
|
||
potřebuje **Apple Developer Program** a GitHub Secrets:
|
||
|
||
- `MACOS_CERTIFICATE` — Developer ID Application `.p12` v base64
|
||
- `MACOS_CERTIFICATE_PASSWORD`
|
||
- `APPLE_API_KEY`, `APPLE_API_KEY_ID`, `APPLE_API_ISSUER` — notarizace
|
||
(nebo `APPLE_ID` + `APPLE_APP_SPECIFIC_PASSWORD` + `APPLE_TEAM_ID`)
|
||
|
||
Bez toho zůstane jen ad-hoc podpis a Gatekeeper stažený build zablokuje.
|
||
|
||
#### Windows (MSYS2 UCRT64, bez Visual Studia)
|
||
|
||
```cmd
|
||
winget install --id MSYS2.MSYS2 -e --source winget
|
||
C:\msys64\ucrt64.exe pacman -S --noconfirm mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-pkg-config make
|
||
```
|
||
|
||
V terminálu **MSYS2 UCRT64**:
|
||
|
||
```bash
|
||
cd /c/Users/<jméno>/maturita.c # C:\Users\<jméno>\maturita.c v MSYS2
|
||
make
|
||
./maturita.exe
|
||
make bundle # dist/maturita.exe jde spustit i z Průzkumníka
|
||
```
|
||
|
||
### Struktura
|
||
|
||
```
|
||
src/ C zdroje a maturita.h
|
||
data/ style.css, share/, podpisy, Windows .rc
|
||
assets/ zdrojová ikona a screenshoty
|
||
installers/ instalátory, které stáhnou aktuální build
|
||
scripts/ balení AppImage a .app
|
||
.github/workflows/ CI: push na main → větev builds
|
||
progress/ vzniká za běhu (cvičení, nastavení)
|
||
```
|
||
|
||
Licence: [GPL-3.0](LICENSE).
|
||
|
||
---
|
||
|
||
## English
|
||
|
||
The UI is Czech and English. Four subjects are playable; the rest are locked
|
||
placeholders. After install the app updates itself.
|
||
|
||
| Welcome | Subjects | German path |
|
||
| ------- | -------- | ----------- |
|
||
|  |  |  |
|
||
|
||
### Install
|
||
|
||
There are no releases and no version numbers. CI writes packages to the
|
||
[`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds) branch
|
||
whenever `main` changes. The installer carries no app of its own — it fetches
|
||
the current `builds` commit when you run it, not a CDN-cached copy of the
|
||
branch-named file.
|
||
|
||
**Download the zip, unzip it, and open the installer.** No Terminal:
|
||
|
||
| Platform | File | How to run |
|
||
| -------- | ---- | ---------- |
|
||
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-macos.zip) | Unzip, right-click **Nainstalovat maturita.C** → **Open** |
|
||
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-windows.zip) | Unzip and double-click; if SmartScreen appears, **More info → Run anyway** |
|
||
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/maturita.c/raw/main/installers/maturita-installer-linux.zip) | Unzip and double-click the installer |
|
||
|
||
Install locations: `/Applications` or `~/Applications` (macOS),
|
||
`%LOCALAPPDATA%\Programs\Maturita` (Windows), `~/Applications` (Linux).
|
||
|
||
The builds are not notarized yet (no Apple Developer ID), so the first
|
||
launch still needs the extra step above. After that the app stays current:
|
||
it compares its commit to `VERSION` on `builds` and offers an update in a
|
||
banner. Manual check: **Settings → Updates**.
|
||
|
||
#### Packages without the installer
|
||
|
||
The same files live on
|
||
[`builds`](https://github.com/pepaskopec-blip/maturita.c/tree/builds).
|
||
Branch-named raw URLs can be cached by the CDN, so prefer the installer
|
||
above, or download from that branch page:
|
||
|
||
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-macos-arm64.zip)
|
||
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-windows-x64.zip)
|
||
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/maturita.c/raw/builds/maturita-linux-x86_64.AppImage)
|
||
|
||
Progress and settings live in `progress/` next to the `.app` / folder /
|
||
AppImage.
|
||
|
||
Intel Mac, another architecture, or hacking on the code →
|
||
[build from source](#build-from-source).
|
||
|
||
### What’s inside
|
||
|
||
- **Deutsch** — 3 open units (Neue Freunde, Aus aller Welt, Bei uns zu Hause):
|
||
exercises, hints, vocabulary training
|
||
- **Computer networks** — year 1, 27 lessons (VLSM + theory/quizzes);
|
||
years 2–4 are locked
|
||
- **Computer hardware** — 3 lessons (architecture, history, bit/byte)
|
||
- **Czech language** — grammar (20 exercises) and required reading
|
||
(1984, Spalovač mrtvol); literature theory is still locked
|
||
- statistics, search (magnifier or `Cmd/Ctrl+K`), 10 palettes, dark/light mode, Czech/English
|
||
- quit with `Cmd/Super+Q` or `Alt+F4`
|
||
|
||
### Usage
|
||
|
||
1. **Continue** opens the subject map.
|
||
2. An open subject (flag, Wi‑Fi, chip, Czech flag) opens its path.
|
||
3. Exercise / lesson nodes open content; locked nodes do nothing.
|
||
4. **Search** (magnifier), **Statistics** (chart) and **Settings** (gear) sit in the top-right.
|
||
|
||
### Build from source
|
||
|
||
```bash
|
||
# macOS
|
||
brew install gtk4 gcc make pkg-config
|
||
|
||
# Debian / Ubuntu
|
||
sudo apt install build-essential pkg-config libgtk-4-dev
|
||
|
||
# Fedora
|
||
sudo dnf install gcc make pkgconf-pkg-config gtk4-devel
|
||
|
||
# Arch
|
||
sudo pacman -S base-devel pkgconf gtk4
|
||
```
|
||
|
||
```bash
|
||
git clone https://github.com/pepaskopec-blip/maturita.c.git
|
||
cd maturita.c
|
||
make
|
||
make run # or ./maturita
|
||
make bundle # AppImage / .app zip / Windows DLL folder
|
||
```
|
||
|
||
Optional CMake: `cmake -S . -B build && cmake --build build`.
|
||
|
||
Skipping Gatekeeper on a downloaded macOS build needs an
|
||
**Apple Developer Program** membership and these GitHub Secrets:
|
||
|
||
- `MACOS_CERTIFICATE` — Developer ID Application `.p12`, base64-encoded
|
||
- `MACOS_CERTIFICATE_PASSWORD`
|
||
- `APPLE_API_KEY`, `APPLE_API_KEY_ID`, `APPLE_API_ISSUER` for notarization
|
||
(or `APPLE_ID` + `APPLE_APP_SPECIFIC_PASSWORD` + `APPLE_TEAM_ID`)
|
||
|
||
Without them the bundle stays ad-hoc signed and Gatekeeper still blocks it.
|
||
|
||
#### Windows (MSYS2 UCRT64, no Visual Studio)
|
||
|
||
```cmd
|
||
winget install --id MSYS2.MSYS2 -e --source winget
|
||
C:\msys64\ucrt64.exe pacman -S --noconfirm mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-pkg-config make
|
||
```
|
||
|
||
In an **MSYS2 UCRT64** terminal:
|
||
|
||
```bash
|
||
cd /c/Users/<name>/maturita.c # C:\Users\<name>\maturita.c in MSYS2
|
||
make
|
||
./maturita.exe
|
||
make bundle # dist/maturita.exe can be double-clicked
|
||
```
|
||
|
||
### Layout
|
||
|
||
```
|
||
src/ C sources and maturita.h
|
||
data/ style.css, share/, signing files, Windows .rc
|
||
assets/ source icon and screenshots
|
||
installers/ fetch-the-latest installers
|
||
scripts/ AppImage / .app bundlers
|
||
.github/workflows/ CI: push to main → builds branch
|
||
progress/ created at runtime (exercises, settings)
|
||
```
|
||
|
||
License: [GPL-3.0](LICENSE).
|