Gruppe prosjekt del 3. INFO134 Klientprogrammering Vår 2017 Kandidatnummer: 304, 298

Like dokumenter
Dette er en demonstrasjonsside som vi skal bruke for å se litt nærmere på HTTP protokollen. Eksemplet vil også illustrere et par ting i PHP.

NCE TOURISM FJORD NORWAY. FJORDNETT INTERNETTFORUM 2012 Bergen, 12./13. juni 2012

(X)HTML, CSS og JavaScript HTML. Det første dokumentet Grunnleggende programmering i Java Monica Strand 26.

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Oblig 5 Webutvikling. Av Thomas Gitlevaag

file:///c:/users/michaelp/sites/dkdm/dw6/dreamweaver6.html

lagring med HTML5 Offline lagring Offline Informasjonsteknologi 2 Gløer Olav Langslet Sandvika VGS

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

- reklamebannere mobil og tablet

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

En beskrivelse av API for innhenting av informasjon fra registeret for sentralt godkjente foretak Direktoratet for byggkvalitet

Dobbelklikk på program-ikonet!

Alle publiserte nyheter arkiveres i kategorier som du selv oppretter, Det gir deg en ryddig oversikt i arkivet senere.

Oblig 4 Undervisningshefte i grunnleggende JavaScript programmering

SUKKERGRIS. Anita og Silje DAT100

Oblig 1. Oppgave 1. Gå gjennom nettsiden arngren.net og list opp alle problemene du ser. Både i funksjonalitet/bruk og i koden bak.

Alt er objekter. Læreplansmål. Gløer Olav Langslet Sandvika VGS

Innledende Analyse Del 1: Prosjektbeskrivelse (versjon 2)

I Primo Back Office, finn Resource Recommender under Advanced Configuration eller i FE & Delivery-menyen.

praktiske eksempler DOM Document Object Model DOM og Høst 2013 Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

Oblig 3 Webutvikling. Oppgave 1

Produktinfo WebService. integrasjonsbeskrivelse

Test Beskrivelse Resultat Innhenting CBIS Programmet mottar data fra CBIS OK, men kun. Innhenting Tellus Programmet mottar data fra Tellus OK

Veiledning Claw 2 CMS Innhold

Hvordan lage en hjemmeside

Introduksjon til. For studenter ved NTNU

OBLIG 1 - WEBUTVIKLING

Innføring i bruk av CGI4VB

Kravspesifikasjon Gruppe nr ABTF

Erlend Oftedal. Risiko og sikkerhet i IKT-systemer, Tekna

Oblig 1 Webutvikling av Jon-Håkon Rabben

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm

Eksamen i Internetteknologi Fagkode: IVA1379

I denne oppgaven skal du lære hvordan du kan flytte rundt på elementer og gjemme elementene bak andre elementer ved hjelp av CSS.

Steg 1: Vi starter fra toppen

6105 Windows Server og datanett

6105 Windows Server og datanett

Intro til WWW, HTML5 og CSS

6105 Windows Server og datanett

S y s t e m d o k u m e n t a s j o n

Oppsummering - Kurset (10/ )

Administrering av SafariSøk

GoOnline Site Search

Veiviser for hvilke innstillinger som må gjøres før innsending dirkete til Altinn fra HogiaLønn og for å hente direkte fra Altinn for ett firma

Veiviser for hvilke innstillinger som må gjøres før innsending direkte til Altinn fra HogiaLønn og for å hente direkte fra Altinn for regnskapskontor

Bachelorprosjekt i informasjonsteknologi, vår 2017

Hvordan setteopp en wordpress site med wampserver. Lokal site på din pc.

CSS: Style nettsider. Introduksjon. Skrevet av: Arve Seljebu

Javascript. Mer om layout

QuickGuide Oppdateres fortløpende ved nye funksjoner

Innføring i bruk av CGI4VB

WEBUTVIKLING OBLIG 4. Installasjon

Side 1. Sniggabo CMS brukermanual rev. 2

JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Rammer. Mer om Javascript

6105 Windows Server og datanett

5XQH.MHOYLN )URQW3DJHRJGDWDEDVHU

CASCADING STYLESHEETS (CSS)

