Meeskond:Scraper: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 34: Line 34:
'''Miks ja mida me teeme?'''
'''Miks ja mida me teeme?'''


Tänases suures infohulgas on raske leida üles asjalikku informatsiooni. Kliki-näljas meedia toodab palju sisutühje või kollaseid uudiseid, mille sorteerimine on tüütu. Meie rakendus annab kasutajale võimaluse saada kiiresti ülevaate aktuaalsetest teemadest. Rakendus hoiab kokku kasutaja aega ja aitab vältida kokkupuudet mõttetute pealkirjadega, mis tema igapäevast uudisvoogu risustavad.
Tänases suures infohulgas on raske leida üles asjalikku informatsiooni. Kliki-näljas meedia toodab palju sisutühje või kollaseid uudiseid, mille sorteerimine on tüütu. Meie rakendus annab kasutajale võimaluse saada kiiresti ülevaate aktuaalsetest teemadest ajakirjanduses. Rakendus hoiab kokku kasutaja aega ja aitab vältida kokkupuudet mõttetute pealkirjadega, mis tema igapäevast uudisvoogu risustavad.
   
   
Teeme töölaua rakenduse, mis võimaldab kuvada kõige populaarsemaid uudisteemasid praegusel hetkel ja ka otsida sõna järgi kõige populaarsemaid uudiseid, mis selle sõnaga on seotud. Ideaalis aitab rakendus soovi korral eemaldada ka “kollaste uudiste” tundemärkidega pealkirju.
Teeme töölaua rakenduse, mis võimaldab kuvada kõige populaarsemaid uudisteemasid praegusel hetkel ja ka otsida sõna järgi kõige populaarsemaid uudiseid, mis selle sõnaga on seotud. Ideaalis aitab rakendus soovi korral eemaldada ka “kollaste uudiste” tundemärkidega pealkirju.
Meie kasutaja on inimene, keda häirivad uudisteportaalide "kollased" pealkirjad ja kes tahab kiiret ülevaadet, et mis on praeguse hetke põhiteemad.
   
   
'''Kuidas meie rakendus toimib?'''
'''Kuidas meie rakendus toimib?'''
Line 42: Line 44:
Rakendus kammib läbi uudiseid edastavaid veebilehti ja toob välja populaarsemad sõnad praegusel ajahetkel. Rakendus avab veebilehe uudistearhiivi ja loeb sealt sisse uudiste pealkirjad. Sealjuures välistab rakendus enam levinud sidesõnad, artiklid jms väheinformatiivsed sõnad. Rakendus tõstab esile sõnad, mille esinemissagedus on oluliselt suurem kui nende ajalooline keskmine. Kasutaja saab valida erinevate riikide uudisteportaalide ning keelte vahel.
Rakendus kammib läbi uudiseid edastavaid veebilehti ja toob välja populaarsemad sõnad praegusel ajahetkel. Rakendus avab veebilehe uudistearhiivi ja loeb sealt sisse uudiste pealkirjad. Sealjuures välistab rakendus enam levinud sidesõnad, artiklid jms väheinformatiivsed sõnad. Rakendus tõstab esile sõnad, mille esinemissagedus on oluliselt suurem kui nende ajalooline keskmine. Kasutaja saab valida erinevate riikide uudisteportaalide ning keelte vahel.
   
   
Kasutaja saab graafilises kasutajaliideses vaadata populaarsemaid sõnu. Kui sõnale klikkida, siis saab vaadata viimaseid uudiseid, mis selle sõnaga seostuvad. Samuti saab kasutaja sisestada otsingusse sõnu ja leida nii viimaseid seotud uudiseid. Uudiseid saab filtreerida riigiti ja alateema kaupa (poliitika, tehnoloogia, majandus jms.). Samuti saab kasutaja valida, milliseid veebilehti otsingu jaoks kasutatakse.
Kasutaja saab graafilissse kasutajaliidesesse sisenedes koheselt vaadata populaarsemaid sõnu. Kui sõnale klikkida, siis saab vaadata viimaseid uudiseid, mis selle sõnaga seostuvad. Samuti saab kasutaja sisestada otsingusse sõnu ja leida nii viimaseid seotud uudiseid. Uudiseid saab kasutaja filtreerida riigiti ja alateema kaupa (poliitika, tehnoloogia, majandus jms.). Samuti saab kasutaja soovi korral valida, milliseid veebilehti otsingu jaoks kasutatakse. Vaikimisi on kasutatud kõik meie poolt valitud veebilehed.
   
   
Võimalik on vaadata viimaste otsingute ajalugu. Kaalume ka kasutajakonto loomise võimalust, aga hetkel ei tundu see otstarbekas.
Võimalik on vaadata viimaste otsingute ajalugu. Kaalume ka kasutajakonto loomise võimalust, et rakendus jätaks meelde konkreetse kasutaja valikud/eelistused.
   
   
'''Kuidas me oma rakendust ehitame?'''
'''Kuidas me oma rakendust ehitame?'''


*Kasutame programeerimiskeelt C#
*Kasutame Entity Frameworki andmebaasi loomiseks ja sellega suhtlemiseks.  
*Kasutame Entity Frameworki andmebaasi loomiseks ja sellega suhtlemiseks.  
*Kasutame Code First lähenemist.
*Esialgu plaanime kasutada Code First lähenemist.
*Kasutame MVVM arendusmustrit, eraldada kasutajaliidese ja andmebaasi ehitamist. Nii saame töötada ühel ajal ja kõik pole ühes failis koos.
*Kasutame MVVM arendusmustrit, eraldada kasutajaliidese ja andmebaasi ehitamist. Nii saame töötada ühel ajal ja kõik pole ühes failis koos.
*Kommenteerime oma koodi, et pärast retsenseerijatel oleks ka võimalik aru saada kuidas rakendus töötab.
*Kommenteerime oma koodi, et pärast retsenseerijatel oleks ka võimalik aru saada kuidas rakendus töötab.
Line 60: Line 63:


*MVVM arendusmustri korralikult kasutamine tundub hetkel keeruline, aga loodame, et kui reaalselt tööle hakkame ja näeme, milliseid tükke meie rakenduse jaoks on vaja kokku panna saab selgemaks kuhu miski kuulub.  
*MVVM arendusmustri korralikult kasutamine tundub hetkel keeruline, aga loodame, et kui reaalselt tööle hakkame ja näeme, milliseid tükke meie rakenduse jaoks on vaja kokku panna saab selgemaks kuhu miski kuulub.  
*Andmebaasi graafilise liidesega ühendamine.
*Andmebaasi graafilise liidesega ühendamine. Loodame, et praktikumides ja loengutes tehtud on piisav ka meie rakenduse jaoks. Tähtis on, et varume selle jaoks piisavalt aega.
* Ideaalis oleks väga praktiline ja ka hetkel maailmas tomuvaga hästi haakuv kui saaksime luua mingit sorti "Fake News" blokeeringu või siis märguande. Selle teostamine tundub aga päris raske. Esmapilgul tundub, et selline eristamine vajaks väga põhjalikku tekstianalüüsi. Proovime leida vähemalt mõne tunnuse, mille abil "fake news" päris uudistest eristada.
 


'''Millised on töö etapid?'''
'''Millised on töö etapid?'''


*Valime veebilehed, mida töödelda
*Valime veebilehed, mida töödelda. Peame vaatama, et valim oleks piisavalt suur ja need esindaksid erinevaid maailmavaateid.
*Mõtleme välja, millises vormis saadud andmed salvestada
*Mõtleme välja, millises vormis saadud andmed salvestada
*Kirjutame valmis andmete tõmbamise programmi
*Kirjutame valmis andmete tõmbamise programmi
Line 73: Line 78:
*Kirjutame otsingu.
*Kirjutame otsingu.
*Ühendame andmebaasi graafilise liidesega
*Ühendame andmebaasi graafilise liidesega
*Äkki leiame oma rakendusele mõne kõlavama nime
Tähtis on kiiresti alustada ja kõigile vajalikele koostisosadele esialgsed lahendused välja pakkuda. Nii saame paremini hinnata, mille peale võib meil kõige rohkem aega kuluda.  Hetkel me ei kujuta hästi ette kui töömahukas iga etapp on. Loodetavasti see aitab meil tööga õigeaegselt valmis jõuda.
Prototüübi esitlemiseks tahaksime, et oleks valmis järgmised asjad:
*Scraper, mis toimiks vähemalt paaril uudisteportaalil
*Toimuks andmete salvestamine andmebaasi
*Andmebaasist kuvatakse kasutajaliideses kõige populaarsemad sõnad.
*Sõnadele klikkides on võimalik vaadata viimaseid selle sõnaga seotud uudiseid


   
   
'''Must have:'''
'''Must have:'''
   
   
*Toimiv scraper
*Toimiv scraper, mis liigub mööda meie poolt valitud uudisportaalide pealkirju
*Graafiline kasutajaliides
*Graafiline kasutajaliides
*Keelevalik (Radio button)
*Keelevalik. Mis keeles olevid uudisportaale otsingus kasutatakse (Radio button)
*Riigi valik (CheckBox)
*Riigi valik. kust pärit uudisteportaale otsingus kasutatakse (CheckBox)
*Veebilehe valik (CheckBox)
*Uudisportaalide valik (CheckBox). Vaikimisi kõik valitud
*Alateema valik (CheckBox)
*Alateema valik (CheckBox). Vaikimisi kõik valitud.
*Uudiste otsing sõnade kaudu
*Uudiste otsing sõnade kaudu
*Otsingute ajalugu
*Otsingute ajalugu
Line 88: Line 103:
'''Nice to have:'''
'''Nice to have:'''
   
   
*Fake news blokeering
*võimaliku "Fake news"'i blokeering või eraldi märgistamine
*Kuupäeva valik
*Kuupäeva valik. Oleks tore kui kasutaja saaks minna ajas tagasi ja vaadata, mis mingil ajahetkel populaarne sõna oli.
* Võiks olla võimalik visualiseerida sõnade populaarsuse muutumist ajateljel. Ajateljele võiks olla võimalik lisada mitu sõna, et nende liikumisi omavahel võrrelda.
*Ilusa ja mugava disainiga kasutajaliides
*Ilusa ja mugava disainiga kasutajaliides
*Kasutajakonto, et salvestada oma valikuid
*Kasutajakonto loomise võimalus, et salvestada oma valikuid.  Lisab kasutajale mugavust juhul kui ta enamasti eelistab teha ühesuguseid valikuid.

Revision as of 01:53, 9 November 2017

LIIKMED

  • Ove Kangur
  • Heidi Koppel - projektijuht

BLOGI

  • 10.10.2017 - Panime meeskonna kokku
  • 10.10.2017 - Rääkisime ideest
  • 21.10.2017 - Panime idee paika
  • 3.11.2017 - Tegime analüüsi ja joonistasime andmebaasi


IDEE

Teeme web scraper'i, mis laeb alla lehekülgede html failid, loeb nendest välja informatsiooni ning salvestab saadud info andmebaasi ning peab järge selle üle mis lehedel on käidud ning mis lehtedele, mis ajal tuleb veel(uuesti) minna.

Kasutajaliidese, kust saab valida milliseid lehekülgi tõmmata ningteha päringuid.

Kui aega üle peaks jääma siis võiks esimese asjana teha selle automaatseks nii, et ta kontrollib kas interneti ühendus on olemas ja näiteks iga päev kell 12:00 ning hakkab ise tööle (või esimesel võimaluses kui arvuti on sisse lülitatud ja internetiühendus olemas). Kui siis ka veel igav on siis rakendada mõnda (masinõppe) algoritmi või lihtsamat statistikat, mis leiaks infost midagi huvitavat ja teeks näiteks iga päev mingi kokkuvõtte/raporti ning saadab selle mailile.

TEHNOLOOGIA

C#

WPF

SQL

LINQ päringukeel

Entity Framework

ANALÜÜS

Miks ja mida me teeme?

Tänases suures infohulgas on raske leida üles asjalikku informatsiooni. Kliki-näljas meedia toodab palju sisutühje või kollaseid uudiseid, mille sorteerimine on tüütu. Meie rakendus annab kasutajale võimaluse saada kiiresti ülevaate aktuaalsetest teemadest ajakirjanduses. Rakendus hoiab kokku kasutaja aega ja aitab vältida kokkupuudet mõttetute pealkirjadega, mis tema igapäevast uudisvoogu risustavad.

Teeme töölaua rakenduse, mis võimaldab kuvada kõige populaarsemaid uudisteemasid praegusel hetkel ja ka otsida sõna järgi kõige populaarsemaid uudiseid, mis selle sõnaga on seotud. Ideaalis aitab rakendus soovi korral eemaldada ka “kollaste uudiste” tundemärkidega pealkirju.

Meie kasutaja on inimene, keda häirivad uudisteportaalide "kollased" pealkirjad ja kes tahab kiiret ülevaadet, et mis on praeguse hetke põhiteemad.

Kuidas meie rakendus toimib?

Rakendus kammib läbi uudiseid edastavaid veebilehti ja toob välja populaarsemad sõnad praegusel ajahetkel. Rakendus avab veebilehe uudistearhiivi ja loeb sealt sisse uudiste pealkirjad. Sealjuures välistab rakendus enam levinud sidesõnad, artiklid jms väheinformatiivsed sõnad. Rakendus tõstab esile sõnad, mille esinemissagedus on oluliselt suurem kui nende ajalooline keskmine. Kasutaja saab valida erinevate riikide uudisteportaalide ning keelte vahel.

Kasutaja saab graafilissse kasutajaliidesesse sisenedes koheselt vaadata populaarsemaid sõnu. Kui sõnale klikkida, siis saab vaadata viimaseid uudiseid, mis selle sõnaga seostuvad. Samuti saab kasutaja sisestada otsingusse sõnu ja leida nii viimaseid seotud uudiseid. Uudiseid saab kasutaja filtreerida riigiti ja alateema kaupa (poliitika, tehnoloogia, majandus jms.). Samuti saab kasutaja soovi korral valida, milliseid veebilehti otsingu jaoks kasutatakse. Vaikimisi on kasutatud kõik meie poolt valitud veebilehed.

Võimalik on vaadata viimaste otsingute ajalugu. Kaalume ka kasutajakonto loomise võimalust, et rakendus jätaks meelde konkreetse kasutaja valikud/eelistused.

Kuidas me oma rakendust ehitame?

  • Kasutame programeerimiskeelt C#
  • Kasutame Entity Frameworki andmebaasi loomiseks ja sellega suhtlemiseks.
  • Esialgu plaanime kasutada Code First lähenemist.
  • Kasutame MVVM arendusmustrit, eraldada kasutajaliidese ja andmebaasi ehitamist. Nii saame töötada ühel ajal ja kõik pole ühes failis koos.
  • Kommenteerime oma koodi, et pärast retsenseerijatel oleks ka võimalik aru saada kuidas rakendus töötab.

Milline on tööjaotus?

Oleme tiimis kahekesi ja kavatseme üldiselt kirjutada koodi koos. Erinevatele probleemidele lahenduste otsimise jaotame omavahel ära ja siis valime võimalike lahenduste seast koos selle, mis meie jaoks kõige paremini töötab ja loomulikult selle, mille kirjutamisega hakkama saame.

