Meeskond:MinuRaamat

From EIK wiki

Meeskond: MinuRaamat

Meeskonna liikmed

  • Erkko Kebbinau

Idee

Juba pikemat aega on mul olnud mõte, et võiks proovida veebi arendada. Mul on hea meel, et selle aine käigus mul see võimalus avanes.

Usun, et veel paljudel peale minu on teinekord mõte osta mõnda raamatut. Raamatupoodides aga ei pruugi seda õiget raamatut olla või on see liiga kallis. Küll aga võib leiduda keegi, kellel just see raamat on üle ja sooviks selle raamatu edasi müüa. Idee ongi on luua veebileht, kus kasutajad saavad isiklikke raamatuid osta ja müüa.

Lahendus realiseeritakse ASP .NET tehnoloogiat kasutades

Analüüs

Üldine kirjeldus

Tegemist on veebirakendusega, kus inimesed saavad panna müüki raamatuid, mida nad enam endale ei soovi ning osta raamatuid, mida nad endale soovivad. Ost/müük käib ainult kasutajalt-kasutajale, mingit keskset poodi ei tehta. Raamatuid saab veebilehel sirvida igaüks, kuid kõigi funktsionaalsuste kasutamiseks on vaja luua kasutajakonto.

Eesmärk

Selle projekti eesmärgiks minu jaoks on õppida paremini tundma C# programmeerimiskeelt, ASP .NET raamistikku, veebilehe ja andmebaasi omavahel suhtlema panemist ning ka veebirakenduse turvamist. Antud projektist saadud teadmisi ja kogemust saab kindlasti ka tulevikus hästi ära kasutada

Funktsionaalsed nõuded

Konto registreerimine

  • Kasutaja registreerimisel tuleb täita järgmised väljad: eesnimi, perenimi, isikukood, kasutajanimi, e-mail, parool, parool uuesti
  • Kasutajakonto loomisel kasutatakse Captchat

Kasutajaandmete muutmine

  • Võimalik on muuta järgmisi andmeid: e-mail, parool
  • Kasutajakonto on võimalik deaktiveerida

Autentimine ning välja logimine

  • Kasutaja autentitakse e-maili ja parooliga
  • "Logi välja" nuppu vajutades logitakse kasutaja välja ning suletakse kõik sessioonid

Võimalikud staatused raamatul

  • Mitteaktiivne (kohe pärast lisamist, enne avalikustamist)
  • Müügil (avalikustatud müük, võimalik sirvida ja osta)
  • Broneeritud (Võimalik sirvida ja soovikorvi lisada, kuid broneerida ei saa. Võimalik lisada "Jälgimisnimekirja", saadetakse e-mail kui staatus muutub "broneeritud" -> "müügil")
  • Tehing sooritatud (müüja on saanud raha kätte ja ostja on saanud raamatu, raamat eemaldatakse kõikide kasutajate soovikorvist)

Raamatu lisamine süsteemi

  • Raamatut saab lisada ainult sisseloginud kasutaja
  • Raamatut lisades tuleb täita vähemalt järgnevad väljad: Raamatu pealkiri, Raamatu autori perenimi, Keel
  • Raamatut lisades saab täita järgmised lisaväljad: Raamatu autori eesnimi, Raamatu kokkuvõte, Raamatu seisukord, Raamatu kategooria, Raamatu hind, Foto(d) raamatust, Kas on raamatusarjast (valik jah/ei, "jah" puhul lisaväli sarja nime kirjutamiseks), Kommentaar
  • Raamat läheb esialgu staatusesse "Mitteaktiivne". Selles staatuses olevaid raamatuid saab kasutaja eemaldada ja aktiveerida.
  • Pärast raamatu avalikuks tegemist läheb raamat staatusesse "Müügil"

Lisatud raamatu andmete muutmine

  • Raamatu andmeid muutes saab muuta järgmisi välju: Raamatu autori eesnimi, Raamatu kokkuvõte, Raamatu keel, Raamatu seisukord, Raamatu kategooria, Raamatu hind, Kas on raamatusarjast, Kommentaar
  • Saab lisada/eemaldada fotosid

Raamatu eemaldamine süsteemist

  • Raamatu saab süsteemist eemaldada koos kõikide selle väljadega
  • Raamatu eemaldamisel ei eemaldata andmebaasist välja, vaid muudetakse deaktiveerituks (väli endDate täidetakse)
  • Raamatu eemaldamine logitakse

Raamatute sirvimine

  • Nii sisseloginud kui ka sisselogimata kasutajad saavad "Müügil" staatuses raamatuid sirvida
  • Koormuse vähendamiseks saab raamatut uuesti sirvida iga 10 sekundi tagant (ilmselt tuleb kasutada ajaxit)
  • Raamatuid saab tulemusi filtreerida järgmise väljade järgi: Raamatu autori eesnimi, Raamatu autori perenimi, Raamatu pealkiri (või selle osa, vähemalt 5 tähemärki), Raamatusari, Seisukord, Raamatu hind(vahemik), Keel, Raamatu kategooria
  • Raamatuid peab saama sorteerida järgmiste väljade järgi (üks väli korraga): Raamatu autori perenimi, Raamatu pealkiri, Seisukord, Raamatu hind, Raamatu kategooria
  • Raamatute sirvimise vaates kuvatakse järgnevad väljad: Raamatu autori eesnimi, Raamatu autori perenimi, Raamatu pealkiri, Raamatu hind, Raamatusari, Seisukord
  • Lisaks üldisele raamatute listile peab olema võimalik listis raamatul klikkida, et näha detailset infot koos ülejäänud väljadega