HTML-del. 1. <!-- ikke slett min kode, vær så snill --> er a) en HTML stil-tag b) en CSS stil-tag c) en HTML kommentar-tag d) en CSS kommentar-tag

3 Filstruktur. Slik ser filstrukturen til applikasjonen ut når den er lagt ut på server eller når den er deployet.

UNIVERSITETET I OSLO

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

Kandidat nr. 1, 2 og 3

Oppgave 1. Webutvikling. Oblig 5. Sette opp WAMP og Wordpress. Først og fremst må man laste ned WAMP.

Manual for innlegging av standard sideinnhold og nyheter via «backend»

Oppsummering - Til nå... (1/ )

IN2000. Gjennomgang av tekniske oppgaver på prøveeksamen. Erlend Stenlund og Steffen Almås + innspill fra Gaute Berge

Brukermanual for Quizbuilder

Brukerveiledning for programmet HHR Animalia

Høgskoleni østfold EKSAMEN. Emne: Innføring i programmering

Installasjon InfoMediaPlayer:

Generell brukerveiledning for Elevportalen

System Dokumentasjon. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk


Tilpassning av Wordpress - Enterprise Theme

Oblig 3 Webutvikling

6105 Windows Server og datanett

HTML: Publiser nettsiden din. Publiser nettsiden din på Internett. Github. Brukernavn.github.io

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

UNIVERSITETET I OSLO

Introduksjon til. For studenter ved NTNU

Brukerveiledning

Oppbygging av innhold på responsive nettsider.

Velkommen til Creo Portal Kom i gang! Hvordan logge meg på? Oversikt over administrasjonssidene Sideoppsett...

Innledende Analyse Del 1.2

Avansert tekstmodul Eksempel Administrasjon Bilde Eksempel på en bildemodul Eksempel på en bildemodul lagt til uten

Oppgavesamling til Webutvikling < >

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Arnstein Andreassen. Windows media series? Familie av digital media software

Installasjonsveiledning

PXT: Hermegåsa. Introduksjon. Skrevet av: Felix Bjerke og Tjerand Silde

Hurtigstart guide. Searchdaimon ES (Enterprise Server)

PXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon

Veiledning hjemmeside Stjørdal Friidrettsklubb

Siteimprove analytics Tekniske spesifikasjoner

Transkript:

Gruppe prosjekt del 3 INFO134 Klientprogrammering Vår 2017 Kandidatnummer: 304, 298

Del 1 Forholdet mellom HTML, JavaScript og MongoDB HTML, er et markeringsspråk for hypertekst. HTML benyttes for å strukturere informasjon og vektlegger det semantiske i et dokument. Javascript et programmeringsspråk som ofte er brukt for å legge til et interaktivitet og dynamikk på nettstedet. Javascript kjører både på klientmaskinen hos en bruker men kan også kjøres fra en server eller begge samtidig. Ved bruk av Javascript kan en lage, hente ut og manipulere elementer i HTML. Javascript benyttes for å koble til MongoDB serveren og hente ut, endre og legge til informasjon. JSON kan benyttes som en struktur i MongoDB, istedenfor å hente ut eller iterere igjennom databasen hver gang kan man aksessere direkte til objektet man er ute etter. Objektsamlingen blir lagret som en collection og separert hver for seg som ulike documents i kolleksjonen. REST API (REpresentational State Transfer Application Interface) er en måte å distribuere hypermedia systemer og gi interoperabilitet mellom datasystemer på internett. Det er altså et applikasjonsprogramgrensesnitt som bruker HTTP forespørsler for å GET, PUT, POST og DELETE data. Hvordan koden finner film id en bruker har lånt I index.html kjøres det en onload funksjon som ber javascript om å utføre setup_frontpage() metoden i det siden lastes. Denne metoden kjører først en XMLHttpRequest til MongoDB databasen for å hente ut ( GET ) data fra en gitt brukerprofil som befinner seg i profiles kolleksjonen. Den filtrerer på brukernavn og legger til hvilken bruker det er snakk om i URL en, som er en lokal variabel (current_user = bruker1 ) i dette tilfellet. Javascript spesifiserer at datane skal hentes ut i JSON format ved xhr.responsetype = "json";. Dataene blir så lagret i en array profile som blir jobbet med videre. Index.html har en ul (unsorted list) tag med id mine_lån. Denne listen blir hentet og addressert til en loans_list variabel. Videre vil det sjekkes om det finnes en loans_list og en for løkke kjører gjennom alle movie_id_index som finnes i profile.loans arrayet til bruker1. For hver eneste film id som finnes i bruker1 s lån blir det generert HTML liste elementer og textnoder med ID en til disse filmene. Hvordan informasjon om en gitt film blir hentet I show_movie.js kjøres det en window.onload funksjon som betyr at koden utføres i det siden show_movie.html lastes i browseren. Først blir det sjekket etter om det finnes en ID i det hele tatt og hvis det gjør det, kjøres en GET funksjon i collection objects med ID en til filmen fra query_params.id. Data formatet blir returnert som JSON og lagret i en array movie_object som det jobbes videre med.

