Praksis hos Svippin

Dag 33, Des 10, 2021

Geocoding og warnings

Dette er siste dagen i praksis. Idag gjenstod det bare småting på nettsiden, så vi ble ferdige med prosjektet. Vi begynte dagen med å gjøre ferdig implementeringen av Geocoding, som omgjorde adresser til koordinater, og lagret det i databasen. Dette er nå ferdig, og vi kan legge det bak oss. Resten av dagen gikk med på å fikse advarsler i konsollen på nettsiden. Dette gikk også greit, så nå er nettsiden ferdig. Vi er svært fornøyd med resultatet.

Arbeidstimer idag: 4
Arbeidstimer totalt: 218

Dag 32, Des 03, 2021

Innlogginsvalidering og sortering

Idag ble vi ferdige med innloggingsvalideringen. Den fungerer nøyaktig som den skal, så nettsiden er nå tryggere. Det tok en del tid å få den slik vi ønsket, så nesten hele dagen gikk med til dette. Mot slutten av dagen fikset vi småting som sortering av lister i dropdowns. Dette var relativt enkelt, som er grunnen til at vi ventet så lenge med det. Det fungerer fint nå.

Arbeidstimer idag: 8
Arbeidstimer totalt: 214

Dag 31, Des 02, 2021

Innlogginsvalidering

Idag fortsatte vi på innloggingsvalideringen. Nå fungerer den til en viss grad. Selve innloggingen fungerer nå, men vi må ordne koden slik at brukeren bare har tilgang til de sidene han skal. Noen sider er bare tilgjengelige for oss, mens noen skal være tilgjengelige for alle. Dette vil vi fikse imorgen.

Vi fikset også en dropdown som stoppet å fungere dersom man refreshet siden. Nå fungerer den slik den skal.

Arbeidstimer idag: 8
Arbeidstimer totalt: 206

Dag 30, Des 01, 2021

Geocoding

Idag begynte vi å implementere Google Maps Geocoding. Dette er et API som hjelper med å konvertere adresser til koodrinater. Når en bruker skriver inn en addresse, skal denne lagres som både adresse, og koordinater. Vi fikk implementert denne funksjonaliteten over hele nettsiden med unntak av en side. Denne vil vi fikse snart.

Når vi ble ferdige med API'et, begynte vi smått på innloggingsvalideringen. Vi fikk såvidt begynt idag, så vi vil fortsette senere.

Arbeidstimer idag: 8
Arbeidstimer totalt: 198

Dag 29, Nov 26, 2021

URL og live data

Dagen begynte selvsagt med å fullføre oppgaven vi begynte på i går. Dette tok litt tid ettersom vi måtte implementere det mange steder. Etter vi fikset det, gikk vi over til å implementere en funksjon som holdt styr på hvor mange objekter av forskjellige typer det finnes på et område. Dette var relativt enkelt å implementere. Vi brukte "increment(1)" på området hver gang det ble lagt til et nytt objekt i dette området, og "increment(-1)" når et objekt blir slettet.

Arbeidstimer idag: 8
Arbeidstimer totalt: 190

Dag 28, Nov 25, 2021

Dropdown i navbar og mer

Denne dagen gikk med på generelle fikser gjennom hele prosjektet. Vi implementerte alle manglende funksjonaliteter, og endret alt som vi tidligere bare hadde hardkodet. I tillegg fikk vi implementert en "keep alive" funksjon, som gjorde at man lagret data i cache, slik at en bruker trygt kan trykke "tilbake til forrige side" uten å miste data.

Deretter gjorde vi en helomvending i måten vi sender visse data mellom komponenter og views. Tidligere har vi sendt "selectedArea" som props mellom komponenter og views. Nå sender vi area.id som en del av URL'en istede. Nå har alle sider tilgang til det valgte området uten å måtte sende props overalt. Siden vi bruker Vue Router, kan vi bruke "$route.params.areaId" til å hente id'en til area, og deretter bruke denne id'en til å hente all dataen fra databasen. Vi rakk ikke å bli helt ferdig med dette idag, så vi fortsetter med det imorgen.

