ITV0110 4. töö: Andmebaasiga serverakendus: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
12. rida: 12. rida:


Edukaks arvestuseks pead realiseerima baasfunktsionaalsuse lihtsamad osad:
Edukaks arvestuseks pead realiseerima baasfunktsionaalsuse lihtsamad osad:
* Oma accoundi tegemine ja oma info sisestamine (parooli pole vaja realiseerida, kasutajatunnus aga küll). Accoundis pead saama anda vähemalt oma kasutajatunnuse, nime, emaili, soo, tutvumishuvi ja "muu info" vabatekstina.  
* Lingi lisamine.
* Kasutajate loetelu vaatamine ja loetelus olevate kasutajate sõpradeks lisamine.
* Lisatud linkide sorteeritud vaatamine: paremad eespool, kuvatakse korraga piiratud arv. "Parem" on lihtsamal juhul selline, millel upvotes-downvotes skoor on suurem.
* Oma sõprade loetelu vaatamine (võib olla integreeritud kasutajate loeteluga, st kasutaja juures on vastav märk, kui sa oled ta oma sõbraks lisanud.
* Lingi upvote ja downvote.
* Lingile kommentaari lisamine (ühel lingil võib neid olla kuipalju tahes), lameda listina ilma vastuste hierarhiata.
* Lingi kommentaaride vaatamine lisamisaja järgi sorteeritult, jällegi lameda listina ilma vastuste hierarhiata.
 


Nende osade korralik realiseerimine annab 7 punkti. Praktikumi ei arvestata, kui nendes osades on suuremad puudujäägid.  
Nende osade korralik realiseerimine annab 7 punkti. Praktikumi ei arvestata, kui nendes osades on suuremad puudujäägid.  


Järgmiste funktsionaalsuste lisamine annab täiendavalt punkte, kuni maksimaalse 15-ni:
Järgmiste funktsionaalsuste lisamine annab täiendavalt punkte, kuni maksimaalse 15-ni:
* Oma pildi upload ja piltide kuvamine kasutajate juures.
* Oma accoundi tegemine: kasutajanimi ja parool.
* Sõbraks soovimise kutse aktsepteerimine (st enne ei ole sõber, kui ta pole aktsepteerinud). Selleks pead muidugi realiseerima ka sõbrakandidaatide loetelu (mis võib jällegi olla integreeritud kasutajate loeteluga, lisades nende taha erimärgid (on sõber, soovib sõbraks (pluss aktsepteerimise nupp).
* Sisselogimine (sisselogitult peab siis olema näha kasutajanimi) ja lingi/kommentaari ning upvote/downvote lubamine ainult sisseloginud kasutajalt.
* Uudiste lisamine ja uudiste feed, st saad näha loetelu oma sõprade uudistega.
* Kommentaari ja lingi juures lisaja kasutajanime ja lisamisaja kuvamine.
 
* Lingi sisestamisel tagi lisamine lingile. Tagi võib alati vabalt valida.
Lisaks neile funktsionaalsustele (ja ka nende asemel) võib lisada muid huvitavaid mittetriviaalseid funktsionaalsusi, mis annavad siis samuti punkte lisaks baas-seitsmele.
* Tagide järgi linkide otsimine: kuvatakse ainult neid linke, millel on valitud/sisestatud tag.
* Tagide listi kuvamine.


Reaalses rakenduses hädavajalikud asjad, millega meie praksis aga <b>ei pea</b> tegelema (kuid ei ole ka keelatud ja korralikult tehtuna võib anda lisapunkte):
Reaalses rakenduses hädavajalikud asjad, millega meie praksis aga <b>ei pea</b> tegelema (kuid ei ole ka keelatud):
* Juba sisestatud info muutmine ja kustutamine.
* Juba sisestatud info muutmine ja kustutamine.
* Paroolid ja turvaküsimused ([http://xkcd.com/327/ sql injection] jne)
* Erinevad turvaküsimused ([http://xkcd.com/327/ sql injection] jne)
* Pikkade loetelude jagamine lehekülgedeks.
* Pikkade loetelude jagamine lehekülgedeks.
* Otsingud.
* Teksti/kasutaja/jne otsingud.
* Intelligentne uudistenäitaja, mis kuvab näiteks ainult N uuemat uudist.
* Intelligentne uudistenäitaja, mis kuvab näiteks ainult N uuemat uudist.
* Kasutajakonto tegemise kontrollid emaili ja captcha-ga.
* Kasutajakonto tegemise kontrollid emaili ja captcha-ga.

Redaktsioon: 8. november 2011, kell 11:25

Mis tuleb teha

Neljanda praktikumi ülesandeks on ehitada mini-reddit, kasutades selleks PHP-d ja MySQL-i (või Postgresqli).

Arusaadavalt on sinu loodav süsteem väga palju lihtsam, kui päris reddit, kuid baasfunktsionaalsus on tal sama.

Kui sa juhtumisi ei ole Redditi kasutaja, siis tee endale konto, upvote/downvote, lisa mõni link ja kommentaar ja tutvu süsteemiga: see ei ole praksi jaoks hädavajalik, kuid tuleb kasuks.

Praktikumi arvestamine ja hindamine

Praktikum annab maksimaalselt 15 punkti.

Edukaks arvestuseks pead realiseerima baasfunktsionaalsuse lihtsamad osad:

  • Lingi lisamine.
  • Lisatud linkide sorteeritud vaatamine: paremad eespool, kuvatakse korraga piiratud arv. "Parem" on lihtsamal juhul selline, millel upvotes-downvotes skoor on suurem.
  • Lingi upvote ja downvote.
  • Lingile kommentaari lisamine (ühel lingil võib neid olla kuipalju tahes), lameda listina ilma vastuste hierarhiata.
  • Lingi kommentaaride vaatamine lisamisaja järgi sorteeritult, jällegi lameda listina ilma vastuste hierarhiata.


Nende osade korralik realiseerimine annab 7 punkti. Praktikumi ei arvestata, kui nendes osades on suuremad puudujäägid.

Järgmiste funktsionaalsuste lisamine annab täiendavalt punkte, kuni maksimaalse 15-ni:

  • Oma accoundi tegemine: kasutajanimi ja parool.
  • Sisselogimine (sisselogitult peab siis olema näha kasutajanimi) ja lingi/kommentaari ning upvote/downvote lubamine ainult sisseloginud kasutajalt.
  • Kommentaari ja lingi juures lisaja kasutajanime ja lisamisaja kuvamine.
  • Lingi sisestamisel tagi lisamine lingile. Tagi võib alati vabalt valida.
  • Tagide järgi linkide otsimine: kuvatakse ainult neid linke, millel on valitud/sisestatud tag.
  • Tagide listi kuvamine.

Reaalses rakenduses hädavajalikud asjad, millega meie praksis aga ei pea tegelema (kuid ei ole ka keelatud):

  • Juba sisestatud info muutmine ja kustutamine.
  • Erinevad turvaküsimused (sql injection jne)
  • Pikkade loetelude jagamine lehekülgedeks.
  • Teksti/kasutaja/jne otsingud.
  • Intelligentne uudistenäitaja, mis kuvab näiteks ainult N uuemat uudist.
  • Kasutajakonto tegemise kontrollid emaili ja captcha-ga.

Tehnoloogilised nõuded

  • Kõik serverirakendused tuleb realiseerida PHP-s ja andmeid tuleb hoida kas MySQL-s või Postgresis. Pilte võib hoida failisüsteemis. Kui oled andmebaasinduses algaja, kasuta pigem MySQL-i, kui aga oled juba kogemusi omandanud ja sul on server, kus ise oled adminiõigustega, võiksid proovida Postgresi.
  • Rakendus peab olema võrgus vabalt brauseriga ligipääsetav, mitte lihtsalt töötama näiteks sinu laptopis.
  • Serverarvutina võid - nagu teises praktikumis - kasutada kas dijkstrat või omaenda vabalt valitud lemmikserverit.

Abi ja soovitusi

Esiteks: tutvu PHP ja SQL materjalidega kursuse lehel, mh Vorgurakendused 1 SQL naited loengust.

Teiseks vaata lihtsaid php ja mysql näiteid loengust.

Kolmandaks tasub tutvuda erinevate vormivälja-tüüpidega peale hariliku <input type=text>:

Muud kasulikud näpunäited lisatakse siia jooksvalt hiljem.

Siit leiad eelmise aasta versiooni: ITV0110 4. töö 2010