PRESENTASJON BACHELOROPPGAVE 14E Koordinatbasert dataregistrering og loggføring med Drupal, PHP og MySQL Alf Harald Saelevik 1
1 Om oppdragsgiver og prosjekt Pingvin sporstsdykkerklubb er en idrettsklubb etablert i 1967 med omlag 40 medlemmer, som holder til på Skansen i Trondheim. Det er denne klubben som er initiativtaker til prosjektet, og dette innvolverer da også meg på et vis, siden jeg er medlem og webansvarlig der. Klubben ønsker seg en digital kartløsning med muligheter og verktøy for kartplotting, turplanlegging og generelt alt som en dykker og en klubb kan dra ut av en slik tjeneste.dette prosjektet tar sikte på å skape en webportal som gir muligheter for å lagre alle typer av data som omhandler dykking, både på det personlige plan og på klubbplan. En database for dykkerklubber basert på kartkoordinater og stedsnavn som lagrer turdata, dykkedata, info om klubber, info om brukere, statistikk etc. Først og fremst valgte jeg oppgaven fordi kartplotting og arbeid med geodata er inspirerende! Spesielt det å jobbe med analyser av geografi opp mot andre typer data. Derfor er dette, sett i lys av min entusiasme for dykkesporten, en meget inspirerende oppgave å ta fatt på. 2 Arbeidet Som basis i nettsiden falt valget på Drupal 7. Drupal er et open source CMS som brukes som basis i hundretusenvis av nettsider verden over. Drupal har en mye brattere lærekurve enn andre systemer, men har til gjengjeld meget avanserte utvuklingsmuligheter, spesielt kombinert med de tusenvis av tredjeparts moduler som finnes. Systemet brukes i dag av en lang rekke store bedrifter. Et lite utdrag av arbeidet: Konfigurering av Drupal, inkludert 30 tredjeparts moduler Utvikling av egne Drupal-kompatible moduler i PHP Konfigurering av system og datamodell, da spesielt med tanke på inndata (fields) og visningsmodeller (views) Feilsøking (bugfixing) i nødvendige moduler som ennå ikke er ute i stabil versjon for Drupal 7 Konfigurering av forskjellige kart-typer Minimal modifisering av tema og CSS Læreutbytte Økt kjennskap til Drupal CMS og PHP. Drilling i strukturert arbeid, for å holde orden på egenprodusert kode og grafikk Økt kjennskap til effektiv bruk av utviklingsverktøyet NetBeans IDE samt bruk av GIT-løsninger Sist men ikke minst et motvillig innblikk i viktigheten av å ta backup. 2
3 Resultatet Det jobbes mot en bruker- og klubbsentrert webportal. Det vil si at man som bruker skal kunne arbeide rundt sitt eget geografiske område, sine egne data og dykkeklubben man er medlem i. Dette til tross for om andre klubber skulle komme til å ta i bruk databasen. Helt overordnet har portalen per dags dato følgende funksjoner: Personlig loggføring, som utnyttes til statistisk grunnlag Turplanlegging både i dykkerklubben og som privatperson Kollaborativ utvikling av dykkestedsdatabase med revisjonssystem ( wiki-ish ) Generering av statistikk på dykkesteder basert på loggføringer Innlogging via kjente tjenester som Facebook, Google og Twitter (Janrain Engine) Kartplotting på sjøkart fra Noregs Kartverk Portalen kan brukes samtidig av et ubegrenset antall klubber Muligheter for utlevering av geodata til eksterne tjenester via JSON Automatisk oppbygging av land- og regionsiearki ved hjelp av Geonames.org Databasen vil ved prosjektslutt (rent teknisk): Basere seg på Drupal kjernesystem og et 30-talls tredjeparts moduler Kjøres på Ubuntu Server, men er portabel på tvers av operativ- og databasesystem Inneholde diverse testdata i form av reell dykkedata Fokuset i denne oppgaven har ikke vært å lage et helt ferdig produkt, men heller at hele det grunnleggende rammeverket bak skal være på plass. I det rammeverket som er lagt til grunn er det store utbyggings- og visningsmuligheter. Grafisk design av nettsiden har blitt mindre prioritert, og det er ikke utviklet et eget tema. 3
4 Videre arbeid Jeg ser for meg en retning å videreføre utviklingen i, men dette innebærer utvikling utover tidsrammen som er satt for prosjektet. Jeg nevner her i fleng: Implementasjon av værvarsler i statistikk (krever muligens lisens fra yr.no) Utnytte statistikkgrunnlaget bedre Finjustering av utseende / utvikling av et egenprodusert tema Muligheter til å fjerne Norsk sjøkart (Javascript) Helnorsk brukergrensesnitt Flere typer aktivitetsloggføringer enn oppretting og endring av innholdstyper Opparbeiding av hjelpemateriale Wizard for innholdsoppretting Mulighet til å detaljkartlegge dykkesteder ved hjelp av gps og ekkolodd (har en god ide, men krever javaprogrammeringsegenskaper som jeg ikke har) 4
5 Foreløpige bilder Nedenfor følger noen kjappe utsnitt av nevnte funksjoner 5