TeleKlasa system provides scalable and simple solution for e-learning.
Browsable interface allows for listing groups and managing students in a given group.
Moderator might use following features:
- Login using username and password or by using quick login url like http://localhost:8080/l/NAU1
- Login & quick access given group with http://localhost:8080/l/NAU1?g=group-1
- Create or delete group Add or delete student within a group
- Reset student personal access link in case it's lost or disclosed
- Create and join new lesson. Starting new lesson will allocate new BBB room and allow all students assigned to a group to join active room using their personal links.
For sake of simplicity, in most cases student user will require only a single access url. In order to join active lesson student needs to use his personal link. Personal student links look as follows:
Admin users manage moderators access, their able to create/revoke/reset access for moderators.
Ideally, Student needs only one access url. When creating your class, consider following structure:
- Group represents entity within school / course, grouping students
- Same Entity / Group might have lessons with different teachers and always use the same access url
- It's best to think about Group as group of people, i.e. "grade 6A" not subject, i.e. "chemistry"
Each new lesson created by moderator allocates room on one of BBB swarm servers. App implements algorithm for selecting optimal server and balance load.
Students using their quick access link will land on a latest active room for their group. Access to a conference room is active only if a room (conference) was previously created by a Moderator.
When a Student uses his personal link and his group does not have active, he/she will be dropped into the limbo, waiting for room to open.
docker-compose up
docker-compose run --rm kl-backend python manage.py makemigrations <app_name like kl_conferences>
Open http://localhost:8000/admin
, log in with admin/admin credentials.
-
Backend server is located at localhost:8000. Backend is written in Django+DRF
-
Webpack dev server is available at localhost:8080. Web App is written in vue.js
You can use Makefile command reset_db
to populate sample data into database. Consult Makefile for other useful commands.