- PHP 93.7%
- CSS 6.3%
| .gitignore | ||
| LICENSE | ||
| PHPApplikation.php | ||
| PHPresponse.php | ||
| README.md | ||
| style.css | ||
PHP Applikation
Applikationen är ett webbgränssnitt som visar upp datan från den databas som byggts i uppgiftens föregående steg. Nedan listas de krav som kvarstår efter att PHP-applikationen byggts.
Requirements
Nedan visas de krav som webbgränssnittet och databsen uppnår tillsammans, efter att PHP-applikationen byggts färdigt. Detta har alltså gjorts som sista steg, efter att uppgiftens alla commits är inskickade. Anledningen beror på att jag ansåg det som det bästa arbetsordningen.
Agent
-
Varje agent identifieras unikt med hjälp av dess namn (namnet är endast en bokstav exempelvis K), tillsammans med en siffra exempelvis J 2.
-
Agentens levnadsfilosofi lagras som en kommentar för att kunna gå tillbaka och utvärdera hur pass bra agenten lever upp till sin levnadsfilosofi vid ett senare tillfälle
Rapport
- På alla typer av rapporter så måste värden för alla attributen lagras. Om ett utslag inte anges för en uppföljningsrapport skall det automatiskt tilldelas värdet som motsvarar ett misslyckande. Lösning: constraint på avslutadeoperationer kräver ett slutdatum, pågående kräver inte.
DesinfoKampanj
-
Det kan hända att en lagring av någon typ av information eller en bokning av någon resurs misslyckas, i detta fall skall lättförstådd felinformation visas, agenten skall sedan ha en möjlighet att rätta till den felaktiga informationen innan tuppeln lagras igen. Lösning: Visar felmeddelande om ett felaktigt värde skrivs in i webbgränssnitt där constraints finns.
-
Slutligen skall det gå att beräkna antalet genomförda desinformations-kampanjer samt procentandelen lyckade kampanjer som agenten genomfört. Lösning: Tillsammans med ## Kampanj samt denna information visas i webbgränssnittet.
-
Till en viss incident kan flera olika desinformationskampanjer kopplas och en viss kampanj kan gälla flera olika incidenter Lösning: Görs med främmande nyckel.
-
För varje unik kampanj lagras dessutom dess success rate som talar om om kampanjen lyckades eller misslyckades
-
Kampanjens startdatum och slutdatum talar om när kampanjen påbörjades samt avslutades, en kampanj kan vara pågående (null på slutdatum) men den måste ha en början. Lösning: Pga horisontell split är tabellen delad i två, påegående kampanj accepterar NULL-värde men avslutad kampanj har NOT NULL.
-
Dessutom lagras en kommentar (högst 80 tecken) om kampanjen och dess uppgift
-
Det är av högsta vikt för desinformationsspridarna att åtkomsten till desinformationskampanjerna går mycket fort. Optimerings och uppsnabbningsstrategier bör därför användas vid lagring av desinformationskampanjerna. Lösning: Gjort en merge med tabellerna kampanj och desinformatör för att öka prestandan.
-
För kampanjer och operationer så måste alltid slutdatumet för operationen eller kampanjen vara senare än startdatumet. En operation eller en kampanj får inte vara kortare än en dag.
-
De attibut som anges som “success rate” skall lagras i form av ett heltal som är ett om operationen eller kampanjen lyckades och noll om operationen eller kampanjen misslyckades. Inga andra värden är tillåtna
Operation
-
Operationens namn, datum och plats skall visas tydligt i gränssnittet.
-
Kodnamntypen anger både operationens kodnamn samt dess typ, exempelvis uppstädningsoperation: Gregers Bodega eller Insamlingsoperation: lämmeltåg
-
Operationen har även en frivillig kommentar som bör fyllas i där agenterna specificerar viktiga detaljer om operationen som är utöver den information som lagras i operationens förbestämda fält
-
För varje avslutad operation lagras dessutom operationens slutdatum samt operationens success rate
-
För kampanjer och operationer så måste alltid slutdatumet för operationen eller kampanjen vara senare än startdatumet. En operation eller en kampanj får inte vara kortare än en dag.
-
De attibut som anges som “success rate” skall lagras i form av ett heltal som är ett om operationen eller kampanjen lyckades och noll om operationen eller kampanjen misslyckades. Inga andra värden är tillåtna
Incident
-
Handläggaren skall även tilldela incidenten en desinformationsspridare Lösning: Ej handläggare, men löses i desinfo. tabellen med främmande nyckel
-
En incidient kan identifieras antingen av dess unika namn eller dess unika nummer. Lösning: Valt en nyckel som primary och en som unik.
-
En incident måste inträffa i någon region
-
En incident kan dessutom ha en eller flera operationer eller desinformationskampanjer kopplade till sig
Uppföljning
-
En pågående uppföljningsrapport indikeras av ett nullvärde i slutdatumkollumnen för uppföljningsrapporten
-
Även en uppföljningsrapport har två datum, en uppföljning har ingen övre gräns för hur lång den kan vara, den måste dock vara minst en dag lång
-
För uppföljningsrapporterna skall en längre kommentar kunna lagras (exempelvis max 80 tecken)
Region
-
En region identifieras unikt av dess namn. Lösning: Med kodifiering identifieras tabellen Region i stället med regionens nummer.
-
För en region lagras dessutom en uppskattning av regionens huvudterräng, exempelvis stadsterräng, berg eller skog
-
Dessutom skall det gå att härleda regionens antal tidigare incidenter och operationer för att kunna se om regionen är överrepresenterad. Lösning: Genom att välja ett platsnummer i dropdown i webbgränssnitt så kan användaren se vilka incidenter som skett på denna plats.
-
Eftersom det dock är nödvändigt att incidenter och operationer är kopplade till regioner skall en specifik region som heter “hemligstämplat“ skapas om den inte redan existerar och sedan kopplas till de påverkade operationerna och incidenterna
-
Alla regioner måste ha någon typ av terräng lagrad. Om inget värde tilldelas så skall det automatiskt sättas till “blandad”