Arena Kundereskontro. Gruppe 25. Andreas Åkesson Roger Ommedal Ashkan Vahidishams Simen Trippestad

Like dokumenter
Arena Kundereskontro. Produktrapport

Andreas Åkesson Simen Trippestad Roger Ommedal. Ole Marius Thorstensen

Arena Kundereskontro. Prosessrapport

Arena Kundereskontro. Høgskolen i Oslo og Akershus Institutt for Informasjonsteknologi

Forprosjektrapport ElevApp

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

Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus, våren Camilla Kaasi(s188070) Roza Moustafa(s188113)

Forprosjektrapport Gruppe 30

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

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

SIMS Grensesnittbeskrivelse ekstern V0.8

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Pillbox Punchline

KRAVSPESIFIKASJON FORORD

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni.

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Digitalisering av Sentralen UNG Gründer

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren Produktrapport

Hovedprosjekt i ingeniørfag, data, våren Oslo Gruppe 23 Torstein Frogner, Bernt Kristoffer Helland, Vahid Khairkhah, Jonas Myren Mo

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

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren Testrapport

Forprosjektrapport. Sammendrag. Hovedoppgave våren 2019 Gruppe 3

GraphQL. Hva, hvorfor, hvordan

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

Høgskolen i Oslo og Akershus. Forprosjektrapport. Gruppe 11

Forprosjektrapport. Utvikle en plattform for digitalisering av foosballbord.

Demo for første sprint

Forprosjektrapport. Gruppe 31

TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang

Læringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.

1 Inledning. 1.1 Presentasjon. Tittel Informasjonsplattform for NorgesGruppen. Oppgave Utvikle en informasjonsplattform for butikkene i NorgesGruppen

Forprosjekt. Accenture Rune Waage,

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Vedlegg Side 83 av 155

Kravspesifikasjon MetaView

K-Nett. Krisehåndteringssystem for Norges vassdrags- og energidirektorat i en beredskaps- og krisesituasjon. av Erik Mathiessen

Forprosjektrapport. Gruppe Januar 2016

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

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

Bachelorprosjekt 2015

Hovedprosjekt i informasjonsteknologi våren Gruppe 32 - Erik M. Forsman, Lars H. Nordli og Simen A. Hansen

Tirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case

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

Konsulent. Nicklas Eltvik Født: 1992 Nasjonalitet: Norsk. Kontaktinformasjon: Telefon: E-post:

Implementering av database og tjeneste

Bachelorprosjekt i informasjonsteknologi, vår 2017

Studentdrevet innovasjon

VEDLEGG 1 KRAVSPESIFIKASJON

Implementering av database og tjeneste

Forprosjektrapport. Hovedprosjekt for gruppe 4, Anvendt datateknologi våren 2015

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen

Kravspesifikasjon. Android app for aktivering av jakt- og fiskekort. Bacheloroppgave vår Høgskolen i Oslo og Akershus. Charlotte Sjøthun s180495

Forprosjektrapport GRUPPE 4: SHIFTWORKERS

3.3 Case 3: Opprette en bruker Case 4: Endre en bruker... 8

Dokument 1 - Sammendrag

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

einnsyn PoC: Demo for tredje sprint

Hovedprosjekt i Informasjonsteknologi 2016 Høgskolen i Oslo og Akershus. Forprosjektrapport. Bravo Booking App

Skøyen, Gruppe 11

1. Forord 2. Leserveiledning

Hovedprosjekt i Informasjonsteknologi ved Høgskolen i Oslo og Akershus. Forprosjektrapport. Presentasjon

2/3/2014 INSTITUTT FOR FÔRIT CDS INFORMASJONSTEKNOLOGI, HØGSKOLEN I OSLO OG AKERSHUS. Shahariar Kabir Bhuiyan

Produktrapport Gruppe 9

Forprosjektrapport Bacheloroppgave 2017

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester.

Visma Reconciliation NYHETER OG FORBEDRINGER

Gruppe Forprosjekt. Gruppe 15

Forprosjektrapport. Presentasjon. Studentgruppen. Bekk Consulting AS. Android app for aktivering av jakt- og fiskekort

