← Svi projekti
PersicePotrošačka rješenja2014. — 2016.

Društvena mreža za spajanje s ljudima na temelju zajedničkih interesa

Ljudi se pronalaze po tome što ih zanima: zajednički interesi predlažu spajanja, a poruke i obavijesti stižu istog trena — jednako na mobitelu i na računalu.

2
Web aplikacije — mobilna i desktop — iz jedne baze koda
3
Društvene mreže za prijavu jednim klikom: Facebook, Twitter, LinkedIn
2 god.
Razvojni partner
Riješeni problemiChat i obavijesti koje stižu istog trenaDvije aplikacije koje mali tim može održavatiOnboarding preko društvenih mreža
Tehnička izvedbaJedna baza koda sa statičkim tipovima, dvije aplikacijeWebsocketi s pub/sub slojemJedna autentikacija na tokenima za REST i websockete

Izazov

Persice je povezivao ljude međusobno i s događajima oko zajedničkih interesa, a u takvom rješenju poruka koja zakasni znači razgovor koji se nikad ne dogodi. Chat, spajanja i notifikacije morali su stizati istog trena, na mobitelu i na računalu, iz baze koda dovoljno male da je startup tim može održavati.

Naš pristup

Krenuli smo od trenutka koji je najvažniji: netko pošalje poruku i druga je strana vidi odmah. Chat, spajanja i obavijesti putuju preko websocketa s pub/sub slojem ispod, a jedna autentikacija na tokenima pokriva i websocket vezu i REST API. Da bi dvije aplikacije bile održive za mali tim, mobilnu i desktop aplikaciju gradili smo iz jedne baze koda sa statičkim tipovima — servisi, modeli i storeovi stanja napisani su jednom — a brzima ih je držalo asinkrono učitavanje modula i build s tree-shakingom. Prijava preko Facebooka, Twittera i LinkedIna svela je registraciju na jedan klik, a kontinuirani deploy, pokriven unit i end-to-end testovima, svaku je promjenu isti dan stavljao pred korisnike.

Rezultati

Startup je dobio jedno rješenje u dvije aplikacije u kojima poruke, spajanja i obavijesti stižu istog trena — isto iskustvo na mobitelu i na računalu, a mali ih je tim držao u pokretu obje odjednom kroz dvije godine suradnje.

Što smo napravili

  • Dvije single-page aplikacije — mobilnu i desktop — gradili smo iz jedne baze koda sa statičkim tipovima, pa su servisi, modeli i storeovi stanja napisani jednom i koriste se u objema
  • Chat, spajanje i notifikacije uživo isporučili smo preko websocketa, s pub/sub slojem u pozadini
  • REST i websockete pokrili smo jednim autentikacijskim slojem na tokenima
  • Povezali smo prijavu preko Facebooka, Twittera i LinkedIna, pa registracija traje jedan klik
  • Obje aplikacije držali smo brzima asinkronim učitavanjem modula i produkcijskim buildom s tree-shakingom
  • Postavili smo kontinuirani deploy na aplikacijske servere iza reverse proxyja, sa statičkim datotekama u objektnoj pohrani
  • Bazu koda pokrili smo unit i end-to-end testovima, pa je svaki deploy išao van bez ručne provjere