Arbeidstimer idag: 8
Arbeidstimer totalt: 182

Dag 27, Nov 24, 2021

Sletting av objekt

Idag brukte vi dagen på å endre måten vi håndterer sletting av objekter på nettsiden. Tidligere har vii gjort det slik at vi sletter objektene fullstendig fra databasen når en bruker trykker på slett knappen. Nå har vi lagt til et felt i databasen: is_active. Istedenfor å slette objektet fullstendig, setter vi is_active til false, slik at det ikke lengre viser på nettsiden. Da har vi fortsatt dataen i databasen, slik at vi kan hente det på et senere tidspunkt dersom vi trenger det.

I tillegg begynte vi å fikse på en dropdown i navigasjonsbaren. Denne dropdownen skal vise en liste med linker til sider brukeren har tilganger til. Med andre ord må vi validere om brukeren har tilgang til de diverse sidene, og liste bare de sidene brukeren har tilgang til.

Arbeidstimer idag: 8
Arbeidstimer totalt: 174

Dag 26, Nov 09, 2021

Genrelle fixes

Idag jobbet vi på mye forskjellig. Vi fikset input validering på opprettelse av forskjellige items, på forskjellige views. I tillegg har vi implementert en knapp for å slette events med popup slik at det ikke blir slettet med uhell. Dette har vi også gjort for kommuner. Vi brukte også litt tid på å finpusse live oppdateringen av endrede/opprettede data på de forskjellige views'ene.

Arbeidstimer idag: 8
Arbeidstimer totalt: 166

Dag 25, Nov 08, 2021

Rettigheter

Vi opprettet et view idag også. Dette var et relativt enkelt view, med litt funksjonalitet. Her skal man få opp en liste av brukere som har tilgang til å administrere nettsiden for en spesifikk kommune. På denne siden skal man også ha mulighet til å legge til nye administratorer, der man oppgir e-mailen til brukeren man vil gi rettighetene til. Vi la også til en knapp for å fjerne rettighetene til en bruker, med popup for å være sikker på at man vil fjerne rettighetene. Vi har også validering av e-mail. Dersom det ikke finnes en bruker med gitt e-mail, så får bruker en feilmelding. Samme dersom brukeren ikke skriver inn en e-mail/ulgyldig e-mail.

Arbeidstimer idag: 8
Arbeidstimer totalt: 158

Dag 24, Nov 05, 2021

Nytt view

Vi brukte dagen idag på å fikse småting på et par tidligere views, og er bortimot ferdige med desse. I tillegg opprettet vi et helt nytt view, der vi også la til nødvendige komponenter og items. Mye av tiden gikk med på å bruke HTML og CSS for å få siden til å se ut som vi ville. Deretter brukte vi resterende tid av dagen til å implementere databasetilkoblingen til dette viewet.

Arbeidstimer idag: 6
Arbeidstimer totalt: 150

Dag 23, Nov 04, 2021

Automatisk oppdatering av data

Idag har vi implementert automatisk oppdatering av forskjellige lister, på forskjellige views. Når brukeren lager ny item, eller endrer en eksisterende item, oppdateres det automatisk i listen av items. Det oppdateres både i databasen og på nettsiden samtidig. Brukeren trenger ikke lengre oppdatere nettsiden for å få den nye dataen til å vises.

Arbeidstimer idag: 6
Arbeidstimer totalt: 142

Dag 22, Oct 29, 2021

Oppdatering av data

Idag brukte vi tiden på å fikse diverse av funksjonene vi har laget tidligere. Vi har tidligere opprettet funksjoner for å legge til og redigere data på forskjellige views. Nå har vi fikset det slik at dersom noen legger til elementer, eller redigerer allerede eksisterende elementer så oppdateres det automatisk på nettsiden. Vi brukte Vuex Store til å gjøre dette. Da slipper vi å hente fra databasen hver gang noe blir oppdatert, vi henter det istede fra storen. Vi fikset også en validering på opprettelse av nye elementer. Det går ikke an å legge til tomme elementer lengre, da får man feilmelding.

