Meeskond:MinuRaamat: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ekebbina (talk | contribs)
Ekebbina (talk | contribs)
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 39: Line 39:
*Raamatut saab lisada ainult sisseloginud kasutaja
*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 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, Foto(d) raamatust, Kas on raamatusarjast (valik jah/ei, "jah" puhul lisaväli sarja nime kirjutamiseks), Kommentaar
*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.
*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üügis"
*Pärast raamatu avalikuks tegemist läheb raamat staatusesse "Müügil"


'''Lisatud raamatu andmete muutmine'''
'''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, Kas on raamatusarjast, Kommentaar
*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
*Saab lisada/eemaldada fotosid


'''Raamatu eemaldamine süsteemist'''
'''Raamatu eemaldamine süsteemist'''
*Raamatu saab süsteemist eemdalda koos kõikide selle väljadega
*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 eemaldamisel ei eemaldata andmebaasist välja, vaid muudetakse deaktiveerituks (väli endDate täidetakse)
*Raamatu eemaldamine logitakse  
*Raamatu eemaldamine logitakse  
Line 55: Line 55:
*Nii sisseloginud kui ka sisselogimata kasutajad saavad "Müügil" staatuses raamatuid sirvida
*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)
*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, Keel, Raamatu kategooria
*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 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, Raamatusari, Seisukord
*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 kommentaaride ja fotodega
*Lisaks üldisele raamatute listile peab olema võimalik listis raamatul klikkida, et näha detailset infot koos ülejäänud väljadega


'''Raamatu soovikorvi lisamine'''
'''Raamatu soovikorvi lisamine'''
Line 71: Line 71:
*Osta saab soovikorvis olevaid raamatuid
*Osta saab soovikorvis olevaid raamatuid
*Raamatuid saab osta ükshaaval või müüjapõhiselt grupeerituna mitu tükki korraga
*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
*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 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"
*Kui Müüja on nõus raamatut müüma, läheb raamat staatusesse "Broneeritud"
*Raamat saab olla broneeritud vaid ühele kasutajale
*Raamat saab olla broneeritud vaid ühele kasutajale
*Seejärel peavad nii ostja kui müüja tegema süsteemi märkme vastavalt kas raha kättesaamise või raamatu kättesaamise kohta
*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.  
*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'''
'''Sõnumite saatmine kasutajate vahel'''
Line 128: Line 128:
*Kasutajate rating nii müümiste kui ostmiste kohta + kommentaarid (kas müüja on usaldusväärne või ei)
*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")
*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: [http://enos.itcollege.ee/~ekebbina/MinuRaamatSolution.zip code.zip]
==Lõpptoode==
Lõpptoode on allalaetav aadressil: [http://enos.itcollege.ee/~ekebbina/MinuRaamatSolution.zip code.zip]

Latest revision as of 21:14, 26 January 2015

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