holtwick / peer2school Goto Github PK
View Code? Open in Web Editor NEW👩🏻🏫 Simple P2P teaching platform starting from the 1st class
Home Page: https://peer.school
License: MIT License
👩🏻🏫 Simple P2P teaching platform starting from the 1st class
Home Page: https://peer.school
License: MIT License
Currently peer.school is implemented as a "full mesh network" i.e. each client is connected with each other. So even if only the teacher is streaming she has to send the same stream to as many peers as there are students online. The same for the student, if he is active.
There are multiple solutions to the issue:
So all solutions have trade-offs. Here some links about the topic:
[ ] Pupils can take a picture of their work and send it to the teacher.
[ ] The teacher can download the file.
Dependant on issue #13
Hi,
ich komme aus einer Gruppe in der Herausforderung 019 bei wirvsvirus.
Wir haben euch gefunden und gemerkt, dass unsere Zielvorstellungen sich sehr ähneln, deswegen die Frage wo ihr gerade eure interne Kommunikation durchführt und wie wir am besten mit euch in Kontakt treten können.
Grüße
Sebastian
Als Teilnehmer möchte ich mein eigenes Video sehen, allerdings nicht mein eigenes Audio hören.
Als Lehrer möchte ich zwischen zwei Unterrichtsmodi (Frontalunterricht, Gruppenarbeit) switchen können.
Die Implementierung des Gruppenarbeitsmodi findet in einem separaten Issue statt. (#34)
Derzeit wird die Liste mit den aktuellen Teilnehmernamen nicht mit neuen Teilnehmern synchronisiert. Dazu müsste wahrscheinlich nur in den "connect" ein hook geschrieben werden, der die state.peer einmal herumschickt.
Die Schüler werden zufällig in Zweiergruppen aufgeteilt. Jede Zweiergruppe hört und sieht den jeweiligen Partner und nur den jeweiligen Partner.
Der Wechsel zwischen den Modi wird in #33 implementiert.
Als Lehrkraft möchte ich, dass normalerweise nur ich auf dem Whiteboard schreiben kann.
Zusammenhang mit Issue #26
Als Schüler möchte ich alle für mich wichtigen Elemente übersichtlich dargestellt bekommen:
Probleme momentan sind:
Als Schüler kann an mit einem halbwegs aktuellem Android- und iOS-Smartphone an dem virtuellen Unterricht teilnehmen.
Akzeptanzkriterien
For those that do not get through firewalls we'll need a TURN server
Make sure the whiteboard fully displays on all devices. The idea is to decide to have a certain aspect ratio like 4:3 or 16:9 and than scale up or down to show most of the content on all devices.
Es sollte im Produktivsystem (peer.school) eine Weiterleitung von http:// auf https:// eingerichtet werden.
Probably also allow to snap to grid.
While developing the video chat solution in peer.school it turned out that multi-peer streaming is not practicable for a large number of participants due to bandwidth and performance (see #63). An SFU (Selective Forwarding Unit) was required that would receive participants video and audio streams and forward those the the participants, reducing the numbers of connections a client has to handle.
The current implementation uses Jitsi for this purpose: https://github.com/jitsi/lib-jitsi-meet
Other solutions might also be worth considering, like mediasoup:
If a student sends a signal to participate, the teacher should be able to activate him in order to have him communicating to all other students and the teacher.
Probably some limitation makes sense like:
So far there is only one way to connect to a classroom. We need two different roles, teacher and pupil. This issue does not contain implementing teacher functionality, but providing the infrastructure for two different GUIs with different functions available and different views of the classroom.
Bisher werden Identifier angezeigt, diese werden durch Namen ersetzt. Beim Beitreten werden Schüler nach einem Namen gefragt. Ein automatisch abgespieltes Audio "Wie heißt du?" hilft Nichtlesern. Dieser Name wird dann im Chat und beim Aufzeigen verwendet.
Dependant on issue #13 !
Participants of the role "teacher" are able to broadcast files (exercises) to all participants of the role "pupil".
Als Lehrerin oder Lehrer möchte ich einem Schüler oder einer Schülerin die Erlaubnis geben könne, für alle sichtbar das Whiteboard zu editieren. Als Schülerin oder Schüler möchte ich, dass die Toolleiste zum editieren des Whiteboardes dann für mich sichtbar wird und ich damit darauf schreiben kann.
Check if student is sits in front of the computer ;)
Aktuell gibt es nur den schlecht platzierten Aufzeigeknopf im Chat und eine interne Liste pointOuts
die speichert wer aktuell alles aufzeigt. Es müsste für die GUI noch gemacht werden:
Bei Rückfragen zur interner Implementierung gerne an @fehnkera und @T1bolus .
Provide the project and website in multiple languages:
This is due to a limitation in Jitsi
Private Chats (siehe #37 ) können von der Lehrerin / vom Lehrer auf einmal für alle Schüler/innen oder pro einzelnem Schüler/in aktiviert und deaktiviert werden. Private Videochats (siehe #36 ) können von der Lehrerin /vom Lehrer einzeln aktiviert werden.
Die jeweiligen Chats werden nicht unter diesem Issue, sondern unter #36 und #37 implementiert.
The latest idea is to keep the width of the whiteboard 100% on all devices but let it grow vertically. It should scroll new content into view automatically or otherwise signal that there is new content in the hidden area. See Apple Notes pencil support as an example.
Originally posted by @holtwick in #57 (comment)
Currently the WebRTC/Signaling-room is hard coded: https://github.com/holtwick/peer2school/blob/master/src/lib/webrtc.js#L21
We need a way to choose multiple rooms, one per class.
URL should also reflect on a low level if the view is for teachers or pupils
Abhängig von #29 (Namensvergabe).
Als Teilnehmerinnen und Teilnehmer (Lehrer/innen und Schüler/innen) können eine Liste mit den Namen aller anderen Teilnehmerinnen und Teilnehmer, die sich im Klassenzimmer befinden, sehen.
Bitte kommuniziert mit den Zuständigen für #19 und #18 (Melden und aufrufen).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.