An easy-to-use educational editor for learning the Haskell programming language
Path | Directory | Description |
---|---|---|
/ | Root | Project source |
/app | App | Electron/React files |
/app/build | App built | Electron/React compiled React |
/app/dist | App distribution | Compiled and packaged app |
/app/public | App public | Electron/React public files |
/app/src | App source | Electron/React source |
/server | Server | Server files |
/server/build | Server built | Compiled server source |
/server/src | Server source | TypeScript source code |
/web | Web | Website files |
While testing, any files created with the naming structure *_test.hs
in the repository will be ignored by git.
Download and install Node.js + npm
There are 2 package files in the root and app folders.
Install dependencies for both!
Before installing the app
dependencies an .npmrc
file with a FontAwesome Pro API key must be placed into the app folder, otherwise it will not be installed.
# install dependencies
npm i && cd app && npm i
# nodemon global install
npm i -g nodemon
# electron-cli global install
npm i -g electron-cli
Type this in the developer console to enable React dev tools.
require('electron-react-devtools').install()
** Must be in app/ folder! **
Env Var | Example | Description |
---|---|---|
WS_URI | WS_URI=ws://192.168.1.25:8080 | Overrides websocket url |
# cd app (if in root)
# terminal 1: electron dev mode
npm run dev
# cd app (if in root)
# terminal 2: react dev server
npm run react
** Must be in root folder! **
Env Var | Example | Description |
---|---|---|
PORT | PORT=8080 | Server port for http and websockets |
ROOM_POP_CAP | ROOM_POP_CAP=20 | Max connections per room |
# terminal 1: nodemon server
npm run dev
# terminal 2: typescript compiler
npm run dev-ts
# production server
npm start