Graduately/README.md
pepaskopec-blip cafa18b189 Add in-app search for subjects, lessons and exercises.
The header magnifier and Cmd/Ctrl+K open a palette that jumps straight to a matching page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 19:08:54 +02:00

11 KiB
Raw Blame History

maturita.c

Vzdělávací GTK 4 aplikace k přípravě na maturitu. / An educational GTK 4 app for the Czech maturita exam.

Česky · 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
Ú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. 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 Rozbalit, pravý klik na Nainstalovat maturita.C → Otevřít
Windows (x64) maturita-installer-windows.zip Rozbalit a dvojklik; u SmartScreenu Další informace → Přesto spustit
Linux (x86_64) 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 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:

Postup a nastavení se ukládají vedle .app / složky / AppImage do progress/.

Intel Mac, jiná architektura nebo úpravy kódu → 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

# 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
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)

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:

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.


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
Welcome Subjects German path

Install

There are no releases and no version numbers. CI writes packages to the 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 Unzip, right-click Nainstalovat maturita.C → Open
Windows (x64) maturita-installer-windows.zip Unzip and double-click; if SmartScreen appears, More info → Run anyway
Linux (x86_64) 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. Branch-named raw URLs can be cached by the CDN, so prefer the installer above, or download from that branch page:

Progress and settings live in progress/ next to the .app / folder / AppImage.

Intel Mac, another architecture, or hacking on the code → 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

# 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
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)

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:

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.