Good Grades is an interactive educational platform for school students, featuring two applications:
- GGManager — tools for content administration and learning management
- GGPlayer — a “player” for student assignments
The project is designed for offline-friendly learning on Windows, easy deployment, and regular updates.
- Create and manage lessons, modules, assignments, and materials
- Organize assignments by courses and topics
- Version control and publishing of updated materials
- Built-in quality control tools (preview and quick edits)
- Import/export support for backups or transferring content between installations
- Application logs with automatic upload to a remote server for support and diagnostics
- Access interactive assignments and course materials
- Instant feedback on completion (correct/incorrect, hints)
- View course resources including PDFs (WebView2 installation required for PDF support)
- Clear and intuitive navigation through lessons and tasks
- Automatic updates through releases
- Common visual components and UI elements used by both GGManager and GGPlayer
- Ensures a consistent look and behavior across applications
- Tests, exercises, and step-by-step tasks
- Highlighted results with hints for improvement
- Ability to retry and reinforce learning
- Support for text and graphic resources
- Built-in PDF support in the player
- Structure lessons by subjects, topics, and modules
- Flexibly combine assignments and materials into lessons
- Multi-language support via resource files (.resx)
- Translate the interface without changing the application logic
Logging is powered by Serilog with a custom batching sink that sends logs to the Good Grades Log Management API. Delivery is guaranteed even when the app is offline.
- 📦 Buffered Server Delivery
Logs are stored locally and periodically sent to:
[https://ggapi.movsar.dev/Logs](https://ggapi.movsar.dev/Logs)
A buffer folder (logs/outbox) ensures no data loss while offline.
-
📝 Local Log Files
All events are also written tologs/logs.txtwith daily rotation. -
⚙️ Flexible Batching
UsingPeriodicBatchingSink: -
Up to 50 events per batch
-
Sent every 5 seconds
-
First event sent immediately
-
🖥 Enriched Log Data
Each event includes: -
Machine name (
MachineName) -
OS version (
OSVersion) -
Application name and version
-
🛡 Minimum Log Level: Warning
Keeps production logs clean and noise-free.
- Runs on all Windows versions starting from Windows 7
- May require WebView2 installation for PDF viewing
- Students — a simple, intuitive “player” with instant feedback
- Teachers & Administrators — tools to build lessons and courses, update materials, and perform basic quality control
- Download the installers from the Releases section
- Separate installers are available for GGManager and GGPlayer
- Run the installer and follow the setup wizard
- New versions are published in Releases
- On startup, the application automatically checks for available updates and prompts the user



