ITV0110 4. töö 2010

Allikas: Lambda

See on 2010 aasta arhiiv, mitte hetkel kehtiv ülesanne!

Mis tuleb teha

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

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

Kui sa juhtumisi ei ole Facebooki kasutaja, siis tee endale konto, lisa sõpru ja uudiseid 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:

  • 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.
  • Kasutajate loetelu vaatamine ja loetelus olevate kasutajate sõpradeks lisamine.
  • 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.

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 pildi upload ja piltide kuvamine kasutajate juures.
  • 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).
  • Uudiste lisamine ja uudiste feed, st saad näha loetelu oma sõprade uudistega.

Lisaks neile funktsionaalsustele (ja ka nende asemel) võib lisada muid huvitavaid mittetriviaalseid funktsionaalsusi, mis annavad siis samuti punkte lisaks baas-seitsmele.

Reaalses rakenduses hädavajalikud asjad, millega meie praksis aga ei pea tegelema (kuid ei ole ka keelatud ja korralikult tehtuna võib anda lisapunkte):

  • Juba sisestatud info muutmine ja kustutamine.
  • Paroolid ja turvaküsimused (sql injection jne)
  • Pikkade loetelude jagamine lehekülgedeks.
  • 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.