Updated README.md because macos was missing a few instructions to install
This commit is contained in:
parent
d44041726f
commit
c32ae94196
1 changed files with 123 additions and 60 deletions
169
README.md
169
README.md
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue