mirror of
https://github.com/pepaskopec-blip/Graduately.git
synced 2026-10-27 15:14:35 +00:00
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
181
README.md
181
README.md
|
|
@ -4,110 +4,173 @@ 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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue