Webbservice för datamining Produktbeskrivning
Webbservice för datamining Datamining System Transformer, Incorporated är i behov av en webbservice som samlar ihop information till kunderna. Även om våra medarbetare är duktiga och snabba med att få fram information, så går det ännu snabbare om vi automatiserar proceduren. För detta behövs servermjukvara som kan samla ihop information från webbsidor, informationen ska presenteras i en lista som sorteras på tid och datum. Nyheter som är mer än en dag gamla är värdelösa för oss. Vi vill ha det senaste. Självklart vill vi inte ha in alla nyheter, bara de som är verkligen intressanta. Dessa väljs ut genom en specifik tagg. Exempelvis Big brother är ointressant, de nyheterna ska genast filtreras bort. Öresundståg eller Snökaos är intressant, dessa ska finnas kvar. Nyheter som inte matchar taggar ska inte komma med. Nyheterna som filtrerats bort, eller som inte matchat, ska visas i en speciell lista om kunden önskar så. Efter senaste styrelsemötet bestämdes, i samråd med Dataminings ST, Inc IT-avdelning (Holish IT) att en konsult skulle få uppdraget att skapa mjukvaran vi behöver. Bakgrund Behovet av information som är färsk och omedelbar är en livsviktig punkt i affärsvärlden. Datamining System Transformer, Incorporated är specialister på att samla ihop data och förse kunderna med det. IT avdelningen har försett oss med kravspecifikation (nästa sida) som ska delges konsulten som ska göra arbetet. För att undvika att dra till oss konkurrenters uppmärksamhet ska listan uppdateras max en gång i halvtimmen. Dock kan det forceras om kunden önskar det. Lycka till med uppdraget! 1
KravSpec Webbservice Den ska vara REST-inspirerad. Följande sökvägar ska ingå Kommando Verb Funktion addrss/{customerid}/{url} GET Lägger till RSS i listan delrss/{customerid}/{url} GET Tar bort RSS från listan Refresh/{CustomerID} GET Läser in nya feeds addtag /{CustomerID}/{Tag}/Keep GET Skapar en god tag addtag /{CustomerID}/{Tag}/Kill GET Skapar en skräp tag deltag /{CustomerID}/{Tag}/Keep GET Skapar en god tag deltag /{CustomerID}/{Tag}/Kill GET Skapar en skräp tag Tags/{CustomerID}/Keep GET Visa lista på goda taggar Tags/{CustomerID}/Kill GET Visa lista på skräp taggar News/{CustomerID} GET Hämtar senaste listan sen senaste Refresh/ News/{CustomerID}/trash GET Hämtar senaste skräplistan sen senaste Refresh/ News/{CustomerID}/other GET Hämtar senaste listan av poster som inte matchat sen senaste Refresh/ Det är alltså tre listor med nyheter, Viktiga, Oviktiga (skräp) och Utan matchning. Varje kund ska kunna skapa en lista av RSS genom att ange sitt {CustomerID}, den väljer kunden själv. Om det inte finns data för {CustomerID} så ska det ses som en ny kund och datalistor ska genereras för kunden. Taggarna Snökaos, Jul, Katter som bra taggar ska läggas in automatiskt till goda listan. Dokusåpa ska läggas in i skräplistan. För nya användare ska Aftonbladets RSS, Expressens RSS, SVDs RSS och Blåljus RSS läggas in. Nyheterna får inte vara mer än en dag gamla. 2 Refresh forcerar uppdatering, /News kan också forcera Refresh om det är mer än en halvtimme sen listan kollades igenom. Annars ska den cacheade listan visas till klienten.
Klient I mån av tid skulle det uppskattad om det tillkom en klient. Det är dock inget krav. Klienten får vara en websida eller WPF applikation. Användaren ska logga in med AnvändarID (lösenord ej nödvändigt) Listan på viktiga nyheter ska visa automatiskt. Alternativ för att lägga till taggar och ta bort taggar av båda sorterna ska finnas. Man ska även kunna se en lista med aktuella taggar. Användargränssnittet ska vara lätt att förstå sig på. 3
Kod Om det är mer än en programmerare i projektet, använd en molntjänst för att samarbeta om koden. Git eller något liknande är bra, men det går även bra att använda tjänster som backuppar automatiskt och håller reda på versioner, exempelvis DropBox eller Box.com. Variablerna ska deklareras på ett lättförståeligt sätt. Namn på variabler och metoder ska beskriva vad de gör. Typ Namnstandard Exempel Lokala variabler CamelCase, med gemener i första bokstaven Int mittvärde=10; Properties CamelCase Public MittProperty(get;set) Metoder CamelCase Void MinMetod(); Attributer CamelCase Void MinMetod(string Data) Grafiska element hos klienten Egna typer Två bokstäver i gemener som beskriver elementtypen Första bokstaven av typen, i versal, sedan CamelCase TextBox: tb ListBox: lb Enum ETag; Struct SPace; Metoder ska ha beskrivande kommentarer vid deklaration. //---------------------------------------------------- // Method for harvesting data from RSS //---------------------------------------------------- Språk Koden ska ha engelsk variabel/metod/classnamn Kommentarerna får ske i valfritt språk 4 Lycka till Holish IT.
Deadline Projektet ska vara klar tills fredag den 5 november 2014. Ingen dokumentering krävs. 5
Datamining ST Inc! 6
Disclaimer Det här är ett exempel som ska förbereda er för tankegångarna inför slutprojekt för kursen. Ni behöver inte uppfylla alla kraven i kravspec, men det är bra om ni försöker. Dataminings ST, Inc och Holish IT är underavdelningar till LunaWorX.net 7