Konsulent-ID: 2225 Curriculum vitae

(MVC - Model, View, Control)

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

Forprosjektrapport. Hovedprosjekt i Informasjonsteknologi. Høgskolen i Oslo og Akershus. Våren 2016

Heggset Engineering er et kreativt og uavhengig kompetansemiljø med ti ingeniører/tekniske tegnere lokalisert i moderne lokaler i Dale Industripark i

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

ISY Park Go og nye ISY Park. Endre Lykke, NoIS

Kravspesifikasjon Gruppe nr ABTF

GJENNOMGANG UKESOPPGAVER 9 TESTING

GRUPPEMEDLEMMER FOR BACHELOROPPGAVE 5E. Mikael Brevik (22 år) Greger Lervik (21 år) Marius Krakeli (21 år)

Hovedprosjekt 2011 HO912A. Securitas IT portal. Forprosjektrapport. Adeel Yousaf Khan s Mats Klingenberg Naustdal s Stig Arild Ysterud

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Kontaktinformasjon oppdragsgiver: Yelpi AS, Adresse: Karoline Kristiansens vei 1, 0661 Oslo, tlf:

Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008

LocalBank Prosjektbeskrivelse

Kravspesifikasjon. Forord

Bedriftspraksis. David Andreas Helgestad EVRY Østfold Høgskolen i Østfold

Kravspesifikasjon. Utvikling av moduler til CMS for bonefish.no. Gruppe 08-23

Hovedprosjekt. Høgskolen i Oslo data/informasjonsteknologi våren 2011 Forprosjektrapport. K-skjema og ferie kalender

Kjørehjelperen Testdokumentasjon

Programmeringsrammeverk som kan installeres på Windows Mobiloperativsystem

Kravspesifikasjon ELEKTRONISK BESØKSREGISTER FOR NC-SPECTRUM ANDREAS STENSRUD S JOAKIM F. MØLLER EMIL R. NEDREGÅRD

PROSESSDOKUMENTASJON

DELLEVERANSE 1 INF2120 V06

Kandidat nr. 1, 2 og 3

Kravspesifikasjon. Forord

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen.

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet

Http- og WebServices funksjoner

Technical Integration Architecture Teknisk integrasjonsarkitektur

Forprosjektrapport for bacheloroppgave i data og informasjonsteknologi

FORPROSJEKT RAPPORT PRESENTASJON

Transkript:

Arena Kundereskontro Gruppe 25 Andreas Åkesson Roger Ommedal Ashkan Vahidishams Simen Trippestad

Gruppe 25 Om oss Gruppemedlemmer: Andreas Åkesson Roger Ommedal Ashkan Vahidishams Simen Trippestad Informasjonsteknologi Samarbeidet på tidligere prosjekter

Agenda Introduksjon Prosessen Løsningen Avslutning

Introduksjon

Oppdragsgiver - Kredinor Norges neste største infordringsselskap Mellom 400-500 ansatte IT avdeling på ca 30 stk Egenutviklede kjernesystemer Kontaktpersoner Ole Marius Thorstensen IT sjef Øyvind Andersen - Systemarkitekt

Oppgaven Arena Kundereskontro Bakgrunn for oppgaven Roger ansatt i Kredinor Kredinor hadde behov for å få utviklet en ny reskontroløsning for bruk på tvers av systemene Dagens systemer: Vanskelig å hente ut samlet informasjon Enkelte transaksjoner kan korrigeres/slettes uten at historikk lagres Hva er Arena?

Hva skal vi lage Arena Kundereskontro Et Klassebibliotek for bruk i andre system Transaksjonsoversikt på tvers av systemer Sikre pålitelighet Sikre sporbarhet Generelt, ikke bransjespesifikt Visual Studio - C#.NET En klient som benytter klassebibliotek (test / demo) Alternativ Nytt intranett, web programmering Hvorfor Web side har vi laget før Klassebibliotek - mer utfordrende Lærerikt å programmere i c#.net

Prosessen

Planlegging Mål: Utarbeidelse av kravspesifikasjon Valg av utviklingsmetodikk Begresning av omfang Forsikring av nødvendig forankring Utarbeidelse av nødvendige dokumenter og diagrammer - Fremdriftsplan - Sprint-oversikt - Risikoanalyse - Klassediagram Benyttede verktøy - Yed - Trello Tidlig utgave av klassediagram

