How to Contribute
ISO8583Studio is AGPL v3-licensed and built in the open. Bug fixes, new tools, simulator work and docs are all welcome.
Table of contents
01
Prerequisites (Kotlin Multiplatform)
| Tool | Version | Purpose |
|---|---|---|
| JDK | 11+ (17 LTS recommended) | Compiles Kotlin and runs Compose Desktop. |
| Git | any recent | Clone, branch, PR. |
| IntelliJ IDEA | Community is fine | Recommended IDE — opens the Gradle project directly with Kotlin/Compose support. |
| Gradle | bundled wrapper | No separate install — use ./gradlew. |
02
Development setup
clone, build, run
git clone https://github.com/hpkaushik121/Iso8583studio.gitcd Iso8583studio./gradlew build # compile everything + run tests./gradlew run # launch the desktop app./gradlew test # tests onlyProject layout
- composeApp/ — The Compose Desktop application — UI screens, simulator services, HSM/payShield engine (
src/desktopMain/kotlin). - iso-core-lib/ — Core ISO 8583 message library.
- cryptocalc/ — Cryptography calculators module.
- docs/ — This website.
03
Code style
Follow standard Kotlin conventions:
naming
class GatewayConfiguration // classes: PascalCasefun processTransaction() // functions: camelCaseconst val DEFAULT_TIMEOUT = 30 // constants: UPPER_SNAKE_CASEval connectionManager = ... // variables: camelCase04
Submitting changes
- Fork the repository on GitHub.
- Branch
git checkout -b feature/new-feature - Build & test — make your change and run the full build.
./gradlew build - Commit with a descriptive message.
git commit -m "Add REST API support" - Push & open a Pull Request — then open the PR against
main.git push origin feature/new-feature
05
Reporting issues
Open a GitHub issue and include:
- Environment — OS, Java version, app version.
- Steps to reproduce — exact clicks/config that trigger it.
- Expected vs actual behaviour — plus logs, configuration files or screenshots.
06
Where to start
Not sure where to start? Questions and ideas are welcome in Issues, or reach us via the contact page.
AGPL v3 · JDK 17+ · Gradle wrapper includedContact us