Praxly is a web-based IDE that empowers users to read, write, and run the pseudocode used in the CS Praxis Test. Praxly supports bidirectional synchronization between both block-based and text-based editors, allowing users to learn and visualize the code while also offering the efficiency of editing text. The text editor uses Ace, and the block editor uses Blockly.
Screenshot of Praxly running a recursive factorial function
Install dependencies:
$ npm install
To run locally:
$ npm run dev
Install dependencies:
$ pip install colorama selenium
To run locally:
$ cd test
$ ./run_all.sh
Note: This script connects to the local dev server.
To build (manually) for production:
PRAXLY_PATH=/relative/path/on/server npm run build
Note: Deployment to praxly.cs.jmu.edu is automated via GitHub actions.
You can embed Praxly on any website using an iframe:
<iframe width="100%" height="600"
src="https://praxly.cs.jmu.edu/embed.html?button=both#code=print%201%0Aprint%202%0Aprint%203">
</iframe>
The embed.html
page takes the following parameters:
Parameter | Options | Description |
---|---|---|
&editor= | text*, blocks, both | Which editor(s) to show |
&button= | run*, debug, both | Which button(s) to show |
&result= | output*, vars, both | Which result(s) to show |
#code= | url-encoded format | The initial source code |
* = default values for embedded mode
Screenshot of Praxly embedded in an iframe on Canvas LMS
Praxly's source code is available under CC BY-NC-SA.