← Svi projekti
Blacc Spot MediaPotrošačka rješenja2016. — 2017.

Marketplace stručnjaka s virtualnim učionicama za dijeljenje znanja

Marketplace stručnjaka koji svoje znanje dijele u virtualnim učionicama: stručnjak objavi svoju stranicu, oko nje se okupi publika, a predavanje se održava u sobi u kojoj video, datoteke, bilješke i poveznice stoje jedno uz drugo — uz grupni videopoziv, chat i voditelja koji odlučuje tko govori.

70+
REST ruta za stranice, događaje, poruke i sobe uživo
5
Vrste sadržaja koje voditelj slaže u sobi: video, audio, slika, bilješka, poveznica
3
Načina da se održi događaj: interaktivna soba, prijenos uživo, predavanje
Riješeni problemiSoba uživo u kojoj se zajedno radi, a ne samo gledaGrupni video u pregledniku, bez ijedne instalacijeJedno mjesto za objavu, zakazivanje i okupljanje publike
Tehnička izvedbaSPA sa statičkim tipovima — komponente, servisi, modeli, storeovi stanjaREST JSON API s validacijom na ulazu i dokumentacijom koja se iz njega generiraJedan relacijski model koji povezuje stranice, događaje, pretplatnike, recenzije i porukeGrupni glas i video preko medijskog serveraSoba uživo kao spremljeni raspored, koji se učita i za sljedeću radionicuObavijesti preko socketa, izvan glavne baze

Izazov

Blacc Spot Media razvijao je Wabi, mjesto na kojem oni koji nešto znaju to mogu podučavati uživo. Stručnjak objavi svoju stranicu, oko nje se okupi publika, a podučavanje se odvija u sobi u pregledniku. Teški dio bila je upravo ta soba. Grupni video u pregledniku 2017. je još bio muka, a radionica nije predavač pred kamerom: voditelj i svi polaznici morali su biti zajedno u istoj sobi, s materijalima na zidu, datotekama koje stižu, chatom koji teče i nekim tko odlučuje tko govori. Ništa nije smjelo tražiti instalaciju, a sve je skupa moralo djelovati kao jedno rješenje, a ne kao imenik na koji je nakalemljen videopoziv.

Naš pristup

Prvo smo izgradili sobu, a onda oko nje ostatak rješenja. Radionica je radna ploča na koju voditelj slaže video, audio, slike, bilješke i poveznice; raspored se sprema, pa sljedeća kreće od prošle, a ne od praznog zida. Grupni glas i video idu preko medijskog servera, pa jedan sudionik više ne troši propusnost svima ostalima, a stanje sobe stoji u storeu same aplikacije, pa preživi otvaranje bočne trake i prelazak među karticama. Zatim kontrole koje traži predavanje uživo: tko smije uključiti kameru ili mikrofon, koliko ranije se ulazi, chat u istoj sobi i datoteke koje se šalju u nju uz prikaz napretka. Oko sobe stoje dva alata u kojima stručnjak provodi vrijeme — jedan za stranicu koju objavljuje, drugi za događaje koje zakazuje — i katalog stranica, kategorija, pretraživanja, praćenja i recenzija za one koji ga traže. Događaj može ići i kao prijenos prema publici, snimljen na serveru i dostupan na zahtjev. Ispod svega jedan relacijski model i REST JSON API u kojem se svaki zahtjev validira, a svaki resurs sam sebe dokumentira, uz kontinuirani deploy na upravljane cloud instance.

Rezultati

Stručnjak dobiva vlastitu stranicu, publiku koja je prati i sobu koju stvarno vodi: svi u njoj na videu i zvuku, materijali na zidu, chat i datoteke unutar sobe i voditelj koji odlučuje tko govori — u pregledniku, bez ijedne instalacije. Ono što složi ostaje spremljeno za sljedeći put, događaj može ići i kao snimljeni prijenos za one koji su ga propustili, a katalog ispod svega pretražuje se i ocjenjuje. Isti nas je klijent zvao i za telemedicinsko rješenje.

Što smo napravili

  • Izgradili smo katalog: stranice stručnjaka, kategorije, pretraživanje i preporuke, praćenja, pretplatnike i recenzije
  • Izgradili smo sobu uživo — radnu ploču na koju voditelj slaže video, audio, slike, bilješke i poveznice, sprema raspored i ponovno ga učita sljedeći put
  • Napravili smo grupni videopoziv u pregledniku: ulazak i izlazak iz sobe, popis sudionika, tko govori i mjerač trajanja
  • Voditelju smo dali kontrolu nad onim što se u sobi događa — tko smije uključiti kameru ili mikrofon, tko vidi kontrole i koliko ranije sudionici mogu ući
  • Napravili smo alate za izradu stranice i događaja: objavu stranice, zakazivanje termina, vidljivost i ovlasti u sobi
  • Dodali smo prijenos uživo prema publici, sa snimanjem na serveru, pa se događaj poslije može pogledati na zahtjev
  • Napisali smo REST JSON API — više od 70 ruta za stranice, događaje, poruke i sobe uživo — s validacijom na ulazu i dokumentacijom koja se iz njega generira
  • Modelirali smo relacijsku bazu ispod svega: stranice, događaji, pretplatnici, recenzije i poruke
  • Napravili smo internu poštu i chat uživo, obavijesti preko socketa i korisničke mailove za registraciju i potvrdu računa
  • Wabi smo držali u cloudu: mediji u objektnoj pohrani, kontinuirani deploy na upravljane instance