Arbeidstimer idag: 6
Arbeidstimer totalt: 136

Dag 21, Oct 28, 2021

Database manipulasjon v2

Også idag brukte vi mye tid på å jobbe med henting av data. Det ble en treig dag ettersom vi brukte mesteparten av dagen på å jobbe med samme problemet som i går. Idag ble vi heldigvis ferdig med dette, og er klare for å jobbe videre med noe annet imorgen.

Arbeidstimer idag: 5.5
Arbeidstimer totalt: 130

Dag 20, Oct 27, 2021

Database manipulasjon

I dag møtte vi på et nytt problem. En funksjon vi har brukt en del for å hente data fra databasen ville ikke lengre fungere. Det viser seg at den funksjonen ikke lengre fungerer dersom vi henter mer enn 10 dokumenter fra databasen om gangen. Av denne grunn måtte vi gå tilbake i koden og fikse dette der vi har brukt den. Dette var tidkrevende, men vi kom et godt stykke.

Arbeidstimer idag: 4
Arbeidstimer totalt: 124.5

Dag 19, Oct 22, 2021

Repetisjon

Idag kunne vi gjenbruke en del kode. Vi begynner å få kontroll på manipulasjon av databasen, og oppretting av Views. Vi lagde et nytt view idag, og implementerte alle nødvendige funksjoner, samt skrev HTML/CSS slik at siden såg ut som den skulle. Vi lager fortsatt sidene ut fra designet som ble laget tidlig i prosjektet. Det var et par funksjoner som var litt vanskligere å implementere på denne siden, men vi fikk det til mot slutten av dagen.

Arbeidstimer idag: 7.5
Arbeidstimer totalt: 120.5

Dag 18, Oct 21, 2021

Skrive til databasen

Nå som vi har implementert metoder for å hente data fra databasen, er det passende å implementere metoder for å skrive til databasen. Det gjorde vi idag. Vi lagde metoder som gjorde det mulig å oppdatere, samt opprette dokument i databasen. Dette gjør at nettsiden plutslig får en del funksjonaliteter, og gjør at vi merker stor framgang på prosjektet. Når vi ble ferdige med dette, ordnet vi navigasjonen mellom diverse sider, og passet på at nødvendige props ble sendt mellom de slik at database funksjonalitetene fungerer optimalt.

Arbeidstimer idag: 7.5
Arbeidstimer totalt: 113

Dag 17, Oct 15, 2021

Database dag 3

Denne dagen ble brukt for å oppdatere de vi har gjort tidligere. Vi brukte database implementasjonene til å hente data, og fikse slik at det såg bra ut.

Arbeidstimer idag: 4
Arbeidstimer totalt: 105.5

Dag 16, Oct 14, 2021

Database dag 2

Å bytte fra statisk data, til data fra databasen viste seg å ta lengre tid enn forventet. Vi jobber fortsatt med å ordne slik at alle views henter dataen sin fra databasen. Hele dagen gikk med på dette. Vi lærte mye undervegs, blant annet nye fremgangsmåter for å hente data fra forskjellige collections i databasen.

Arbeidstimer idag: 6
Arbeidstimer totalt: 101.5

Dag 15, Oct 13, 2021

Database

Nå som vi er ferdige med å implementere Firebase, kan vi begynne å benytte oss av dummy data fra databasen. Vi brukte dagen på å sette opp database arkitekturen, og implementere den i diverse deler av prosjektet. Flere av komponentene vi lagde tidligere brukte hardkodet/statisk data, så vi fikk begynt å bytte dette ut med data fra databasen.

Arbeidstimer idag: 6
Arbeidstimer totalt: 95.5

Dag 14, Oct 08, 2021

