Updated README.md because macos was missing a few instructions to install

This commit is contained in:
Martin Dvořák 2026-09-03 21:41:15 +02:00
commit c32ae94196

169
README.md
View file

@ -4,44 +4,102 @@ A German learning application written in C using GTK 4.
## Description ## 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 ## Features
- Beautiful gradient background with modern styling - **Welcome screen** – branded greeting with a description of the program and a
- Centered welcome message with information about the program "Pokračuj" button to get started
- Resizable window (standard GTK behavior) - **Learning roadmap** – a wave-shaped "Učební plán" path with 12 units that
- Written in C using GTK 4 for cross-platform compatibility scrolls horizontally
- CSS-based styling for easy customization - 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 ## Installation
### Prerequisites ### Prerequisites
To build and run Sprechen.c, you need: #### 1. GTK 4 development libraries
1. **GTK 4 Development Libraries** macOS:
- 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`
2. **Build Tools** ```bash
- GCC compiler (or Clang) brew install gtk4
- Make utility ```
- pkg-config (usually comes with GTK installation)
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 ### Building the Application
1. Clone or download this repository 1. Clone or download this repository
2. Navigate to the project directory 2. Navigate to the project directory
3. Build using the provided Makefile: 3. Build using the provided Makefile:
```bash ```bash
make make
``` ```
Or manually: Or manually:
```bash ```bash
gcc -o sprechen sprechen.c `pkg-config --cflags --libs gtk4` gcc -o sprechen sprechen.c `pkg-config --cflags --libs gtk4` -lm
``` ```
### Running the Application ### Running the Application
@ -49,65 +107,70 @@ To build and run Sprechen.c, you need:
```bash ```bash
make run make run
``` ```
or or
```bash ```bash
./sprechen ./sprechen
``` ```
## Usage ## Usage
Once launched, the application will display a window with: When launched, the application shows the welcome screen. From there:
- Title: "Sprechen.c"
- Welcome message in Czech (as currently implemented)
- Beautiful dark bluish gradient background
- Styled text box with rounded corners and subtle shadow
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 ## To-Do Plans
Future enhancements planned for Sprechen.c: Future enhancements planned for Sprechen.c:
### Short-term Goals - [ ] Wire unit nodes to actual German vocabulary/grammar exercises
- [ ] Add interactive German vocabulary exercises - [ ] Lesson progression and unlock system for the remaining units
- [ ] Implement basic grammar practice modules
- [ ] Add audio pronunciation features - [ ] Add audio pronunciation features
- [ ] Create lesson progression system
- [ ] Add user settings panel - [ ] Add user settings panel
### Medium-term Goals
- [ ] Implement spaced repetition system for vocabulary - [ ] Implement spaced repetition system for vocabulary
- [ ] Add listening comprehension exercises - [ ] Add listening and reading comprehension exercises
- [ ] Include reading comprehension texts
- [ ] Add writing practice with feedback - [ ] Add writing practice with feedback
- [ ] Implement progress tracking and statistics - [ ] Implement progress tracking and statistics
- [ ] Move CSS styling to an external file
### Long-term Goals - [ ] Split the UI code into multiple files
- [ ] 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
- [ ] Add internationalization support (gettext) - [ ] Add internationalization support (gettext)
- [ ] Improve accessibility features
- [ ] Add unit testing framework - [ ] 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 ## 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 ## Acknowledgments