Du hast dir da ein recht komplexes Softwareprojekt ausgedacht, was sich definitiv nicht einmal so nebenbei umsetzen lässt und auch später sicherlich nicht einfach warten lässt. Vorgefertigte Schablonen (Schritt-für-Schritt-Anleitungen) gibt es für solche Anwendungen nicht.
Du solltest mit einer guten Planung beginnen. Dazu gehört in erster Linie, dass du die Anwendung als System sehr genau beschreibst.
Das fängt damit an, dass du dir überlegst, welche Nutzer(-gruppen/-typen) später mit der Anwendung interagieren werden. Man kann da jetzt schon Streamer und Zuschauer benennen. Aber sicherlich wird es ebenso Administratoren und Moderatoren brauchen, die den üblichen Tagesablauf der Plattform auf inhaltlicher und technischer Ebene überwachen sollen.
Abgeleitet für diese Nutzertypen gibt es verschiedene Anwendungsfälle, die einmal (Schritt-für-Schritt) spezifiziert werden müssten. Bei einem Streamer wären das Ein- und Ausloggen in seinen Account oder das Buchen eines Zeitraums separate Anwendungsfälle. Für ihn und die anderen Typen wirst du noch etliche Weitere finden.
So eine Analyse inkludiert des Weiteren allgemeinere Erwartungshaltungen und spezifischere Zielgruppenbeschreibungen (z.B. Was für Personen gehören in deine Zielgruppe? Für welche Endgeräte soll die Webseite ausgerichtet werden? Welcher Last soll die Webseite standhalten können?). Wichtig ist an der Stelle auch, dass du ebenso Anwendungsfälle berücksichtigst, die gesetzlich vorgeschrieben werden. Das betrifft den Datenschutz (DSVGO) und ab Ende Juni ebenso die WCAG (EAA).
Schlussendlich kannst du mit diesen gesammelten Informationen besser die notwendige Architektur konzipieren und herausstellen, welche Ressourcen und Nutzerschnittstellen (z.B. grafische Oberflächen) es braucht und wie sie gestaltet werden. Im Bestfall findest du für einzelne Teile bereits fertige Lösungen, die du nur noch in dein System einbetten musst (Bsp.: Bezahlungen könnten über PayPal ablaufen).
Um es einmal beispielhaft aufzuzeigen:
- Jeder Streamer wird einen Account benötigen. Das heißt, du brauchst Schnittstellen, über die er sich registrieren, anmelden und seine Daten verwalten kann. Die Daten wiederum müssen irgendwo persistent gespeichert werden.
- Für die Buchungen und Koordination der Zeitpläne wirst du einen Dienst benötigen.
- Es muss ein (Sub-)System geben, welches die Videodaten der Streamer erhält, verarbeitet (z.B. in verschiedene Auflösungen konvertiert) und dann weiterleitet (vgl. Ingest-Server).
- Du brauchst eine grafische Oberfläche für die Hauptseite (dein generiertes Bild ist nur ein Anfang, es sollte konkreter sein).
- Irgendwo muss generell die Webanwendung gehostet werden. Irgendein beliebiger Webspace tut es da nicht. Eine schnelle Datenverarbeitung ist wichtig und auf ein erhöhtes Nutzeraufkommen sollte die Anwendung zumindest bis zu einer bestimmten Hemmschwelle bspw. via vertikaler/horizontaler Skalierung reagieren können. Cloudservices wie z.B. AWS, Azure, Google Cloud oder Oracle Cloud würden sich eignen und ein CDN könnte genutzt werden, um einkommende Anfragen besser zu verteilen.
Das ist bis hier schon ein großes Arbeitspaket, welches nicht nur Sorgfalt/technische Genauigkeit erfordert, sondern einige Recherche und ebenso Erfahrung in der Softwareentwicklung.
Ich würde dir daher empfehlen:
- ein Team zu suchen (oder zusammenzustellen), welches dir von Anfang bis Ende bei alldem helfen kann. Ein (UX-)Designer könnte zum Beispiel die grafischen Oberflächen entwerfen, ein Softwarearchitekt könnte die Systemarchitektur definieren und bei der grundsätzlichen Planung helfen, ein Projektmanager wäre für die allgemeine Ressourcenplanung hilfreich, usw.. Diese Expertise anzuwerben, würde dich natürlich Geld kosten, doch die Wahrscheinlichkeit, dass das Projekt erfolgreich wird, deutlich erhöhen.
- die gefundenen Anforderungen zu priorisieren. Es wird einige Kernfeatures geben, auf die du den Fokus setzen musst und es gibt ganz sicher ebenso nice-to-have-Features (wie die Social Sharing-Optionen), die du vorerst beiseite lassen kannst.
Wenn du es trotz alledem unbedingt auf eigene Faust durchziehen möchtest, wärst du wohl gut damit beraten, dir Literatur zu Themen wie Softwareentwicklung, spezifisch Webentwicklung, Livestreaming und Videoverarbeitung zu suchen. Die hinterlegten Links sind nur Vorschläge für einen Einstieg.
Bezüglich der Umsetzungsphase benötigst du zudem noch sichere Kenntnisse in:
- Datenbankdesign/-verwaltung
- HTML, CSS und JavaScript für die grafischen Oberflächen
- mindestens einer Programmiersprache (und einem zugehörigem Webframework), die die Kernlogik der Webanwendung definiert. Man könnte hier beispielsweise C#/ASP.NET, Golang (mit Beego), Java (mit Spring) oder JavaScript (NextJS) in Erwägung ziehen. Bezüglich der Videoverarbeitung wäre es vermutlich besser, für eine schnellere Ausführungsgeschwindigkeit C/C++ (mit bspw. der FFmpeg-Bibliothek) zu nutzen.
Je nachdem, mit welchen weiteren Ressourcen/Technologien du konkret arbeitest, wird es des Weiteren notwendig sein, dass du dich mit den Manuals diverser Bibliotheken/Frameworks/SDKs/... einlesen musst. Praktisch an der Stelle wäre übrigens noch, sich mit einem Versionsverwaltungssystem (wie Git) vertraut zu machen und das komplette Projekt via DevOps, GitHub, Jira + Bitbucket o.ä. zu verwalten. So kannst du unter anderem deinen Projektstatus gut sichern, Tasks anlegen und generell das Projekt leicht dokumentieren.
Wenn für dich Webentwicklung / Programmierung übrigens noch gänzlich neu ist, würde ich dir davon abraten, sofort mit deinem geplanten Projekt zu beginnen. Sammel stattdessen erst einmal Erfahrung mit kleineren Vorhaben. Es wäre frustrierend, wenn du (unerfahren) mit einer schlechten Basisumsetzung beginnst und später merkst, dass du deshalb wieder von vorn beginnen musst.
Generell kannst du schon jetzt davon ausgehen, dass dieses Projekt einigen Arbeitsaufwand fordern wird. Die Wartung und Testphase sind dabei auch noch nicht eingerechnet.