Logbog - Dyerag/P3-Masterfag-Filmanmeldelse GitHub Wiki
Denne Logbog dækker projekt arbejdet, og vil blive ugeligt opdateret.
Der kommer til at stå hvad vi har arbejdet med, hvilke problemer vi eventuelt er løbet ind i, og hvordan de er løst.
13/08 - 16/08, Uge 1
Vi er blevet givet et gruppe projekt arbejde, hvor vi skal lave program med en webapplikation, API, og database, og skal bruge sprogende CSS, HTML, og C#.
Opgaven har nogle målpinde der bl.a. dækker over det der tidligere var nævnt. Der er også nogle faser som vi skal igennem i rækkefølge, og før vi må arbejde med det der faktisk er interessant, skal vi desværre starte med at lave dokumentation og planlægning. Vi har færdiggjort oplægs fasen, og er nået til tidsplanen i analyse fasen.
Vi er nået igennem den første uge, og desværre har Erol været syg i den periode.
Til at starte med, gik vi igennem projektets regler, såsom hvilket programmeringssprog der skal bruges og de fem faser. Vi har valgt at skrive dokumentationen til faserne inde på GitHub wiki, hvor faserne er inddelt i sin egen side.
Den førstes side er Oplæg, og den er ret kort. fasen handlede barer om at skrive om hvad programmet omhandlede, hvordan vi kom på det og hvordan den mødte alle målpindene.
Nu er vi nået til, og næsten færdig med, analyse fasen.
Det er mest barer diagrammer vi skal lave, og indtil videre har vi lavet E/R, Flowchart, Usecase, og gantt for tidsplanen. I øjeblikket arbejder vi alle på SWOT analysen.
De problemer vi havde, kom fra at arbejde med SWOT analysen og tidsplanen.
SWOT var fordi det er svært se på sig selv indefra og udefra, for at identificere ens styrker, svagheder, muligheder, og trusler i konteksten af analysen.
Tidsplanen fungerede bare ikke som det skulle. Problemet var at når man ekskludere dage, bliver opgaver i diagrammet forlænget med det antal ekskluderede dage opgaveperioden overlappede. Det fungere perfekt for opgaver der har en længde for hvor lang tid det varer, som f.eks. 5 dage eller 2 uger. Problemet er at diagrammet gør det samme for opgaver med en decideret slutdato. så en opgave der f.eks. varer tre uger og skal slutte tirsdag den 20. vil i stedet slutte omkring onsdag den 28.
problemet er at Realiseret Tidsplan har en lang periode, og ender med at gå over sin slutdato med tre uger. Heldigvis fandt vi en løsning. Vi gjorde barer Realiseret Tidsplan kortere, og lagde individuelle dage til, indtil de ekstra dage fra weekenderne flyttede opgavens slutdag over hvor den skal være.
19/08 - 23/08, Uge 2
Ikke meget er sket i denne uge.
Erol er blevet rask og møder op i centret, hvilket passer perfekt da vi var i gang med at lave SWOT analysen til hver person i gruppen.
Udover SWOT er vi begyndt på at lave mockups til projektet, og det tager sin tid, da vi laver én til hver side der skal laves. Meget af den første uge med mockup blev brugt på at finde ud a hvordan startsiden, og det generelle layout skal være.
26/08 - 30/08, Uge 3
Vi er fortsat med Mockup, men har kun arbejdet på projektet mandag og tirsdag. Det skyldes at torsdag var mulighedernes dag på TEC, og fordi deltagelse i form af at stå ved sin uddannelses stand var obligatorisk, fik vi en fridag onsdag og fredag.
02/09 - 06/09, Uge 4
Vi er blevet færdig med mockup, og har næsten lagt og skrevet om alle mockups i GitHub Wiki.
09/09 - 13/09, Uge 5
I denne her uge fik vi levet teknologi listen, og dermed blevet færdig med analyse fasen. Nu er vi så i gang med kravspecifikation, og kan forhåbentligt blive færdig med det endelig begynde med at programmere i næste uge.
Det første problem vi havde var med database.
Da vi sad og skrev listen af teknologier under analyse fasen, var vi usikker på hvordan vi skulle få en database vi alle kunne arbejde i. Erol fik spurgt omkring og fandt frem til at vi bare måtte lave en virtuel maskine med databasen på, og remote access den på det lokale net. Så det er hvad vi går med indtil videre.
Det andet problem vi havde, angik at gemme databasen.
Da Dylan søgte nettet efter svar på det tidligere nævnet problem, Fandt jeg ud af at man åbenbart kan source control SQL databaser, og siden vi alligevel skal gemme på databasen så vi ikke mister den, lød det som en brugbar måde at gøre det på. Det viste sig at være mere kompliceret og bøvlet en vi har tid til, og jeg brugte lidt mere tid end jeg burde på at prøve at få det til at fungere. I sidste ende valgte vi at sige at når vi skal backup databasen, får vi barer SSMS til at generere et script af hele databasen, data inkluderet, og lægger den op på GitHub samtidigt med at slette den gamle.
16/09 - 20/09, Uge 6
i denne her uge begyndte vi med at starte på at lave table i database og lavet et mappe hvor vi kunne dele til hinanden fordi man kan kun tilføjer billedere i tabel i vores virtuel maskine.
23/09 - 27/09, Uge 7
Vi har fået lavet alle tabellerne til databasen, og mangler nu at proppe data i dem. Vi sigter efter femten film.
For det første skal programmet kunne hente film fra databasen, og vi kan ikke teste om det virker ordentligt uden data at prøve med.
For det andet skal filmdata lægges på siden. Vi skal teste om det bliver lagt ordentligt uden at ødelægge noget. Som for eksempel filmsiden der viser alt data om en given film, og skal fungerer fint uanset hvilken der vælges. Derfor har vi brug for mere end én film til at teste med. Der er også Startsiden hvor der vises en masse film på én gang. For at være sikker på at 1. layoutet er fint med så mange film, 2. se hvordan forsiden normalt skal se ud inde i selve programmet, skal vi bruge en del film. Mockuppen til startsiden viser mindst 10 film, og det er hvis man ikke er logget in.
Vi tilføjer derfor femten film, så at vi også kan prøve startsiden hvis man er logget in.
Det mest besværlige ved arbejdet lige nu, er at tilføje data. Det er bare meget tidskrævende at bruge INSERT INTO for at tilføje værdierne. Det bliver i det mindste lidt hurtigere når man tilføjer skuespiller og roller til databasen ved hjælp af ChatGPT.
30/09 - 04/10, Uge 8
Ugen er blevet brugt på at fylde noget data i databasen, og mangler kun 1 sæt data før vi fortsætter.
De første to dage af ugen blev brugt på at finde ud af hvorfor Azad ikke kunne åbne den delte folder til film billeder. Siden hans siddeplads blev rykket, har han hverken kunne åbne den delte folder der lå på den VM eller pinge den VM, men kan nå sql serveren igennem SSMS.
Den manglende evne til at pinge maskinen var let løst ved at pille ved maskinens firewall, og ændre ekkoanmodningen til IPV4 så at den også tillod eksterne pc'er fra internettet.
Problemet med den delte folder, blev løst ved barer at bruge maskinens IP adresse i stedet for navnet, når man søgte efter den.
07/10 - 11/10, Uge 9
Der er ikke meget der er sket i denne uge. Det eneste der er værd at nævne, er at vi fik tilføjet det sidste sæt data i databasen, og begyndte på at lære om API'er i mandags.
Et problem Dylan faktisk løb ind i, var med siden om API der ligger under ressourcer. Under sektionen "Create Web API for CRUD" hvor man arbejder med eksemplet og ikke kun læser om det, skal man lave et ADO.NET Entity Data Model ved brug af db-first tilgangen, der laver modellen ved at bruge en eksisterende database. Databasen, eksemplet bruger blev lagt i den virtuelle maskine, Men arbejdet fra eksemplet bliver lavet på den samme fysiske maskine VM'en ligger på, og der er Derfor brug for fjernadgang. SQL serveren kunne dog ikke tilgås fjernt af den fysiske computer.
Heldigvis var løsningen let. Regellen i windows firewall der tillod Azad remote access, eksternt dækkede den kun for internettet. For at den også lod den fysiske computer remote access SQL serveren, skulle området indenfor den eksterne IP-adresse også dække det lokale undernet.
14/10 - 18/10, uge 10
Denne uge og de næste par uger, laver vi i øjeblikket en anden opgave. Så der er ikke noget i forhold til filmanmeldelsen at skrive om.
04/11 - 08/11, Uge 11
Vi er tilbage Til at lave på Filmanmeldelsen igen, og der er ikke sket meget.
Dylan har siddet og set om web Api'er. samt fulgt en web tutorial om at lave en API der henter data fra en sql database.
Det at lave en API er begyndt at gi' noget mening.
azad har set tutorial om api om hvordan det fungere og prøvede også at lave et api og har også lært om scaffold
11/11 - 15/11, Uge 12
vi er i gang med at lave vores egen api og prøvede det til at virke
azad havde problem med api på ground af billede string det tog et par dage til at forstå problemet
Dylan er begyndt med at lave API'en til programmet. Hvorimod Azads' simple API havde til formål at teste om webapplikationens kunne lave et API kald, er dette den ordentlige API til programmet.
Til at starte med har jeg brugt scaffolding til lave context og modellerne af vores database. Ud over det har jeg lavet:
en folder til at holde på alt kode API'en skal bruge til at kommunikere med databasen, en folder til den tidligere nævnte folders interfaces, Automapping og en folder til Dto'er.
Jeg har også brugt den fluent api og modellerne som scaffolding lavede, til at lave små rettelser: nogle kolonner var nullable og skulle ikke være det, og nogle der holdte på string værdier brugte forskellige datatyper, er nu uniform.
I øjeblikket er jeg i gang med at lave FilmRepository. Et lille problem jeg havde, var at scaffolding ikke lavede modeller til alle tabellerne. Åbenbart er de med vilje at scaffolding ikke laver modeller til hvad den mener er "Simple tabeller", Og alle join tabellerne undtagen SkuespillerRolle blev ikke stiftet. I stedet bruges fluent api til at lave dem.
Problemet er at join tabellerne bruges i repositories, og så vidt jeg ved, kan tabellerne skabt af fluent api ikke erstatte modeller.
Heldigvis er løsningen simpel: jeg laver modellerne i egen hånd, retter fluent api så den ikke skaber tabellerne men konfigurere dem.
18/11 - 22/11, Uge 13
azad læste om dylans api om hvordan han har lavet det fordi der var ekstra ting som azad ikke havde i sin api de ekstra ting var aid, dto, interfaces og repository
Dylan er undervejs. Alle modellerne til join tabellerne er lavet, med Fluent API ændret til at passe modellerne. Én kontroller er lavet til film, og nogle test siger at den fungere.
Sorteringen af film søgt efter med navn er dog ikke færdig.
Den bruger antallet af anmeldelser, samt gennemsnitsanmeldelsen til at bestemme rækkefølgen. For at få antallet af anmeldelser skal en anden repository bruges for at hente dataen, og den repository er ikke lavet endnu.
Udover det, er Azads WebApp blevet lagt over i den samme solution som API'en. Azad Arbejder i øjeblikket på at ændre sin webapp, så den kan bruge API'en. Og Dylan Arbejder videre med vores API.
25/11 - 29/11, Uge 14
azad arbejde med style(css) i sin home page som er startsiden på hjemmesiden
2/12 - 6/12, Uge 15
dylan har ferie i denne uge
azad har arbejde med home page, opret page og lidt i login page og har også lavet lidt css i alle 3
9/12 - 13/12, Uge 16
06/01 - 10/01, Uge 17
Azad er inde og gentage et fag i denne uge.
Dylan brugte ugen på at gå igennem den kode Azad lavede imens han var væk, helt specifikt det han lavede det han lavede i Api'en. jeg tog noter på hvad der potentielt skal rettes, men vil først gå igennem det med Azad, for at være sikke på at vi er på samme side om målet.
Automapper er også blevet droppet til fordel for en mapper jeg selv laver. Indtil videre er mapping til FilmDto og AnmeldelsesDto færdig.