TUMs lecture streaming service, in beta since summer semester 2021. Currently serving 12 courses with up to 1500 active students.
Features include:
- Automatic lecture scheduling and access management coupled with CAMPUSOnline
- Livestreaming from lecture halls
- Support for Extron SMPs and automatic backup recordings on them.
- Support for preset management on ip cameras
- Automatic recordings and video on demand with granular access control.
- Self-streaming
- Stream ingest from Home using OBS or similar software.
- Live chat
- Statistics (live and VoD view count)
- Self-service dashboard for lecturers
- schedule streams, manage access...
Developing on this locally is a pain (because there are a few secrets involved). There is a dockerfile/docker-compose.yml. I don't guarantee that it works because we can't currently use it in production. To get this running locally follow these steps:
In /etc/hosts
add this:
127.0.0.1 db
- get mariadb from your favourite package manager or docker (I recommend this option)
docker run --name mariadb -e MYSQL_ROOT_PASSWORD=example -p 3306:3306 -d mariadb:latest
- create the database
tumlive
- Install go1.17
- Preferably use Jetbrains GoLand and open this project
- Edit Configuration > Environment
- Add environment variables from
variables-backend.example.env
.
- Add environment variables from
- Start the app
- Head over to localhost:8081
- Happy coding! ✨
- Prerequisites: Make sure you have staticcheck and pre-commit installed.
- Run
pre-commit install
. It will install the pre-commit hook scripts for this repository.
Now the hook scripts will be triggered for every new commit, which should improve overall code quality.
You can also run the pre-commit hooks manually for all files by executing pre-commit run --all-files
.
The following scripts are provided:
npm run lint
: Runseslint
andprettier
on the code to find stylistic issues.npm run lint-fix
: Same as above but also fixes the found issues.
If you use GoLand, you can use follow this guide to integrate
prettier. There is also a guide for integrating eslint
. For both configs are provided that should be automatically detected. If you set everything up correctly,
prettier
and eslint
should run everytime you save. Additionally, GoLands formatter will now respect the prettier
style rules.