Show_movie.html har en table med id movie_stat_table som består av en table row med to kolonner Key og Value. Javascript adresserer movie_stat_table til en variabel stats_table og en for løkke itererer igjennom alle keys i movie_object. Key blir plassert i en left variabel og tilhørende values blir plassert i en right variabel. Til slutt blir en funksjon add_row() kalt og denne metoden genererer elementer og data til HTML tabellen movie_stat_table. Enkelt beskrevet blir HashMap dataene fra databasen hentet av javascript i JSON format, lagret i en array for så at javascript genererer HTML elementer og fyller disse med dataene som er hentet. HTML som er blitt generert blir lest av en nettleser og presenterer det visuelle og semantiske resultatet. Del 2 Vi ville ikke endret så mye på HTML da vi føler den er ryddig og semantisk nok til at vi kan hente og opprette nye HTML elementer med JavaScript uten problemer. Det som er rotete og uvoersiktelig i koden vår er koblingen i <head> mot script filene, det burde vært gjort enklere og visse <script> koblinger er overflødige. I JavaScript ville vi kjørt query_params.js, script.js, search_results og show_movie på klient-maskin og hentet ut data fra wildboy hvor det fantes en collection med filmer representert som documents og det samme for reviews.js. Genres.js, object.js, reviews.js ville derfor ikke vært med i neste programmeringsfase. Tidligere har vi jobbet mot en lokal JSON fil, men dette er tungvindt da den itererer gjennom alle filmer for å finne treff. Vi vil derfor koble oss opp mot wildboy serveren ved hjelp av javascript, REST API og HTTP requests. Da kan vi gå direkte til filmobjektet uten å hente ut alle. Vi ville gjort oppkobling på onload og hentet ut datane å lagret de i array variabler. Deretter ville vi brukt de metodene vi har fra før til å iterere over disse variablene og sortere dataene. Til slutt brukt JavaScript til å finne og generere nye HTML elementer med dataene vi har lagret og sortert.

Del 3 index.html Dette er hovedsiden/index ( home ) som brukeren får ved første øyekast. Denne siden innholder en liste over nye filmer som har kommet ut, sist leid av den fiktive brukeren og anbefalinger. Klikker man på en film blir man videreført til show_movie.html. Filmene blir hentet fra object.js som filtreres via query_params.js. Oppe i navigasjonsfeltet er det linker for å navigere rundt på nettsiden. Via home kommer man tilbake til index, log ut er en fiktiv utloggingsmulighet for brukeren, my movies innholder en liste over filmer som brukeren låner, advance search gir muligheter for å søke etter skuespeiller, sjanger, regissør m.m. Trykker man på brukerikonet så blir man ført til my_movies.html, som er en liste over brukerens lånte filmer og en liste over ønskede lån. Det er viktig å poingtere at navigasjonen er lik hos alle html filene. Man kan søke etter tittelen på en film, da blir man videreført til search_restults.html. Her får man et eller flere valg av film cover, avhengig av søket. search_results.html Man kommer til search_results ved å klikke på en film i index.html, eller ved å klikke på en film etter å ha søkt. På siden kan brukeren får man en del informasjon om filmen, som tittel, cover, beskrivelse av filmen, informasjon om regissør, år, skuespillere, språk, tid og land. Det er muligheter for å kommentere og gi vurdering av film, men disse egenskapene er ikke koblet opp mot en database så informasjonen blir ikke lagret, men er til for å videreutvikling. Search_results.html bruker query_params.js, search_results.js, objects.js og, script.js og genres.js. advanced_search.html Her kan man gjøre et mer avansert søk på filmer hvis man ønsker å spesifisere søket litt mer. Her kan man gjøre søket på tittel, skuespiller, regissør, sjanger og land. Man blir videreført til search_results.html. show_movie.html I show_movie.html er det forskjellige elementer med id som show_movie.js filen skal hente informasjonen, og plassere for eksempel tittelen fra object.js, som er lagt inn som en otitle i filen. Fordi object.js er en query fil som innhold en ikke hierakisk databse, så ordner query_params.js slik at dataene blir leselige komponenter når koden kjøres og det blir mulig å