Utviklingsprosessen Stadige endringer i kravspesifikasjon Tidlige sprinter preget av treg progresjon Utfordringer: Paralellitet Sporbarhet Pålitelighet Testing Milepælsplan som viser overordnet fremdrift Brøt ned utfordringer i så små deler som mulig

Eksempel på Scrum-kort i trello Scrum Hvorfor Scrum? Bruk av trello Sprint oversikt Stand-up møter Gantdiagram som viser oversikt over sprinter, varighet og helhetlig prosess

Paralellitet Resultat av krav om høy ytelse Asynkron behandling Tabellen er hentet fra Testrapporten og viser ytelsesforhold sync vs. async Bruk av GUID

Sporbarhet Hvorfor sporbarhet? TransaksjonsID Modellen beskriver ønsket sporbarhet i løsningen Forelder Barn

Pålitelighet Mulighet for feil i gammel løsning Samme fil kan leses inn flere ganger, vil gi redundans Checksum Hash av transaksjonsforespørsel Lokal database Hver klient har sin egen database Checksum lagres her Nye forespørsler kontrolleres mot databasen

Hvordan teste et klassebibliotek? Klassebibliotek => mangler brukergrensesnitt Via en klient => Web API Testprogram med utskrift til konsoll Enhetstester Skjermutklipp fra Web-apiet som viser Import-XML viewet

Løsningen

Context EntityFramework En kontekst kan defineres som en klasse Grunnleggende data Info om forbindelse til database Hvilke objekter databasen inneholder Viktige funksjoner Refererer til ConnectionStringen Inneholder Metadata Holder Kontroll på endringer

Klassebibliotekets kontekst AKContext Sentralt RequestContext Lokalt ConnectionString

Klient Et system som tar klassebiblioteket i bruk Klassebiblioteket må vite hvor transaksjonen kommer fra

Implementasjon av klient Interface for klientene Hvorfor? Identifisering av klienter Mottak av transaksjonskvitteringer Opp til Klient å implementere funksjonalitet for håndtering av kvitteringer.

Transaksjonsforespørsler Ankommer klassebiblioteket i XML format En forespørsel består av: TransactionRequest - TransactionData - PostingData Data om selve forespørselen Data om Gitt Transaksjon Data om gitt postering XML konverteres til et objekt som klassebiblioteket kan behandle videre.

Håndtering av Transaksjonsforespørsler

Trimming av forespørsel

Validering av transaksjoner Påkrevd for å sikre at en transaksjon er korrekt: I balanse Konto eksisterer Oppfylling av vilkår i bokføringsloven, derav pålitelighet til data som lagres i databasen/modulen. Validering etter trimming for å spare ressurser

Lagring av transaksjon Etter validering blir transaksjonen forsøkt lagret. Ved vellykket lagring oppdateres den lokale Request databasen. Dette for å unngå duplikat behandling dersom forespørsel sendes inn på nytt. Til slutt sendes en kvittering til klienten med transaksjonens unike ID.

Kvitteringer En tilbakemelding fra modulen der klient får vite: Vellykket postering Transaksjon er behandlet fra før Feilmelding

Kvitteringer - nytte Tilbakemelding etter behandling av transaksjon GUID dersom vellykket Beskrivende melding ved feil Gir klienten en mulighet til etterbehandling/loggføring.

Uttak til regnskapssystem Nåværende system (gammel løsning) Batch-jobb Kjøres som regel en gang per natt Sender inn en datastrøm (ny løsning) AccountingRequest blir skrevet som XML til strøm Posteringer med tilhørende transaksjonsinformasjon Posteringer blir merket som eksportert (timestamp) Kan også hente ut alt som er eksportert på en gitt dato

Web API Forlengelse av det opprinnelige prosjektet Klient som implementerer klassebiblioteket Benyttes til å teste ut og demonstrere funksjonaliteten til klassebiblioteket ASP.NET Web API Rammeverk for å bygge RESTful Web API Returnerer JSON objekt Gjør data tilgjengelig for mange plattformer F.eks. en mobilapplikasjon

