Sunteți pe pagina 1din 2

InfoAcademy

Ionut Cristian Morar 2008

Cisco Networking Academy


www.infoacademy.net

PROIECT FINAL
Se va construi un mini-magazin virtual (desigur, unul simplificat) cu urmatoarele facilitati:

design:
o design-ul site-ului este lasat la latitutinea dezvoltatorului. Singurele impuneri sunt:
zona de sus a paginii sa contina intotdeauna un titlu/banner/etc, in orice pagina a site-ului.
Acesta va contine si doua link-uri unul pentru vizualizarea cosului de cumparaturi si altul
pentru zona de administrare
zona din stanga a paginii sa contina intotdeauna lista de produse, extrasa din baza de date;
fiecare nume de produs va face link catre pagina de detalii produs. Exceptie face zona de
administrare a site-ului, unde lista de produse nu mai trebuie afisata in stanga
zona principala (de continut) a paginii se va schimba in functie de operatia curenta (ex:
afisare detalii produs, afisare continut cos cumparaturi etc)

baza de date
o tabela cu produse; fiecare produs are denumire, descriere
detaliata si pret (nu exista categorii)
o tabela cu utilizatori/parole, folosita pentru restrictionarea
accesului in zona de administrare a site-ului

BANNER/TITLU
lista
produse

continut

functionalitate
o la click pe un produs din lista este afisata o pagina cu descrierea detaliata a produsului, pretul
acestuia si un buton de adaugare in cosul de cumparaturi. Acest ultim buton trimite catre pagina de
afisare a cosului de cumparaturi. Atunci cand produsul exista deja in cos, i se incrementeaza
cantitatea
o in pagina de afisare a continutului cosului de cumparaturi:
fiecare produs din cos va putea fi sters integral sau i se va putea modifica cantitatea. Pagina
va contine elementele de formular HTML necesare (nu sunt impuse anumite tipuri de
elemente cerinta se poate realiza in mai multe moduri)
pagina va dispune de un buton de cumparare, la apasarea caruia este afisat un formular care
solicita detaliile cumparatorului: nume, adresa, numar de telefon. Dupa completarea si
expedierea acestui formular se trimite mail catre admin cu produsele cumparate si detaliile
cumparatorului (alegeti una dintre adresele voastre de mail pentru teste)

administrare
o site-ul va dispune de o zona de administrare (accesibila, de exemplu, cu URI-ul /admin), ce afiseaza
un formular de login. Autentificarea se va efectua pe baza tabelei SQL cu utilizatori/parole. Va rog
ca baza de date pe care mi-o trimiteti impreuna cu proiectul sa contina deja un cont admin cu parola
admin (ca sa decurga mai repede procesul de testare a proiectului).
o odata administratorul autentificat, el are acces la unul sau mai multe formulare de administrare de
produse (le structurati cum va este mai la indemana), ce permit urmatoarele functii:
afisarea listei produselor disponibile, cu posibilitatea stergerii fiecaruia din baza de date (se
vor adauga, pentru fiecare produs, elementele de formular HTML necesare ex: checkbox pt
fiecare si un singur buton de stergere, sau cate un buton de stergere in dreptul fiecarui produs
etc)
adaugare de nou produs

Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptul
de proprietate intelectuala detinut de InfoAcademy.

InfoAcademy

Ionut Cristian Morar 2008

Cisco Networking Academy


www.infoacademy.net

editarea unui produs existent


adaugare de produse prin importarea unui fisier XML uploadat de catre admin
exportarea listei de produse intr-un fisier XML
o se va prevedea o modalitate de logout din zona de administrare
Cerinte suplimentare:
lucrul cu MySQL se va face folosind extensia PDO sau interfata orientata pe obiect a extensiei mysqli
generarea/citirea fisierelor XML se va efectua folosind SimpleXML sau DOM
cosul de cumparaturi va fi modelat sub forma unui obiect. Va fi creata clasa Cos (sau cum doriti sa o numiti
nu tin la nume) care dispune de metode de adaugare de produse cu cantitatile lor, de modificare de
cantitate pentru un produs din cos, de eliminare de produse etc. (toate operatiile pe care le constatati
necesare)
Sugestii:
- incercati ca valorile care nu se schimba de-a lungul proiectului sa le definiti ca constante; pe acestea le
plasati intr-un fisier separat, pe care apoi il includeti oriunde este nevoie. (ex: adresa catre care se trimite
mail la cumparare)
- cosul de cumparaturi poate fi tinut in $_SESSION sau in MySQL. Atentie insa in primul caz sa incarcati
clasa Cos inainte de a porni sesiunea!
- pentru a pastra banner-ul si lista de produse in fiecare pagina afisata, se poate proceda in mai multe
moduri. Unul dintre ele este sa construiti un fisier numit sa zicem - index.php, care afiseaza bannerul
si lista de produse, si care apoi include alt fisier (in functie de caz) care genereaza partea de continut. In
aceste conditii, numele fisierului ce trebuie inclus trebuie specificat prin URL. Exemplu:
localhost/index.php?page=cos va determina includerea in partea de continut a fisierului cos.php, ce
afiseaza continutul curent al cosului de cumparaturi. Aveti grija insa sa validati parametrii primiti prin
URL!
- trimiterea de mail se face folosind functia PHP mail(), iar setarea "outgoing server"-ului se face in
php.ini cu directiva SMTP iata link catre cele cateva directive de configurare legate de mail:
http://www.php.net/manual/en/mail.configuration.php
Pentru avansati, incercati sa adaugati si poze pentru produse. Imaginile le puteti stoca in baza de date, sau le
puteti salva intr-un director si doar le referiti din baza de date. In aceste conditii, formularul de introducere de
produs din zona de administrare va trebui sa contina si un camp pt upload de poza, iar tabela de produse va mai
trebui sa contina un camp.

Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptul
de proprietate intelectuala detinut de InfoAcademy.