Mis tundub meile hetkel kõige raskem teostada?

  • MVVM arendusmustri korralikult kasutamine tundub hetkel keeruline, aga loodame, et kui reaalselt tööle hakkame ja näeme, milliseid tükke meie rakenduse jaoks on vaja kokku panna saab selgemaks kuhu miski kuulub.
  • Andmebaasi graafilise liidesega ühendamine. Loodame, et praktikumides ja loengutes tehtud on piisav ka meie rakenduse jaoks. Tähtis on, et varume selle jaoks piisavalt aega.
  • Ideaalis oleks väga praktiline ja ka hetkel maailmas tomuvaga hästi haakuv kui saaksime luua mingit sorti "Fake News" blokeeringu või siis märguande. Selle teostamine tundub aga päris raske. Esmapilgul tundub, et selline eristamine vajaks väga põhjalikku tekstianalüüsi. Proovime leida vähemalt mõne tunnuse, mille abil "fake news" päris uudistest eristada.


Millised on töö etapid?

  • Valime veebilehed, mida töödelda. Peame vaatama, et valim oleks piisavalt suur ja need esindaksid erinevaid maailmavaateid.
  • Mõtleme välja, millises vormis saadud andmed salvestada
  • Kirjutame valmis andmete tõmbamise programmi
  • Kirjutame skripti mis võtab toorandmetest välja meid huvitava info
  • Salvestame andmed andmebaasi
  • Loome kasutajaliidese
  • Kirjutame filtrid andmete kuvamiseks
  • Kirjutame otsingu.
  • Ühendame andmebaasi graafilise liidesega
  • Äkki leiame oma rakendusele mõne kõlavama nime

Tähtis on kiiresti alustada ja kõigile vajalikele koostisosadele esialgsed lahendused välja pakkuda. Nii saame paremini hinnata, mille peale võib meil kõige rohkem aega kuluda. Hetkel me ei kujuta hästi ette kui töömahukas iga etapp on. Loodetavasti see aitab meil tööga õigeaegselt valmis jõuda.

Prototüübi esitlemiseks tahaksime, et oleks valmis järgmised asjad:

  • Scraper, mis toimiks vähemalt paaril uudisteportaalil
  • Toimuks andmete salvestamine andmebaasi
  • Andmebaasist kuvatakse kasutajaliideses kõige populaarsemad sõnad.
  • Sõnadele klikkides on võimalik vaadata viimaseid selle sõnaga seotud uudiseid


Must have:

  • Toimiv scraper, mis liigub mööda meie poolt valitud uudisportaalide pealkirju
  • Graafiline kasutajaliides
  • Keelevalik. Mis keeles olevid uudisportaale otsingus kasutatakse (Radio button)
  • Riigi valik. kust pärit uudisteportaale otsingus kasutatakse (CheckBox)
  • Uudisportaalide valik (CheckBox). Vaikimisi kõik valitud
  • Alateema valik (CheckBox). Vaikimisi kõik valitud.
  • Uudiste otsing sõnade kaudu
  • Otsingute ajalugu

Nice to have:

  • võimaliku "Fake news"'i blokeering või eraldi märgistamine
  • Kuupäeva valik. Oleks tore kui kasutaja saaks minna ajas tagasi ja vaadata, mis mingil ajahetkel populaarne sõna oli.
  • Võiks olla võimalik visualiseerida sõnade populaarsuse muutumist ajateljel. Ajateljele võiks olla võimalik lisada mitu sõna, et nende liikumisi omavahel võrrelda.
  • Ilusa ja mugava disainiga kasutajaliides
  • Kasutajakonto loomise võimalus, et salvestada oma valikuid. Lisab kasutajale mugavust juhul kui ta enamasti eelistab teha ühesuguseid valikuid.