Firebase & Vuex

Idag gjorde vi ferdig et par flere views. Vi implementerte ikke noe funksjonalitet, men lagde sidene med html og css. Etter dette implementerte vi Vuex og Firebase i prosjektet, noe vi aldri har gjort selv. Dette tok en stund, men vi fikk det til til slutt.

Arbeidstimer idag: 8
Arbeidstimer totalt: 89.5

Dag 13, Oct 07, 2021

HTML & CSS

Idag begynte vi på prosjektet. Planleggingsfasen er over, og vi kunne nå begynne å programmere. Som sagt tidligere, fikk vi ansvar for administrasjonsportalen, som vi fikk begynne med idag. Vi startet med å opprette et nytt prosjekt i Vue.js. Deretter implementerte vi Vue routers, slik at vi har muligheten til å navigere mellom views (sider) på nettsiden.

Når dette var gjort, lagde vi innloggingssiden. Dette gjorde vi veldig likt som på forrige prosjekt. Dette gikk relativt hurtig. Deretter koblet vi denne til et annet view, der vi skulle lage en liste med objekter, der brukeren skal ha muligheten til å endre, slette eller lage nytt objekt. Dette brukte vi resten av dagen på. Vi måtte opprette flere forskjellige komponenter for å gjøre siden bra.

Det er vanskelig å forklare godt hva og hvordan vi jobber med prosjektene uten å bryte taushetsplikten. Under besøket vil det være lettere når vi kan vise/demonstrere arbeidet vårt.

Arbeidstimer idag: 7.5
Arbeidstimer totalt: 81.5

Dag 12, Oct 01, 2021

Nytt prosjekt

Idag begynte vi på et nytt prosjekt. Vi brukte dagen på å planlegge den nye applikasjonen, samt administrasjonsportalen. Dette prosjektet vil være litt mer omfattende enn det forrige prosjektet. Vi har igjen fått ansvar for å lage administrasjonsportalen. Den lager vi med Vue.js, slik som tidligere. Vi begynte å planlegge alle sidene, og funksjonene som nettsiden trengte. Hele dagen gikk med på planlegging av alt sammen.

Arbeidstimer idag: 4.5
Arbeidstimer totalt: 74

Dag 11, Sept 30, 2021

Authenticator state persistence

Etter vi fikk implementert autentifiseringen, gjenstår det å implementere en state manager, som passer på at brukeren er innlogget. Igjen bruker vi firebase til å gjøre dette. Når en bruker logger seg inn, vil han forbli innlogget frem til brukeren manuelt logger seg ut. Dette var vanskeligere sagt enn gjort.

Vi fikk det til etter hvert. Når dette var gjort, jobbet vi med å gjøre at en uautorisert bruker ikke kan endre url-en slik at han kan bypasse innloggingssiden. Dette fikk vi til med litt hjelp av en ansatt hos Svippin. Når dette var gjort, la vi til feilmeldinger dersom innloggingen mislyktes, enten ved feil passord/brukernavn eller ved en bruker som ikke har tilgang til nettsiden (en ikke-administrator).

Arbeidstimer idag: 5
Arbeidstimer totalt: 69.5

Dag 10, Sept 29, 2021

Verifisering

Å gjøre nettsiden responsiv var fort gjort. Når vi gjorde det, tenkte vi egentlig at vi var ferdige for denne gang. Men vi endte opp med å implementere verifisering av innlogging istedet.

Vi bruker firebase sin Authenticator for å gjøre dette. Den tar inn email og passord, og sjekker opp mot databasen. Det tok resten av dagen å implementere dette på en god og fungerende måte.

Arbeidstimer idag: 7.5
Arbeidstimer totalt: 64,5

Dag 9, Sept 24, 2021

Siste finish

Det ble en litt kortere dag idag. Vi fikk gjort ferdig alt på nettsiden. Alt som gjenstår nå er å gå over og fikse på responsiviteten til nettsiden. Dette anslår vi vil ta et par timer, noe vi skal gjøre neste onsdag.

