Lightweight text editor designed to accelerate the ease of learning core IBM Mainframe languages like COBOL, PL/I, or z/Architecture Assembler by providing a dynamic hot reloading experience similar to Code School or Codecademy.
JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
flow-typed/npm
resources
test
.babelrc
.editorconfig
.eslintignore
.eslintrc
.flowconfig
.gitattributes
.gitignore
.tern-project
.travis.yml
LICENSE
README.md
appveyor.yml
package.json
server.js
setup.js
webpack.config.base.js
webpack.config.development.js
webpack.config.electron.js
webpack.config.eslint.js
webpack.config.production.js
webpack.config.test.js
yarn.lock

README.md

Keypunch

Code Climate David-DM Dependency Badge

Keypunch is a lightweight text editor designed to accelerate the ease of learning core IBM Mainframe languages like COBOL, PL/I, or z/Architecture Assembler by providing a dynamic hot reloading experience similar to Code School or Codecademy. Aspiring mainframe software engineers develop in an Ace 9 powered code editor, and by clicking a single easy button, Keypunch uses the `mainframe job` package to submit, retrieve, and render the output of their code alongside the code editor. By shortening the feedback loop, Keypunch hopes to accelerate the learning process of junior mainframe developers.

Because all client and Node.js logic is encapsulated in a single Electron app, Keypunch can run on corporate laptops behind the firewall. Because it uses mainframe-job to abstract away the details of interfacing with the mainframe's Job Entry Subsystem, Keypunch supports the long-tail of back-leveled z/OS systems. The goal is to help your developers learn to develop without a SysGen or other major impacts to your core business apps.

While this is a work in progress focused on delivering an initial MVP, this app offers a foundational platform that may be eventually enhanced to provide features such as:

  • lessons for PL/1, COBOL, REXX, FORTRAN, HLASM, etc. that run entirely on the client app by parsing the JES output.
  • enhancement to support z/VSE
  • Use of socket.io to provide remote pair-programming for two corporate employees over the intranet.
  • Gamification and Badges to encourage learning without compromising core business data.

Screenshot

TODO

Install

First, clone the repo via git:

git clone https://github.com/spmcbride1201/keypunch-electron.git your-project-name

And then install dependencies.

$ cd your-project-name && npm install

💡 In order to remove boilerplate sample code, simply run npm run cleanup. After this is run, the initial sample boilerplate code will be removed in order for a clean project for starting custom dev

Run

Run these two commands simultaneously in different console tabs.

$ npm run hot-server
$ npm run start-hot

or run two servers with one command

$ npm run dev

Packaging

To package apps for the local platform:

$ npm run package

To package apps for all platforms:

First, refer to Multi Platform Build for dependencies.

Then,

$ npm run package-all

To package apps with options:

$ npm run package -- --[option]

Further commands

To run the application without packaging run

$ npm run build
$ npm start

To run End-to-End Test

$ npm run build
$ npm run test-e2e

Build with love using

Useful Resources

License

MIT © Sean McBride