From c32ae94196ffa6b230638065140c9c7f8bd2d658 Mon Sep 17 00:00:00 2001 From: Martin Dvorak Date: Thu, 3 Sep 2026 21:41:15 +0200 Subject: [PATCH] Updated README.md because macos was missing a few instructions to install --- README.md | 183 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 123 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 32cf141..38473ca 100644 --- a/README.md +++ b/README.md @@ -4,113 +4,176 @@ A German learning application written in C using GTK 4. ## Description -Sprechen.c is an educational program designed for practicing German language skills, targeted at high school and gymnasium students. The application features a beautiful graphical user interface with a gradient background and displays welcome information about the program. +Sprechen.c is an educational program designed for practicing German language +skills, aimed at high school and gymnasium students. The UI is written in Czech +and is built as a single C file (`sprechen.c`) that renders a modern, +CSS-styled GTK 4 interface with a Catppuccin Mocha dark theme. ## Features -- Beautiful gradient background with modern styling -- Centered welcome message with information about the program -- Resizable window (standard GTK behavior) -- Written in C using GTK 4 for cross-platform compatibility -- CSS-based styling for easy customization +- **Welcome screen** – branded greeting with a description of the program and a + "Pokračuj" button to get started +- **Learning roadmap** – a wave-shaped "Učební plán" path with 12 units that + scrolls horizontally + - current unit highlighted with a mauve→blue gradient and glow + - completed units shown in green with a checkmark + - locked units dimmed with a lock icon + - finish flag at the end of the path +- **Back navigation** – themed circular back button (top-left) returns to the + welcome screen +- **Catppuccin Mocha theme** – gradient background, rounded cards, glowing + buttons and nodes, all driven by an embedded CSS stylesheet +- **Keyboard quit shortcuts** – `Super/Cmd+Q` or `Alt+F4` closes the app +- Single-file C codebase, cross-platform (Linux and macOS supported) ## Installation ### Prerequisites -To build and run Sprechen.c, you need: +#### 1. GTK 4 development libraries -1. **GTK 4 Development Libraries** - - macOS: `brew install gtk4` - - Linux (Debian/Ubuntu): `sudo apt install libgtk-4-dev` - - Linux (Fedora): `sudo dnf install gtk4-devel` - - Linux (Arch): `sudo pacman -S gtk4` +macOS: -2. **Build Tools** - - GCC compiler (or Clang) - - Make utility - - pkg-config (usually comes with GTK installation) +```bash +brew install gtk4 +``` + +Linux (Debian / Ubuntu): + +```bash +sudo apt install libgtk-4-dev +``` + +Linux (Fedora): + +```bash +sudo dnf install gtk4-devel +``` + +Linux (Arch): + +```bash +sudo pacman -S gtk4 +``` + +#### 2. Build tools (compiler, Make, pkg-config) + +macOS – install all of these explicitly, they are **not** preinstalled: + +```bash +# installs the GNU C compiler, Make, and pkg-config +brew install gcc make pkg-config +# if you prefer Apple's Clang toolchain instead, you can run: +# xcode-select --install +``` + +Linux – **no need to install gcc, it is already preinstalled** on most +distributions (it ships with `build-essential`/`base-devel`): + +```bash +# Debian / Ubuntu: make sure you have the base toolchain and pkg-config +sudo apt install build-essential pkg-config +``` + +```bash +# Fedora +sudo dnf groupinstall "Development Tools" +sudo dnf install pkgconf-pkg-config +``` + +```bash +# Arch +sudo pacman -S base-devel pkgconf +``` ### Building the Application 1. Clone or download this repository 2. Navigate to the project directory 3. Build using the provided Makefile: - ```bash - make - ``` - Or manually: - ```bash - gcc -o sprechen sprechen.c `pkg-config --cflags --libs gtk4` - ``` + +```bash +make +``` + +Or manually: + +```bash +gcc -o sprechen sprechen.c `pkg-config --cflags --libs gtk4` -lm +``` ### Running the Application ```bash make run ``` + or + ```bash ./sprechen ``` ## Usage -Once launched, the application will display a window with: -- Title: "Sprechen.c" -- Welcome message in Czech (as currently implemented) -- Beautiful dark bluish gradient background -- Styled text box with rounded corners and subtle shadow +When launched, the application shows the welcome screen. From there: -The window is fully resizable like any standard application window. +1. Click **"Pokračuj"** to open the learning roadmap. +2. Browse the units along the path; the roadmap scrolls horizontally if the + window is too narrow. +3. Use the **back button** in the top-left corner to return to the welcome + screen. + +Only the first unit is currently unlocked. Clicking a locked unit does nothing – +units are placeholders until lessons are implemented. + +### Keyboard shortcuts + +| Shortcut | Action | +| ------------------- | --------------- | +| `Super/Cmd` + `Q` | Quit application | +| `Alt` + `F4` | Quit application | + +## Project structure + +``` +sprechen.c entire application (UI, navigation, path drawing, styling) +Makefile build & run targets +README.md this file +LICENSE MIT license +``` + +## Theming + +Colors follow the [Catppuccin Mocha](https://github.com/catppuccin/catppuccin) +palette and are applied through a CSS string embedded at the top of +`sprechen.c`. To tweak the look (colors, node glow, gradients, spacing), edit +that stylesheet and rebuild. ## To-Do Plans Future enhancements planned for Sprechen.c: -### Short-term Goals -- [ ] Add interactive German vocabulary exercises -- [ ] Implement basic grammar practice modules +- [ ] Wire unit nodes to actual German vocabulary/grammar exercises +- [ ] Lesson progression and unlock system for the remaining units - [ ] Add audio pronunciation features -- [ ] Create lesson progression system - [ ] Add user settings panel - -### Medium-term Goals - [ ] Implement spaced repetition system for vocabulary -- [ ] Add listening comprehension exercises -- [ ] Include reading comprehension texts +- [ ] Add listening and reading comprehension exercises - [ ] Add writing practice with feedback - [ ] Implement progress tracking and statistics - -### Long-term Goals -- [ ] Add multiple difficulty levels (A1-C2) -- [ ] Include cultural information about German-speaking countries -- [ ] Implement offline mode with downloadable lessons -- [ ] Add teacher/classroom management features -- [ ] Implement achievement system and rewards - -### Technical Improvements -- [ ] Separate UI code into multiple files (ui.c, ui.h) -- [ ] Move CSS styling to external file -- [ ] Implement lesson data loading from JSON/XML +- [ ] Move CSS styling to an external file +- [ ] Split the UI code into multiple files - [ ] Add internationalization support (gettext) -- [ ] Improve accessibility features - [ ] Add unit testing framework -## Contributing - -Contributions are welcome! Please feel free to submit pull requests or open issues for: -- Bug fixes -- Feature suggestions -- Translation improvements -- Documentation enhancements - ## License -This project is licensed under the MIT License - see the LICENSE file for details. +This project is licensed under the MIT License - see the LICENSE file for +details. ## Acknowledgments - Created as a learning exercise in C and GTK programming - Inspired by language learning applications -- Built with GTK 4 for modern GUI development \ No newline at end of file +- Built with GTK 4 for modern GUI development