Raamatu soovikorvi lisamine

  • Raamatuid saab lisada soovikorvi
  • Raamat võib olla soovikorvis paljudel kasutajatel, kuni müümine on aktiivne. Kui raamat eemdaldatakse või müüakse, kaob raamat kõikide kasutajate soovikorvist
  • Soovikorvis võib olla mitu raamatut
  • Soovikorvis olevad raamatud grupeeritakse müüa põhiselt, et saaks osta samalt müüjalt mitu raamatut korraga
  • Ostu saab sooritada endiselt ka üks raamat korraga
  • Soovikorvist saab raamatuid eemaldada

Raamatu(te) broneerimine ja ostmine

  • Osta saab soovikorvis olevaid raamatuid
  • Raamatuid saab osta ükshaaval või müüjapõhiselt grupeerituna mitu tükki korraga
  • Pärast ostmise kinnitamist broneeritakse raamat ning müüja saab selle kohta märke. Müüja peab valima, kas ta on nõus raamatut müüma. Müüja näeb ostja andmeid.
  • Kui müüja pole nõus raamatut müüma, saab ostja selle kohta märke ning ostjal eemaldatakse raamat soovikorvist
  • Kui Müüja on nõus raamatut müüma, läheb raamat staatusesse "Broneeritud"
  • Raamat saab olla broneeritud vaid ühele kasutajale
  • Kui müüja on nõustunud raamatut müüma, peavad nii ostja kui müüja tegema süsteemi märkme vastavalt kas raha kättesaamise või raamatu kättesaamise kohta
  • Raamat märgitakse staatusesse "Tehing sooritatud", kui mõlemad on vajaliku kätte saanud ja süsteemi sellekohase märke teinud.

Sõnumite saatmine kasutajate vahel

  • Kasutajad saavad üksteisele saata sõnumeid
  • Sõnumid on privaatsed ja nähtavad ainult sõnumi saatjale ja sõnumi saajale
  • Sõnumeid kustutada/muuta ei saa

Kasutaja tegevuste logimine

  • Logida on vaja järgmised tegevused (aeg, kasutaja, IP):
    • Kasutajakonto loomine
    • Kasutajakonto muutmine
    • Kasutajakonto kustutamine
    • Müüdava raamatu lisamine
    • Müüdava raamatu andmete muutmine
    • Müüdava raamatu eemaldamine süsteemist
    • Raamatu "Soovilisti" lisamine
    • Raamatu "Soovilistist" eemdaldamine
  • Logifailid eraldatakse päeva põhiselt

Problemaatilised osad

  • Internet Exploreri disain
  • Raamatu üleandmise ning maksmise loogika


Tööjaotus

Erkko teeb üksi kõik osad.


Must-have funktsionaalsused

  • Kasutajate loomine
  • Kasutajaandmete muutmine
  • Raamatute lisamine süsteemi
  • Raamatute sirvimine (autori, pealkirja, ilmumisaasta jms järgi)
  • Raamatute ostmine
  • Kasutaja tegevuste logi
  • Rakendus töötab korrektselt Firefox ja Chrome brauseritega
  • Foto lisamine raamatu kohta


Nice-to-have funktsionaalsused

  • IE tugi
  • Soovitud raamatute list (saadetakse teade (e-mail, võibolla tulevikus SMS), kui süsteemi ilmub soovitud raamatute listis olevate andmetega ühtiv raamat)
  • Kulleriteenus
  • Kasutajatevaheline suhtlus (messages)
  • Ostetud/lisatud raamatute ajalugu
  • Raamatu broneerimine (mingiks kindlaks ajaks, müüjaga kokkuleppel)
  • Süsteemi monitooring
  • Autentimine ID-kaardi ja mobiil-ID'ga
  • Mitme foto lisamine korraga
  • Raamatute otsingul, lisamisel, muutmisel pakutakse juba süsteemis olevaid andmeid
  • Kasutajate rating nii müümiste kui ostmiste kohta + kommentaarid (kas müüja on usaldusväärne või ei)
  • Jälgimisnimekiri (broneeritud raamatud; saadetakse teade, kui "Broneeritud" raamat muudetakse staatusesse "Müügil")
  • E-maili aadressi verifitseerimine
  • Wishlist
  • Hinnangute andmine müüjatele/ostjatele


Prototüüp

Prototüüp on allalaetav aadressil: code.zip

Lõpptoode

Lõpptoode on allalaetav aadressil: code.zip