Skip to content

An easy-to-use educational editor for learning the Haskell programming language

License

Notifications You must be signed in to change notification settings

RJuall/haskell-for-everyone

Repository files navigation

Haskell For Everyone

An easy-to-use educational editor for learning the Haskell programming language

Project Structure

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

Testing

While testing, any files created with the naming structure *_test.hs in the repository will be ignored by git.

Setup & Installation

Install Node.js (runtime + package manager)

Download and install Node.js + npm

Install dependencies

There are 2 package files in the root and app folders.

Install dependencies for both!

Font Awesome

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
React-Dev-Tools in Electron

Type this in the developer console to enable React dev tools.

require('electron-react-devtools').install()

Electron App

** Must be in app/ folder! **

App environment variables

Env Var Example Description
WS_URI WS_URI=ws://192.168.1.25:8080 Overrides websocket url

App development mode

# 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

Server

** Must be in root folder! **

Server environment variables

Env Var Example Description
PORT PORT=8080 Server port for http and websockets
ROOM_POP_CAP ROOM_POP_CAP=20 Max connections per room

Server development mode

# terminal 1: nodemon server
npm run dev 
# terminal 2: typescript compiler
npm run dev-ts

Server production mode

# production server
npm start

About

An easy-to-use educational editor for learning the Haskell programming language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •