Table Football Colleagues Office
Office League Logo

Introduksjon

Office League er et prosjekt drevet av entusiaster for åpen kildekode. Det er også tilgjengelig som en gratis tjeneste driftet i Enonic Cloud på officeleague.rocks – åpent for alle som vil bli med på moroa. Appen brukes daglig av organisasjoner som Redhat, Salesforce, og til og med Enonic selv. De mest aktive ligaene har over 1000 spilte kamper i skrivende stund.

Utfordring

Med begrensede ressurser, lite tid og komplekse krav hadde teamet lite rom for feil og måtte bruke verktøy som ville få dem raskt og effektivt til målet.

Teamet hadde tidligere bygget en prototype, men det faktum at "Office League" ville være offentlig og åpen for alle, la til ytterligere kompleksitet. Her er noen av kravene til appen:

  • Sosial innlogging (Google + Facebook)
  • Støtte for å opprette og administrere ligaer
  • System for å invitere nye spillere til din liga
  • Live kampfeed – se andre kamper som er i gang
  • Poenganslag (basert på spillerstatistikk)
  • Full responsivitet
  • Støtte for offline-spill (spilling i kjellere og områder med dårlig nettverk)
  • Evnen til å skalere løsningen etter hvert som trafikken vokser
  • Støtte for redaksjonelt innhold
Office League Mockup.png

Løsning

Et kjerneelement i løsningen er opptak av spillene mens de spilles, så det må fungere godt på mobile enheter. Teamet hadde imidlertid lite erfaring med mobilapper sammenlignet med webteknologier. Men teamet hadde nylig oppdaget progressive webapplikasjoner (PWA). Nye webstandarder og nettleserkapasiteter gjør det mulig for utviklere å lage webbaserte applikasjoner som fungerer og føles som vanlige apper.

Progressive webapper består av en front-end og back-end. Etter å ha undersøkt tilgjengelige rammeverk, konkluderte teamet med å bruke Angular 2 for front-end – et populært Javascript-rammeverk laget av Google. For å kommunisere med serveren, ønsket teamet å utforske en ny teknologi kalt GraphQL, som skulle gi front-end-utvikleren større fleksibilitet i henting av data fra serveren. Til slutt var Enonic det perfekte valget for prosjektet:

  • Moderne plattform basert på åpen kildekode
  • Kommer med ferdige apper for sosial innlogging
  • Innebygd datalagring med kraftig søk
  • Kjører serverside-JavaScript (språket til PWA-er)
  • Innebygd headless CMS for redaksjonelt innhold
  • Passer utviklernes kompetanse

Innen få uker var det meste av back-end og API-er på plass, og ikke overraskende ble mesteparten av den gjenværende tiden brukt på å bygge, justere og style applikasjonens front-end.

Resultat

Bare dager etter lanseringen var Office League i daglig bruk internasjonalt. I skrivende stund er hundrevis av lag og ligaer blitt opprettet. Nye utviklere har sluttet seg til det åpne kildekodeprosjektet, og teamet var allerede i gang med å planlegge ny funksjonalitet og utvidelse til andre idretter.

– Det eneste problemet vi virkelig måtte bekymre oss for, var å sørge for at appen ville fungere fint på iOS, sier Glenn Ricaud, Office League-utvikler. Dette er kanskje overraskende, men iOS og Safari hang lenge etter sine rivaler hos Google. Men ettersom Apple nå har begynt å legge til PWA-støtte i Safari, betyr dette at iOS-brukere snart også vil kunne nyte de mer avanserte funksjonene i Office League. Eksempler er installasjon, fullskjermmodus og offline-støtte.

Office League-teamet inviterer alle med et foosball-bord i nærheten til å registrere seg og opprette sin liga på officeleague.rocks.

Hvis du ikke har et bord ennå, er det nå en god grunn til å skaffe seg et!

Office League: Table Football Goes Digital

Teknisk oversikt

Prosjektet benyttet følgende teknologier:

Dette prosjektet har vist oss hva moderne teknologi er i stand til. Progressive webapper er et paradigmeskifte for både mobil og nett. Som en allsidig platform håndterer Enonic alle våre back-end-krav uten å måtte navigere 5–6 ulike systemer.

Thomas Sigdestad
Office League Manager
Enonic

482228