Bug Gym is a lightweight, offline Java practice desktop app that simulates Moodle-style exam questions with syntax highlighting, automated tests, and beginner-friendly progression. No logins, no internet, and no complex IDE setups required. Just open the app and start practicing.
At university (specifically KMUTT's SIT), students often take programming exams in stripped-down environments like Moodle or jGRASP. This creates an unfair gap for beginners:
- Moodle is locked to exam time and its editor is a plain text box.
- jGRASP lets you code but gives you zero practice questions.
- LeetCode / HackerRank are overwhelming for beginners just trying to understand arrays.
Bug Gym bridges that gap. It gives you realistic practice in a safe, offline space.
Bug Gym = jGRASP's simplicity + Moodle's instant testing + beginner-friendly problem sets.
Bug Gym runs purely locally on Windows, macOS, and Linux. No accounts, no internet, no cloud dependencies—just focused learning.
- Exam-Realistic Practice: Moodle-style Java questions designed for beginner-friendly progression.
- Intentionally Started Like jGRASP: The editor began in a strict, minimal style (manual indentation/brackets) to match third-year exam habits, then evolved with toggleable Auto Indent and Auto Bracket Pairing based on learner feedback.
- Zero Friction: Offline-first desktop workflow with no login, no internet, and no complex IDE setup.
- Instant Validation: Built-in automated tests with clear pass/fail status and mismatch feedback.
- Content That Teaches: Markdown-based question packs with hints, examples, and starter code.
- Visible Progress: Local progress tracking so you can see growth over time.
For the full walkthrough, see FEATURES.md.
- Head over to the Releases page.
- Download the installer for your OS.
- Install, launch, and start coding.
Bug Gym is an open-source project without paid code-signing certificates. Your OS may show warnings:
- macOS: Go to System Settings → Privacy & Security → allow Bug Gym to "Open Anyway"
- Windows: Click "More Info" → "Run Anyway"
If you downloaded from the official GitHub Releases page, it's safe.
- Java 21+ (Download OpenJDK)
- Maven 3.8+ (Download Maven)
git clone https://github.com/PhilixTheExplorer/bug-gym.git
cd bug-gym
mvn clean javafx:runmvn clean packageIf you use VS Code, both are supported:
- Java General profile
- Run and debug directly in VS Code
Recommended extensions:
- Extension Pack for Java
- Debugger for Java
Launch/debug main class:
dev.philixtheexplorer.buggym.Launcher
- FEATURES.md : full feature breakdown
- ARCHITECTURE.md : project structure and design
- CONTRIBUTING.md : contribution workflow and standards
- CHANGELOG.md : release history
Bug Gym began as a personal project, a gift for someone special to make learning Java feel less scary, more fun, and a little bit magical.
It was built to turn confusion into confidence, and to show that sometimes the best help is a tool made just for them.
If it helps others along the way, that's even better.
- Java 21 - Modern Java features
- JavaFX 21 - Cross-platform desktop UI
- RichTextFX - Code editor with syntax highlighting
- CommonMark - Markdown parsing for problem descriptions
- jpackage - Native installers for each platform
- Maven - Build automation
- GitHub Actions - Automated releases
Bug Gym follows Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features, backward compatible
- PATCH: Bug fixes
This project is licensed under the GNU General Public License v3.0.
You are free to use, modify, and distribute this software, but any modifications must also be open source under GPL v3.
See LICENSE for full details.
Contributions are welcome and should be small, focused, and well-tested. This project is primarily maintained as a learning and personal project.
- Fork the repository and create a feature branch
- Keep changes scoped to a single purpose
- Update or add tests when appropriate
- Open a pull request with a clear description of the change
See CONTRIBUTING.md for detailed guidelines.
- 🐛 Bug Reports: Open an issue
- 💡 Idea: Start a discussion
- ❓ Questions: Discussions Q&A
Built with:
- JavaFX - Application framework
- RichTextFX - Code editor component
- CommonMark Java - Markdown parsing
Inspired by the struggle of learning Java without the right tools.
Made with ❤️ for Java beginners everywhere
Especially for one person who inspired it all