Eksempel på en forespørsel Forespørsel GET api/postings GET /postings Beskrivelse Hente ut alle posteringer. Response Kode Beskrivelse 200 Retunerer en liste med Posting. Svar Array med posteringer (JSON) POSTING M ODEL Beskrivelse En postering i modulen. Eksempel Type application/json { "TransactionId" : "050fea39-b054-4d6f-bcd1-001b6f835362", "AccountNo" : 2802, "ParentTransactionId" : "050fea39-b054-4d6f-bcd1-001b6f835362", "Amount" : -146.0, "TransferedToAccountingSystem" : null, "Transaction" : null, "ParentTransaction" : null, "Account" : null, "Reference" : null }

Bruk av Web API

Front End AngularJS Javascript MVC-rammeverk SPA (Single-page Application) Brukergrensesnitt i HTML Bootstrap CSS 6 views En controller per view

Services Utfører forespørsler mot Web API Gjenbrukbar kode (DRY) En service kan brukes i flere controllers ngresource modul til Angular som tilbyr interaksjon mot RESTful services.factory('client', ['$resource', function ($resource) { return $resource('api/clients/:clientid', {}, {}); }]); $scope.newclient = new Client({ Name: "Demo", Active: true}); $scope.registerdemoclient = function () { $scope.newclient.$save(); };

Funksjonalitet Laste opp fil med flere transaksjoner eller registrere en enkel transaksjon. Demonstrere sporbarheten ved hjelp av søk Administrere kontoer samt importere flere kontoer fra fil Registrere nye klienter Laste ned fil med posteringer for regnskapssystem

Importering av filer

Polling av kvitteringer Etterspørr nye kvitteringer en gang i sekundet Rød: Opplasting av XML (skjer en gang) Blå: Polling (skjer flere ganger)

Sporbarhet

Registrering av enkel transaksjon

Legge til postering/motpostere

Kontoadministrasjon

Registrering av ny klient

Uttak til regnskapssystem <?xml version="1.0"?> <accountingrequest xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" count="4"> <postings> <posting> <date>2015-06-09t00:00:00+02:00</date> <financial_year>2015</financial_year> <financial_period>1</financial_period> <account_no>1018</account_no> <parent_guid>ea424dfa-ae01-4863-aa2a-974ee31424f3</parent_guid> <amount>-2000</amount> </posting> <posting> <date>2015-06-09t00:00:00+02:00</date>

Avslutning

Gruppens utbytte Lært mye om prosess, viktigheten av å ha et nøye planlagt og gjennomtenkte prosjekt før man starter Lært programmering (.Net), fordeler med testdreven utvikling og behovet for god dokumentasjon Lært å arbeide i prosjekt i næringslivet, både på godt og vondt Krevende å oppfylle alle ønsker, mange som gjerne vil komme med innspill. Kan bli mange endringer underveis Vanskelig å få allokert ressurser Lett for at det oppstår misforståelser viktigheten av god kommunikasjon

Nytteverdi for Kredinor Samlet oversikt over transaksjoner og historikk Mulighet for uthenting av data til regnskapssystem Produktet kan tas i bruk, men man ser at det sannsynligvis trenger videreutvikling for at det skal fungere optimalt Inneholder for lite informasjon Støtte ønsker om å ta ut informasjon om kunden / oppdragsgiver, ikke bare transaksjonen, på tvers av systemer

Gjort annerledes? Mer planlegging og avklaringer før kodestart Bedre og mer gjennomtenkte use-case, klassediagram, etc. Enda tettere oppfølging mot oppdragsgiver og raskere avklaringer

Konklusjon Vi har laget et produkt som samsvarer godt med det oppdragsgiver i utgangspunktet ønsket seg Prosessen har vært litt «humpete» definitivt god lærdom å ta med seg til neste gang man skal jobbe i et slikt prosjekt Utfordrende prosjekt Et produkt som ikke har noe grensesnitt for sluttbruker Vanskelig å demonstrere og systemteste Faglig vanskelig innhold transaksjon, postering, sporbarhet, pålitelighet etc.

?

Takk for oss!