Norsk Rikstoto
En total
re-implementasjon
«I dette prosjektet har vi rigget kunden for framtiden.»
Hallstein Brøtan
Seniorkonsulent i Novanet
Oppgaven
Novanet har gjennom flere år deltatt i ulike prosjekter hos Rikstoto. TOTO-prosjektet har vært et av de største, og består av en total re-implementasjon av rikstoto.no. De nye nettsidene erstatter rikstoto.no og mobil.rikstoto.no, og er tilpasset de to hovedbrukergruppene – kunnskapsspillere og lykkespillere. Løsningen må håndtere store mengder informasjon og liveoppdateringer, pengehåndtering, rapportering og være i samsvar med konsesjonskrav fra Lotteritilsynet.
Innsiktsfasen
Teamet besto av fire utviklere, en designer, en CSS-spesialist, to testere og en produkteier. I den innledende fasen var interaksjonsdesignere fra Northern Beat involvert for å gi kunden nye impulser og finne gode løsninger.
Løsningen
En ny klient ble laget fra bunnen av, basert på nyeste versjon av Angular med Redux (ngrx/store) på en MVC/WebAPI-plattform. SignalR er brukt for liveoppdatering. Eksisterende tjenester ble oppdatert og tilpasset. Det ble innført lesetabeller til de nye formålene, og utvidet testing. Testing har hatt høyt fokus, med javascript- og UI-tester for klienten, og integrasjonstester for tjenestene.
Utfordringen
I et så stort prosjekt er det mange utfordringer av forskjellig karakter. Brukerne av gamle rikstoto.no var godt vant med den gamle siden, og ikke nødvendigvis interessert i å bytte til en ny løsning, selv om denne objektivt sett er bedre. Med dette i tankene ble beta.rikstoto.no lansert tidlig i utviklingsprosessen, slik at brukerne ble inkludert. Ved hjelp av tilbakemeldingsskjema (HotJar) fikk vi mange innspill på hva som var bra og hva som burde gjøres annerledes. En strategi med dette var å tilby funksjonalitet som ikke fantes på hovedsiden, slik at man fikk en naturlig/frivillig overgang til den nye siden.
Det var også utfordrende å skulle erstatte en web-side og en mobil-app med én nettside, men samtidig ivareta behovene for brukere med forskjellig bruksmønster. Vi la flid i å utforme nettsiden for små skjermer, og de fleste design besto av visning for stor og liten skjerm. Vi lagde også separate UI-tester for små skjermer. På sikt vil det tilbys en iOS- og Android-app som wrapper nettsiden.
Teknisk sett var nok den største utfordringen å holde løsningen ryddig og effektiv når samme side inneholder så mange komponenter, liveoppdateringer og kompliserte visninger. Komplekse krav fort fører til kompleksitet i koden, spesielt når mange komponenter skal vises samtidig. Løsningen var å introdusere et Redux-pattern for tilstandsstyring (state management), kalt @ngrx/store, kombinert med RxJS. Dette fjernet avhengigheter mellom komponenter, og gjorde koden utrolig mye enklere å jobbe med.
Teknologi
Klient: Angular (Typescript + RxJS), ngrx/store (Redux), WebAPI, MVC, SignalR
Tester: Javascript (1200+), UI-tester (650+)
Tjenester: Meldingsbasert (CQRS-pattern), WCF, NServiceBus, MSMQ, Nhibernate (skriv), Dapper (les), SQL Server
Kunden
Norsk Rikstoto er en stiftelse som har konsesjon til å drive totalisatorvirksomhet innen hestesport.