Skip to content

freder/teacher.js

Repository files navigation

teacher.js

about

https://teacher.solar/

additional links

description

screenshot

the teacher.js web application has the following features:

  • matrix chat (via an embedded hydrogen client)
  • collaborative text editing (via an embedded etherpad lite instance)
  • webrtc audio conferencing (using janus + audiobridge plugin)
  • synchronization between the client with the instructor role and all other clients via websockets, so that students will always see what the teacher sees:
    • reveal.js presentations
      • connected clients are notified about slide changes, etc.
    • wikipedia pages
      • connected clients are notified about changes (page transitions, jumping to specific sections within the page, etc.)
  • recording of teaching sessions (to be replayed at a later time)
    • the links to any opened presentation or wikipedia page are automatically be posted to a matrix room
    • the audio conference is saved to a file
    • relevant events (caused by the presentation / wikipedia module, etc.) are time-stamped and logged to a file on the server

architecture overview

architecture diagram

conventions

  • this repo uses git-flow
    • stable / production branch: master
    • development / testing branch: develop

setup

install dependencies:

git clone --recursive <this-repo> teacher.js
cd teacher.js
npm install

cd src/hydrogen
npm install

config

rename src/.env-example to src/.env and edit according to your needs.

run

  • run server: DEBUG='T.S:*' npm run server
  • run webpack dev server (client): npm run dev
  • run hydrogen dev server: cd src/hydrogen ; npm run start
    • runs on port 3001 by default

then open http://localhost:8080.

build

production build:

npm run build:prod

building hydrogen:

cd src/hydrogen
npm run build # output will be in src/hydrogen/target

deploy

TODO