Help wanted
There’s quite a few things you can help with. Take a look at this document – maybe something will catch your eye.
User’s perspective
This project has no analytics or testing department. The only possibility
to get info on what the end-user wants (how he interacts with software, what he
expects software should do) is when the user tell these things directly to
developer. You can reach dev by opening an issue or via email to
iria.somobu@gmail.com.
Set up server and tell how good it works for you. Read the docs and guides in this repo and tell what pieces of info are missing or unclear.
Even simple report of “I’ve wanted to do [a thing], so clicked [here and there] expecting server/client to [behave in a such way], but instead I [see this thing / unable to find a thing]” would be a valuable hint on what users really expect from software.
Voice and streaming
Discord uses WebRTC (browsers) or encrypted-RTP-over-UDP (app), both with predefined set of codecs (opus, H264, VP8) for voice and video transmission. Media server responsible for call traffic handling is effectively a relay (that thing is known as SFU/SFM in specs and WebRTC-related docs).
I am sure nobody ever would read this (except me, Somobu), but if you ARE reading this and you are not Somobu – please let me know, I’ll translate the rest of this document in english.
/ Если есь опыт и желание покопать вебртц – милости просим, тут работы непочатый край /
Privacy, encryption, e2e
И я сейчас не про реализацию.
Вот у нас есть сервач. И вот нам не повезло и сервач ломанули или в серверную нагрянули маски-шоу и теперь мы без сервача. Как должен был быть написан сервер чтобы минимизировать проблемы пользователей при сливе данных? А если у нас 1М юзеров онлайн и по 10к юзеров в одном канале? А если хотим обслуживать юзеров с плохим интернетом?
Как бороться со scraping’ом? С челами, которые сидят по публичным каналам и пишут все до чего могут дотянуться? А если они сидят с разных учёток и из-под проксей? А как при этом не зацепить легитимных пользователей?
Что делать со статистическим анализом базы (и не только базы)? Как много инфы о юзере утечёт из хранимой метадаты?
И ещё куча вопросов на которые я пока что не знаю ответа.
Человек, который объяснил бы как делать правильно (даже не закодил это всё, а рассказал что и как) оказал бы огромную помощь.
Review, audit
Взгляд со стороны на организацию сервера.
Вопросы к качеству кода.
Аудит на предмет уязвимостей.
Tests
Интеграционных уже начинает нехватать. Сделать их не хватает рук. Офигенная задача на познакомиться с сервером, так-то.
Discord bridge
…
Media proxy
…
Client
…