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-cliType 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