Så fort vi er ferdige med å gjøre siden responsiv, hopper vi over på et nytt prosjekt til en annen kunde. Det nye prosjektet vil være litt mer krevende, så vi vil lære enda mer der.

Arbeidstimer idag: 4
Arbeidstimer totalt: 57

Dag 8, Sept 23, 2021

Repetisjon

Vi har nå bikket 50 arbeidstimer hos Svippin, og vi begynner å få litt kontroll. Idag gjorde vi ikke noe som helst nytt, men brukte alt vi har lært tidligere for å forbedre nettsiden. Vi lagde et nytt view (side på nettsiden), og hentet data fra databasen. Hele dagen gikk med på å jobbe på denne siden, og vi kom godt igang.

Administrasjonsportalen er snart ferdiglaget, og vi er foreløbig fornøgd med resultatet og innsatsen vi har lagt inn. Det må fortsatt gjøres en del, men det nærmer seg. Når vi er ferdige med portalen, har Svippin flere prosjekter vi kan få være med å jobbe på.

Arbeidstimer idag: 7
Arbeidstimer totalt: 53

Dag 7, Sept 17, 2021

Skrive til databasen

Idag lærte vi hvordan vi skriver til databasen. Vi bruker firebase, så det var mye nytt å sette seg inn i. Vi fikk til å gjøre endringer på et objekt som vi hentet fra databasen, og oppdatere denne endringen. Dette gjorde at litt av det vi gjorde tidligere fikk mer funksjonalitet.

Senere på dagen gikk vi gjennom koden vår og fikk vekk alle error meldingene som kom i konsollen på nettleseren når man inspiserer. Nå er vi klar for neste veke, og nye arbeidsoppgaver.

Arbeidstimer idag: 6
Arbeidstimer totalt: 46

Dag 6, Sept 16, 2021

Liste av objekter fra database

Idag gjorde vi relativt stor fremgang på nettsiden. Vi opprettet en komponent for et element. Hvert element skal hentes fra databasen, og listes nedover under flere kategorier. Dette fikk vi til å fungere, og vi satt igjen med mestringsfølelse.

Dette gjorde at nettsiden såg mer komplett ut, og vi er fornøgd med fremgangen. Når dette var gjort, finpusset vi deler av tidligere arbeid.

Arbeidstimer idag: 6
Arbeidstimer totalt: 40

Dag 5, Sept 15, 2021

Prosjektarbeid

Idag gjorde vi ikke så mye nytt. Vi fortsatte med arbeidet på administrasjonsportalen. Store deler av dagen gikk med på å lære mer om props, og mestre bruken av dette. Å finne ut hvordan data sendes mellom komponentene er ikke alltid så enkelt, men vi får det til med prøving og feiling (og en god del veiledning).

Selve nettsiden ser grei ut, men den trenger mer funksjonalitet. Dette jobber vi fortsatt med. For å få dette til, må vi mestre sending av data mellom komponenter, og å manipulere/lese/skrive til og fra databasen.

Arbeidstimer idag: 7.5
Arbeidstimer totalt: 34

Dag 4, Sept 10, 2021

Props

Dagen var ganske lik tidligere arbeidsdager. Vi fortsatte med å jobbe på prosjektet, og fikk implementert litt funksjonaliteter.

Vi fikk skrive-rettigheter i dummy databasen, slik at vi kunne implementere flere objekter i prosjektet. Foreløbig bruker vi bare data som vi definerer selv, men senere vil vi bruke mer omfattende data. Vi jobber med å få på plass designet til nettsiden, og har smått begynt å integrere denne databasen.

Vue har mye nytt som vi må lære oss. Idag lærte vi om props. Props, også kalt properties, blir brukt for å sende data fra en parent komponent ned til child komponenter. Ettersom hele prosjektet består av flere komponenter, ender det opp som en datastruktur som kalles tre (tree). Bildet til høgre illustrerer et tre, der hver node er en komponent.