hente ut de nødvendige dataene. Brukeren blir presentert med et cover og en Add to list knapp som gjør det mulig for brukeren å legge filmer i my_movies.html hvis dette er en film brukeren ønsker å se i senere etterkant. Brukeren informasjon om filmen, regissøren(e), år, skuespillerne, orginal tittel, spilletid og land. Man får også mulighet til å kommentere filmen og gi en rating fra 1 til 5 stjerner. my_movies.html Her får man en oversikt over filmer som brukeren ønsker å leie og filmer som allerede blir leid. Script-mappe show_movie.js Alle elemente på siden blir generert kontinuerlig, med document.createelement(), og appender/legger inn som datterelement av description (show_movie.js, linje 41). Nesten alle elementene blir generert på lik linje med strukturen vi hadde fra oblig 1, dette gjør det også enklere å style. Ikke alle filmene har trailere, så skripten ser om id en er blank, hvis den er en id så vil elementer genereres for å vise brukeren en YouTube trailer. genres.js genres.js holder holder på en liste av objekter er alle film id ene som har en sjanger i seg og som blant annet brukes for å vise brukeren hvilke sjanger den angitte filmen innholder. Ikke alle filmer har sjanger reigstrert. object.js objects.js har innholder objekter av filmer med ulik informasjon om hver film. Denne filen blir brukt i nesten alle html filene fordi den innholder informasjon som blir hentet om hver enkelt film. Hver enkelt film har en egen id, året, tittelen, beskrivelse, lengde, regissør(er), skuespillere, språk og land. query_params.js Fra denne filen så hentes det ut objekter som baserer seg på URL en. Den tar utgangspunkt i hvilke felter som man legger inn i søket og henter ut søkeparameter. Denne filen brukes i blant annet i search_results.html og search_results.js.

script.js Når index.html åpnes så kjøres script.js ved å hente id en til de ulike elementene som recommendation, last_rentals og test. Får de ulike id ene så kjøres en for-each løkke som filtrerer filmene og snevrer det ned til et par filmer og legger dem i de angitte variablene. Videre så hentes coverne fra http://nelson.uib.no/o/. JavaScripten skaper et nytt element til de ulike bildene med angitt url og kobler sammen film id/movie.id med bildet for å vise brukeren. Hvilke film det gjelder. JavaScript koden blir blant annet brukt i sammenheng med å kunne søke på filmer via search_results.js, dette er ved hjelp av createmovie funksjonen som generer bilder. search_results.js Denne filen benyttes når en bruker gjennomfører et vanlig søk eller et avansert søk. Ved å gjennomføre et vanlig søk kan brukeren kun søke etter filmtittel og ved avansert søk kan flere parameter søkes på samtidig. Dette gjelder skuespiller, tittel, regissør, sjanger eller land. Filen henter ut informasjonen og presenterer den i search_results.html. Fonts-mappe Awesome.ttf En font som benyttes til å style tekst. Raleway.ttf Font som brukes for å style tekst Images-mappe Images mappen innholder to.png filer, profile.png og search.png. Profile.png blir brukt for å refere til my_movies.html og skal illustrere at brukeren er pålogget. Search.png brukes til for å vise brukeren hvor det er mulig å søke på filmer. Man er godt kjent med at en lupe står for søk, og vi ønsker å appellere til den forkunnskapen brukeren har.

CSS-mappe style.css CSS filen innholder all kode som hjelper til for å style Movie Mundo. Den tar utgangspunkt i full display, men er også responsiv opp mot mobiltelefoner. Selv om nettsiden blir presentert dynamisk så vil style.css likevel style elementene som blir generert.