Arbeidstimer idag: 6
Arbeidstimer totalt: 26.5

Dag 3, Sept 09, 2021

Komponenter i Vue

Arbeidet med administrasjonsportalen fortsatte idag. Vi begynte dagen med å lage en navigasjonsbar i administrasjonspanelet. Senere koblet vi sammen linkene i navbaren med de andre sidene ved hjelp av Vue routers. Vi brukte en del tid på dette.

Når dette var gjort, gikk vi videre til å lage en søkeboks, som senere skal kobles til en database. Søkeboksen opprettet vi som en egen komponent. Når man jobber med Vue, deler man inn nettsiden i flere komponenter som i en helhet blir en nettside. Søkeboksen er en egen fil, med "scoped" css og html, slik at koden bare gjelder for denne komponenten. Dette gjør prosessen mer oversiktlig. Etter søkeboksen var ferdig brukte vi en databasen i firebase til å hente diverse objekter, slik at vi kan lage en liste av kategorier. Disse kategoriene listet vi i en dropdown meny. Denne listen er også en egen komponent.

Nettsiden begynner sakte men sikkert å ta form, og vi har allerede lært mye.

Arbeidstimer idag: 7.5
Arbeidstimer totalt: 20.5

Dag 2, Sept 03, 2021

Første arbeidsdag på kontoret

I dag ble vi endelig introdusert til resten av utviklerteamet. Jeg har fått et godt inntrykk av alle sammen, og hadde alt i alt en fin opplevelse hos Svippin. Jeg og den andre praktikanten ble tatt godt imot, og lærte mye allerede første dagen.

Vi fikk innføring i de forskjellige verktøyene vi skal bruke. Vi skal bruke Firebase til backend, og Vue.js til frontend. Våres arbeidsoppgaver omhandler for det meste frontend utvikling i Vue. Vi fikk begynne på prosjektet vårt allerede nå. Iløpet av praksisperioden skal vi lage en administasjonsportal for en applikasjon. Denne appen blir laget til en kunde, og jeg synes det er spennende å få bli med på utviklingsprosessen.

Jeg og den andre praktikanten er blitt lagt til i prosjektet på Github, og jobber sammen om oppgavene. Idag lagde vi innloggingssiden til portalen ved hjelp av HTML og CSS. Vi har fått et design på nettsiden slik at vi vet hvordan de vil den skal se ut. Når vi ble fornøgd med koden, implementerte vi den i Vue, slik at vi kan implementere validering o.l senere. Mye av dagen ble brukt til å lære om rammeverket Vue og alt som følger med. Vi lærte om Vue Router og Veux, og fikk implementert litt av dette i prosjektet allerede.

Arbeidstimer idag: 7
Arbeidstimer totalt: 13

Dag 1, Sept 02, 2021

Introduksjonsdag

Idag var min første dag i praksis. Ettersom kontaktpersonen min var på ferie frem til nå, ble de en litt sen start.

Idag fikk vi tilgang til noen prosjektfiler som vi skal jobbe mer med senere. Vi fikk tilgang til dette slik at vi skulle få et innblikk i hva vi skal jobbe med fremover. I tillegg skulle vi finne ut hva vi ville lære mer om. Etter diskusjon med en annen praktikant kom vi frem til at vi ville lære mer om Vue.js som er rammeverket vi vil bruke fremover. Dagen idag har stort sett gått ut på å sette seg inn i dette.

Det første steget var å installere og sette opp rammeverket. Etter dette var gjort, begynte vi å programmere i Visual Studio Code. Vi såg videoer på Youtube for å lære om rammeverket, og endte opp med å lage en TodoList (avbildet til høgre).

I morgen skal vi for første gang jobbe på kontoret til Svippin, og møte de andre utviklerene, noe jeg seg frem til.

Arbeidstimer idag: 6
Arbeidstimer totalt: 6