Sunteți pe pagina 1din 48

UNIVERSITATEA DIN ORADEA FACULTATEA DE TIINE MASTER SPECIALIZAREA: MATEMATIC APLICAT N INFORMATIC FORMA DE NVMNT: ZI

LUCRARE DE DISERTAIE

Coordonator tiinific: Lector univ. Dr. Oros Horea Absolvent: Bizu Gheorghe

ORADEA

2011

UNIVERSITATEA DIN ORADEA FACULTATEA DE TIINE MASTER SPECIALIZAREA: MATEMATIC APLICAT N INFORMATIC FORMA DE NVMNT: ZI

BAZE DE DATE RELAIONALE N APLICAIA DESENEZ.NET

Coordonator tiinific: Lector univ. Dr. Oros Horea

Absolvent: Bizu Gheorghe

ORADEA
2

2011
Cuprins
Capitolul I Introducere.............................................................................................................4 1.1. Ce este Desenez.net?........................................................................................................4 1.2. Structura site-ului.............................................................................................................5 1.3. Ce spun desenatorii despre site?......................................................................................6 Capitolul II Desenez.net partea public................................................................................8 2.1. Ce poate / nu poate face utilizatorul simplu?...................................................................8 2.2. nregistrarea pe site..........................................................................................................9 2.3. Accesarea contului.........................................................................................................10 2.4. ncrcarea desenelor pe site...........................................................................................11 2.5. Desene pe site.................................................................................................................12 2.6. Comentarii la desene......................................................................................................14 2.7. Notarea desenelor i a desenatorilor..............................................................................15 2.8. Profilul desenatorului.....................................................................................................16 Capitolul III Desenez.net administrator i moderatori........................................................18 3.1. Panoul administratorului................................................................................................18 3.1.1. Operaii asupra conturilor...........................................................................................18 3.1.2. Statistici.......................................................................................................................19 3.1.3. Operaii asupra desenelor............................................................................................20 3.1.4. Operaii asupra comentariilor......................................................................................21 3.1.5. "Categorii" i "tehnici"................................................................................................22 3.1.6. Optimizri...................................................................................................................22 3.2. Pagina moderatorului.....................................................................................................23 Capitolul IV Baza de date a aplicaiei - teorie i practic......................................................23 4.1. Pe scurt...........................................................................................................................24 4.2. Ce este o baz de date?..................................................................................................24 4.3. Crearea i accesarea bazei de date.................................................................................24 4.4. Structura bazei de date...................................................................................................26 4.4.1. Categorii......................................................................................................................26 4.4.2. Cutri.........................................................................................................................27 4.4.3. Comentarii...................................................................................................................27 4.4.4. Desene.........................................................................................................................28 4.4.5. Profile..........................................................................................................................28 4.4.6. Ratings........................................................................................................................29 4.4.7. Tehnici........................................................................................................................29 4.4.8. Users............................................................................................................................30 4.5. Lucrul cu baza de date...................................................................................................30 4.5.1. Pe scurt........................................................................................................................30 4.5.2. Prelucrarea datelor ce urmeaz a fi stocate.................................................................30 4.5.3. Salvarea datelor n baza de date..................................................................................35 4.5.4. Extragerea datelor din baza de date............................................................................35 4.5.5. Modificarea datelor din baza de date..........................................................................40 4.5.6. Legturi ntre tabelele bazei de date...........................................................................42 ..............................................................................................................................................43 Capitolul V Concluzii............................................................................................................43 5.1. Desenez.net n cifre........................................................................................................44 5.2. Evoluia site-ului............................................................................................................44 5.3. Puncte slabe....................................................................................................................45 5.4. Puncte tari......................................................................................................................46
3

5.5. Desenez.net pentru mine................................................................................................46 Referine....................................................................................................................................47

Capitolul I Introducere
1.1. Ce este Desenez.net? www.desenez.net este o comunitate online de desenatori romni (din ar i strintate). Site-ul este destinat pasionailor de desen i pictur, att amatori ct i profesioniti, care vor s mprteasc prin Internet munca lor, s primeasc feedback util, s schimbe informaii, s nvee din experiena altora i s-i fac prieteni artiti.

Figura 1.1. Cele mai apreciate desene

A pornit la nceputul anului 2010 i a crescut treptat ajungndu-se n luna mai 2011 la peste 740 de desenatori, peste 5600 de desene ncrcate pe site de ctre desenatori i peste 10000 de comentarii. n figura 1.1. putei vedea unele dintre cele mai apreciate desene. Iniial site-ul era destinat numai desenelor n creion, ns la cerina utilizatorilor, la nceputul anului 2011 am introdus i posibilitatea ncrcrii de desene digitale, picturi, etc. Astfel, n momentul de fa, desenele pot fi afiate fie dup categoria n care sunt introduse, fie dup tehnica utilizat (creion, digital, pictur, etc.) Traficul site-ului are o tendin crescnd, acum nregistrndu-se un numr de 500-1000 vizitatori / zi i ntre 5000-1000 de pageviews / zi. Aplicaia se dezvolt continuu, utilizatorii pot s participe cu idei, sugestii i nemulumiri prin intermediul paginii de Contact sau pe forumul site-ului. Seciunile Lecii i Concurs sunt un plus pentru utilizatorii dornici s-i dezvolte talentul i s intre n competiii cu ali desenatori. 1.2. Structura site-ului Site-ul are o seciune principal (www.desenez.net - cea pe care o vom analiza n aceast lucrare) la care se adaug forumul de discuii (www.forum.desenez.net am folosit platforma SEO-Board. Vezi: [1]), blogul (www.blog.desenez.net am folosit platforma Wordpress. Vezi: [2]) i chat-ul (http://desenez.net/index.php?action=chat vezi: [3]).

Figura 1.2. Prima pagin a site-ului Design-ul simplu (vezi figura 1.2.), pe 3 coloane se dorete a fi ct de uor de utilizat. Sus apare banner-ul i logo-ul site-ului (realizate de utilizatorul vevalentin student la arte). Meniul orizontal conine legturi spre cele mai importante pagini din site: Desene aici sunt afiate toate desenele, cele mai recente primele Upload pagin pentru ncrcarea desenelor pe site Lecii seciune de lecii (momentan nu foarte consistent) Concurs aici se desfoar concursurile Desenez.net i se pstreaz o arhiv a ctigtorilor Forum forumul de discuii al comunitii Blog blog-ul nostru, loc de anunuri, articole, etc. Vrei desen? seciune n care desenatorii pot s-i prezinte oferta lor, iar doritorii pot hotr cu cine s colaboreze Links legturi spre alte site-uri RSS feed RSS prin FeedBurner de la Google Login / Logout intrarea sau ieirea din cont Contact pagin prin care utilizatorii pot trimite mesaje administratorului

n coloana central apare coninutul n funcie de pagina selectat, iar n coloanele laterale legturi spre categorii de desene, tehnici, desenatori, desene i alte faciliti: cutare, nscriere la nouti, etc. Att coloanele ct i banner-ul conin mici spaii publicitare n care apar reclame de la partenerii Desenez.net (Google, Art & Hobby Center Bucureti, etc). Paginile, coninutul lor i legtura cu baza de date vor fi tratate n capitolul urmtor.

Figura 1.3. Forumul site-ului (detaliu) 1.3. Ce spun desenatorii despre site?

La ntrebarea Ce reprezint pentru tine Desenez.net? pus pe forum (figura 1.3) au rspuns civa desenatori ce au cont i utilizeaz frecvent acest site (vezi [4]). Iat cteva opinii: rami: ...acest site pentru mine e un cerc mare de prieteni pe care mi l-am dorit dintodeauna i pe care nu l-am avut i prin care ne leaga pe toi aceeai prietenie desenul... "sper ca si peste 2 ani sa fie la fel placut si mai ales sa nu devina plictisitor..." vladaalexia: Pe mine acest site m motiveaz s-mi dezvolt ct mai mult posibil latura aceasta artistic, iar n momentul cnd vd postate desene care mie mi par performante, precum cele ale lui dutchess, ale tale, gabri, somehope, etc nu-mi doresc dect s muncesc mai mult, s realizez lucrri ct mai frumoase, pentru c aa simt c v respect i pe voi. Este ceva de genul "trebuie s m ngrijesc pentru a nu-i jigni pe cei din jurul meu"... chiar dac nu v cunosc simt c am o legtur sufleteasc cu toi cei de aici, indiferent dac sunt ludat sau criticat, aici gsesc mult sinceritate somehope: Eu nu mai tiu cum am ajuns pe acest site. Cred c tastasem titlul "lecii de desen" i iat! Apoi, am vzut c oameni mai mult sau mai puin pricepui, oameni pe care nu-i cunosc mai ales), pot posta lucrri de-ale lor i pot fi ncurajai sau chiar ajutai cu nite sfaturi. Am zis c nu-mi stric s nv cte ceva. numai c, mie nu-mi prea spune lumea unde greesc. Asta m cam deranjeaz pentru c eu mi pot vedea greelile. Cred c a vrea s-mi spun cineva ce anume trebuie s fac s nu le mai repet. Pe scurt, pe mine m-a ajutat s perseverez i de foarte multe ori faptul c am fost apreciat (mai mult sau mai puin), m-a ncurajat s incerc i mai mult. am ajuns astfel acum s studiez probleme profunde ale artei. i asta numai datorit site-ului. (continuarea i alte preri pot fi citite pe forum vezi [4]) Khim: mie mi se pare un grup de prieteni legai mpreun de pasiunea pentru desen, ncercnd s se fac remarcai, s nvee i s aprecieze arta creat de ceilali

Capitolul II Desenez.net partea public


2.1. Ce poate / nu poate face utilizatorul simplu? Figura 2.1. Portrete digitale de vevalentin Site-ul are un sistem de conturi, anumite pagini i opiuni fiind disponibile numai membrilor. Prin utilizatorul simplu vom nelege: o persoan care acceseaz site-ul, dar nu este nregistrat (nu are cont). Desenez.net nu este un site nchis, ci ofer mult chiar pentru un utilizator care nu are cont. Nu toi oamenii sunt pasionai de desen, dar multora le place s admire munca altora Astfel, pe www.desenez.net, utilizatorul simplu: poate admira desenele (n figura 2.1. avem un exemplu de vizualizare a desenelor) poate citi comentariile scrise la desene poate recomanda prietenilor desene care i-au plcut poate accesa profilul desenatorilor poate accesa seciunea Lecii poate citi comentariile de pe forum poate citi i comenta informaiile de pe blog poate s se nregistreze i s devin astfel membru al comunitii poate folosi pagina de Contact pentru a scrie mesaje administratorului nu poate comenta i vota desenele nu poate ncrca desene pe site nu poate s participe la concursuri nu poate scrie articole pe blog, nici comentarii pe forum nu poate avea drepturi de administrare
8

2.2. nregistrarea pe site Pentru a beneficia de mai multe opiuni i pentru a se altura comunitii, un utilizator simplu trebuie s se nregistreze accesnd pagina de creare a contului aflat aici: http://desenez.net/index.php?action=newuser. Procedura de nregistrare a contului este simpl. Pagina conine un formular (vezi figura 2.2.) n care se cer datele despre utilizator: numele i prenumele (nu apar pe site), nickname (nume de utilizator), parola contului i adresa de e-mail. Contul este creat, pe adresa de e-mail a utilizatorului fiind trimis un link de activare a contului. Dac utilizatorul face click pe link-ul primit contul devine activ, altfel nu deine calitatea de membru al site-ului.

Figura 2.2. Crearea contului Un membru (n plus fa de opiunile utilizatorului simplu): poate s comenteze desenele publicate pe site poate ncrca desene poate acorda note desenelelor nccate de ali utilizatori i poate completa profilul public cu date despre el
9

poate s tearg desene ncrcate n contul lui poate participa la concursurile Desenez.net poate primi drepturi de administrare (poate deveni moderator, decizia aparinnd administratorului) poate fi membru activ al forumului poate s-i prezinte oferta de desene la comand poate s-i promoveze blog-ul personal sau site-ul la decizia administratorului poate s fac parte din juriul concursurilor Desenez.net poate participa cu coninut pentru seciunea de Lecii nu poate s-i acorde note desenelor ncrcate de el.

nclcarea termenilor i condiiilor poate duce la suspendarea temporar a contului sau la pierderea definitiv a dreptului de membru. Administratorul decide n ce condiii un utilizator i poate pierde calitatea de membru. 2.3. Accesarea contului Accesarea contului se face fcnd click pe opiunea Login din meniul orizontal. Va aprea formularul de login (vezi figura 2.3.), n care utilizatorul trebuie s-i introduc nickname-ul i parola. Exist i opiunea de a rmne logat.

Figura 2.3. Pagina de login Dup intrarea n cont, opiunea Login din meniul principal va fi nlocuit automat de opiunea Logout fcnd click aici se poate prsi contul. De asemenea, n partea stng apare meniul personal cu opiunile (vezi figura 2.4):

10

Figura 2.4. Meniul personal - Pagina mea pagina care apare la intrarea n cont - Desenele mele pagina cu desenele ncrcate de utilizator - ncarc desene pentru upload de desene pe site - Comentarii pentru vizualizarea comentariilor primite la desenele ncrcate - Profil vizualizarea i modificarea datelor profilului public - Fotografie personal aici se poate ncrca / schimba poza personal din profil - Schimb parola utilizatorul i poate schimba oricnd parola - Ieire echivalentul opiunii Logout din meniul de sus. Pe pagina de login utilizatorilor care nu au cont li se sugereaz s-i fac unul, iar celor care au probleme la accesarea contului s foloseasc pagina de Contact pentru a lua legtura cu administratorul. 2.4. ncrcarea desenelor pe site

Figura 2.5. Formular de ncrcare a desenelor

11

Formularul din pagina de upload (figura 2.5.) este disponibil numai pentru utilizatorii autentificai. La ncrcarea unui desen utilizatorul selecteaz fiierul din calculator, scrie un titlu, alege o categorie potrivit n care s apar desenul i tehnica n care l-a realizat. Apoi completeaz descrierea (ajut la cutarea desenului pe site) i apas butonul ncarc. Dup ncrcarea desenului utilizatorul este informat c desenul s-a ncrcat cu succes, dar nu v aprea pe site dect dup ce va fi aprobat de administratorul site-ului. Desenul poate fi aprobat fie de administrator, fie de un moderator. Numai desenele active apar pe site. Un desen poate fi oricnd activat sau dezactivat. Verificarea desenelor de moderatori sau administrator este o msura de verificare a coninutului ncrcat. Sunt aprobate numai desene (nu i poze care nu au legtur cu desenul) care au un coninut potrivit tuturor vrstelor. Desenul aprobat apare n seciunea Desene, dar i n categoria i tehnica selectate la ncrcarea lui. Ultimele desene apar i pe prima pagin i de asemenea, la profilul utilizatorului. 2.5. Desene pe site Practic, Desenez.net este o colecie de desene ncrcate de muli desenatori. Ele sunt ncrcate pe Internet cu scopul de a fi admirate, comentate, notate. n realizarea site-ului am urmrit ca totul s fie ct mai simplu, astfel nct utilizatorul s gseasc ceea ce caut ct mai uor. Exist o seciune principal n care apar toate desenele active pe site: Desene (n meniul de sus). Desenele apar sub form de miniaturi (figura 2.6.), sub ele fiind titlul i autorul desenului.

12

Figura 2.6. Desene n miniatur vs. desen complet Sunt 18 desene pe pagin. n josul paginii apare navigatorul de pagini (ofer posibilitatea de a trece la alt pagin). (vezi Figura 2.6.) Fcnd clik pe miniatura unui desen se deschide pagina desenului n care desenul apare complet, apar detalii suplimentare (descrierea desenului, nota) i comentariile la desenul respectiv. O alt modalitate de a vedea desenele este alegnd o categorie de desene, din meniul din stnga. Desenele sunt filtrate dup categorie i apar ca pe pagina de desene, cu paginaie. De asemenea se pot vizualiza desenele dup tehnica utilizat, n acest caz desenele apar filtrate, ceea ce poate fi util pentru pasionaii de o anumit tehnic (pictur, de exemplu). Figura 2.7. Exemplu de cutare i rezultate ale cutrii

13

Pentru a ajuta utilizatorul s descopere desene mai uor, exist i funcia de cutare, desenele fiind filtrate dup cuvintele cheie introduse de utilizator. (Figura 2.7.) Exemple de utilizare a funciei de cutare: cutarea de desene publicate de un desenator se poate face simplu cutnd nickname-ul acestuia (admin, GhitaB, somehope, etc.) cutarea dup un anumit titlu de desen (Lumea crilor) cutarea dup cuvinte cheie din descrierea desenului (copaci, desen simplu, etc) Utilizatorul nu bifeaz opiuni de cutare ci doar scrie textul i i apar desenele.

2.6. Comentarii la desene Un lucru important pentru fiecare desenator este s primeasc feedback la desenele lui. Fr posibilitatea de a putea comenta i primi comentarii, site-ul ar mult mai puin atrgtor pentru desenatori. Pe pagina desenului apare lista de comentarii active la acel desen. Pentru utilizatorii autentificai apare posibilitatea de a comenta desenul prin intermediul unui formular. Pentru utilizatorii care nu au cont sau nu s-au logat le apare un mesaj n care li se spune c numai utilizatorii autentificai pot comenta (dac au cont s se logheze, dac nu s-i fac un cont). A fost dorina desenatorilor de a nu primi comentarii de la anonimi, ci doar de la persoane cu cont pe site. Iniial comentariile venite din partea persoanelor neautentificate erau etichetate ca i comentarii din partea unui utilizator cu nickname-ul anonim. Din cauz c unii anonimi erau troll-i, am avut de ales ntre moderarea comentariilor (s nu apar comentarii dect dup ce au fost aprobate) i excluderea posibilitii de a comenta neautentificat.

14

Figura 2.8. Introducerea de comentarii la un desen Formularul de comentarii arat ca n figura 2.8. Comentariile trimise apar instant pe site. Fiecare desenator are dreptul s tearg comentarii primite sau scrise la desenele lui. n pagina personal fiecare desenator poate vedea o list cu comentariile primite la desenele lui. De asemenea, n meniul din partea stng apare o list cu cele mai recente comentarii. Comentariile terse de un utilizator nu dispar din baza de date, ci doar se dezactiveaz, ele putnd fi citite, reactivate sau terse de administrator. 2.7. Notarea desenelor i a desenatorilor O adevrat provocare a fost crearea unui sistem ct mai bun pentru un clasament al desenelor i desenatorilor. Nu toi utilizatorii au rbdarea sau dorina de a vedea desene slabe, ci dimpotriv. Era nevoie de un sistem care s rein n acelai timp notele fiecrui desen i desenator, dar s nu lase ca un utilizator s poat vota de mai multe ori n aceeai zi. Am gsit un script care tocmai asta fcea. A fost destul de uor de implementat rezultatul fiind foarte bun. Am adugat restriciile: nici un desenator nu poate s-i noteze propriul profil sau propriile desene nici un utilizator neautentificat nu poate s noteze

Restriciile au fost adugate la dorina desenatorilor (erau utilizatori care notau intenionat, din rea voin cu note mici desene bune). Sub fiecare desen (pe pagina desenului) apare nota (numrul de stelue) ca n figura 2.9.
15

Figura 2.9. Note

Figura 2.10. Top desenatori Analog, pentru pagina de profil. Se pot vota i desenatorii. Pa baza notelor primite de desene s-a realizat topul desenelor (vezi Figura 1.1.), iar pe baza notelor de profil topul desenatorilor. (vezi Figura 2.10.)

2.8. Profilul desenatorului n Figura 2.11. se poate observa structura paginii de profil a desenatorului. Profilul conine: titlul, nota desenatorului, link spre desenele postate pe site, poza personal (opional), data naterii, locaia, list de hobby-uri, data nregistrrii pe site, rubrica despre mine, website. Urmeaz o list cu miniaturi ale desenelor publicate recent.

16

Figura 2.11. Pagin de profil Informaiile din pagina de profil pot fi schimbate de utilizatorii autentificai, accesnd opiunea "Modificare profil". Mai multe informaii despre opiunile utilizatorilor i legturile cu baza de date pe care le implic acestea gsii n capitolul IV.

17

Capitolul III Desenez.net administrator i moderatori

3.1. Panoul administratorului Site-ul are nevoie de administrare (a conturilor, a desenelor, a comentariilor, etc). Pentru ca aceast munc s se realizeze ct mai uor am creat i o parte de administrare a site-ului. Administrarea se face att de ctre administrator (admin) ct i de ctre moderatori.

Figura 3.1. Meniul din panoul administratorului Contul de administrator are nickname-ul admin i beneficiaz de toate drepturile de utilizator la care se adaug drepturile de administrare. La logare administratorului i este deschis panoul de administrare sau "Pagina administrator" care se caracterizeaz prin mai puine elemente grafice, dar care conine destul de multe opiuni necesare bunului mers al site-ului. Practic, pe pagina de administrare apare meniul care cuprinde opiunile de administrare. (vezi Figura 3.1.), n funcie de opiunea selectat n acest meniu va aprea coninutul (sub acest meniu). 3.1.1. Operaii asupra conturilor

18

Figura 3.2. Panoul administratorului - Seciunea "Conturi" n seciunea "Conturi" apar detaliile conturilor utilizatorilor nregistrai pe site i opiuni cu privire la ele. Prima coloan reprezint ID-ul userului (n list apar sus ultimii desenatori nscrii), a doua coloan reprezint numele, a treia: nickname-ul, apoi adresa de e-mail i data nregistrrii pe site. n utlima coloan pentru fiecare utilizator exist posibilitatea de a edita informaiile contului ("Edit"), tergerea definitiv a contului se face de la "Del".

n dreptul conturilor active apare opiunea [X] echivalent cu dezactivarea contului, n dreptul conturilor inactive apare opiunea [A] pentru activarea contului. Administratorul poate activa sau dezactiva un cont, folosind aceste opiuni. La dezactivarea contului dispar de pe site informaiile despre desenator, desenele i comentariile, utilizatorul nemaiputnd s-i acceseze contul att timp ct este inactiv. Dezactivarea se poate face la cererea desenatorului sau ca o msur de disciplinare a utilizatorului. Activarea contului are ca rezultat reactivarea desenelor, comentariilor i informaiilor despre desenator.

3.1.2. Statistici Figura 3.3. Statistici (n panoul administratorului)

19

n seciunea "Statistici" administratorul poate afla numrul de conturi, numrul de conturi active, numrul de conturi inactive, numrul de desene, numrul de desene active i numrul de desene inactive. (Vezi figura 3.3.) Un cont inactiv este inactiv fie pentru c utilizatorul nu a activat contul dup nregistrare (nu a fcut click pr link-ul primit prin e-mail), fie a fost dezactivat de ctre administrator (pentru nclcarea regulamentului site-ului sau din alte motive). Proiectul fiind nc n dezvoltare, s-ar putea aduga i alte statistici pe parcurs. De exemplu: statistici privind activitatea utilizatorilor, grafice, etc. Site-ul este nscris i n Google Analytics care ofer o bogat serie de informaii despre numrul de vizitatori, sursele de trafic, cuvintele cheie cutate n motoarele de cutare, etc. Informaiile sunt prezentate i sub form de grafice foarte utile pentru cel ce administreaz site-ul. Pentru mai multe informaii vezi [10].

3.1.3. Operaii asupra desenelor

20

Figura 3.4. Seciunea "Desene" din panoul administratorului

n seciunea "Desene" (vezi Figura 3.4.) administratorului i este afiat o list cu cele mai recente desene. n list apare desenul nsoit de informaiile despre desen (titlu, categorie, descriere, autor, data publicrii pe site). De asemenea, apar opiuni pentru ters, activat sau dezactivat desene. Un desen nu apare pe site dect dac este activat de administrator sau moderator.

3.1.4. Operaii asupra comentariilor Tot din seciunea de administrare a site-ului se pot i edita, terge, activa sau dezactiva comentariile publicate pe site. Se lucreaz ca n cazul desenelor i al conturilor. n figura 3.5. putem vedea cum arat seciunea "Comentarii". Este vorba de un simplu tabel care conine ID-ul comentariului, ID-ul comentatorului, ID-ul desenului la care s-a comentat, textul comentariului i opiunile cu privire la fiecare comentariu. Fiecare desenator poate s-i tearg comentariile primite la desenele ncrcate de el pe site. n realitate, comentariile nu sunt terse definitiv din baza de date, ci doar dezactivate.

21

Figura 3.5. Administratorul poate citi att comentariile active ct i cele "terse" de utilizatori. 3.1.5. "Categorii" i "tehnici"

Desenele ncrcate pe site pot fi filtrate dup categoria n care au fost ncrcate i tehnica folosit la desenat. De exemplu: un desenator poate ncrca un potret desenat n creion, specificnd categoria Portrete i tehnica n creion. Site-ul este creat n aa fel nct se pot crea / modifica oricnd categoriile i tehnicile existente. Acest lucru poate fi realizat de administrator ntr-un mod simplu folosind seciunile "Categorii" i "Tehnici" din panoul administratorului. Cele dou seciuni sunt foarte asemntoare. Fiecare cmp poate fi editat i n fiecare caz poate fi adugat un nou element (fie el categorie sau tehnic). Vezi figura 3.6.

Figura 3.6. 3.1.6. Optimizri Opiunea CurBD a fost creat pentru optimizri ale coninutului bazei de date. Mai precis, se utilizeaz pentru a cura baza de date de desenele i comentariile utilizatorilor ale cror conturi au fost terse definitiv. Utilizarea acestei opiuni nu este neaprat necesar.

22

3.2. Pagina moderatorului Momentan, aplicaia are un singur administrator, dar mai muli moderatori. Moderatorii au drepturi suplimentare fa de utilizatorii obinuii, dar mai limitate dect administratorul. Administratorul poate oferi oricrui desenator drept de moderator. Moderatorii ajut la bunul mers al comunitii. Deocamdat, ei pot s activeze sau s dezactiveze desenele recente publicate pe site. Ficare desen trebuie aprobat nainte de a aprea pe site, iar existena mai multor moderatori face ca timpul de ateptare al fiecrui desen s fie mai scurt. De asemenea, ei in legtura cu administratorul semnalnd eventualele nereguli de pe site. Panoul moderatorului este simplu: el se adaug paginii personale care apare la logare fiecrui desenator. Vezi figura 3.7.

Figura 3.7. Pagina moderatorului Informaii aprofundate despre cum funcioneaz aceste opiuni, ct i despre legtura lor cu bazele de date aflai n capitolul IV.

Capitolul IV Baza de date a aplicaiei - teorie i practic

23

4.1. Pe scurt Aplicaia a fost realizat n limbajul de programare PHP mpreun cu sistemul de gestiune a bazelor de date MySQL, folosind mediul integrat de dezvoltare NetBeans IDE. [5] Cel care dorete s nvee PHP, poate consulta un top cri recomandate aici [6], de asemenea pentru MySQL aici [7]. n acest capitol se prezint baza de date a site-ului, accentul punndu-se pe rolul acesteia n aplicaie i modul n care se realizeaz operarea cu informaiile pe care le stocheaz. De asemenea, sunt oferite cititorului i informaii teoretice (provenite din diverse cri de specialitate), necesare dezvoltrii unui asemenea proiect. 4.2. Ce este o baz de date? "O baz de date, uneori numit i banc de date, reprezint o modalitate de stocare a unor informaii i date pe un suport extern (un dispozitiv de stocare), cu posibilitatea extinderii uoare i a regsirii rapide a acestora." [8] 4.3. Crearea i accesarea bazei de date Crearea unei baze de date se poate face cu ajutorul codului: CREATE DATABASE databasename iar crearea tabelelor se poate face cu: CREATE TABLE tablename ( column1name description, column2name description ) Mai multe detalii gsii aici: [9].

24

Figura 4.1. phpMyAdmin Dup crearea bazei de date, acesul administratorului la baza de date se face prin intermediul aplicaiei phpMyAdmin folosind numele de utilizator i parola pentru baza de date a siteului. (Vezi figura 4.1.) Administratorul site-ului deine informaiile despre link-ul spre aplicaia phpMyAdmin, numele de utilizator i parola. Pentru conectarea i deconectarea aplicaiei la baza de date am creat dou funcii PHP: function bd_conectare() { $con = mysql_connect("deseneznet.db.7470009.hostedresource.com", "user", "parola"); if (!$con) { die('Could not connect: ' . mysql_error()); } //selectare bd mysql_select_db("bazadedate", $con) or die ('Error: '.mysql_error ());// } function bd_deconectare() { mysql_close(); }

25

unde user, parol i bazadedate sunt fictive (n codul site-ului apar informaiile reale, care nu se public din motive lesne de neles).

Figura 4.2. Tabelele bazei de date 4.4. Structura bazei de date Baza de date a aplicaiei conine tabelele din figura 4.2. care sunt componente att ale blogului (cele cu prefixul "wp_"), ale forumului (cele cu prefixul "seo_board_") i cele ale seciunii realizate de mine. Tabelele care in de aplicaia realizat de mine sunt: - categorii - conine categoriile de desene - cautari - memoreaz cutrile fcute de utilizatori pe site - comentarii - pentru comentariile scrise de desenatori la desenele de pe site - desene - conine informaiile despre desenele nccate pe site - profile - aici sunt memorate informaiile de la profilul desenatorilor de pe site - ratings - pentru voturi la desene i profile - tehnici - conine tehnicile de desenat - users - tabelul cu conturile nregistrate pe site Vom lua pe rnd fiecare tabel pentru a vedea n amnunt structura lui, apoi vom trata relaiile dintre aceste tabele. Tabelele platformelor Wordpress i Seo Board nu fac obiectul discuiei. 4.4.1. Categorii Tabelul "Categorii" are cmpurile: ID, NUME, SEONAME (vezi figura 4.3.) i stocheaz categoriile de desene de pe site. Adugarea, editarea i tergerea categoriilor de desene se pot face din partea de administrare a site-ului.

Figura 4.3. Categorii

26

Iat cteva exemple de categorii: 8 Martie, Abstract, Animale, Anime, Arhitectur, Caricaturi, Celebriti, Comics, Copaci, Cosmos, Creaturi, Cretine, Cri, De colorat, Diverse, Exerciii, Fantasy, Fashion, Fenomene, Flori, Iarn, Iluzii optice, Maini, Natur static, Nume, Oameni, Obiecte, Peisaje, Portrete, Primvar, Psihedelic, Schie, Simple, Toamn, Var. 4.4.2. Cutri Tabelul "Cautari" are cmpurile: ID i CAUTARE (vezi figura 4.4.) i stocheaz cutrile de desene fcute de utilizatori n caseta "Caut desen" (vezi figura 2.6.) din partea stnga sus a site-ului.

Figura 4.4. Cutri Iat cteva exemple de cutri: rose, loganuri, masini noi, alex.z, animale, papuci, etc. 4.4.3. Comentarii Tabelul "Comentarii" are cmpurile: ID, IDUSER (ID-ului utilizatorului care a scris comentariul), IDDESEN (ID-ul desenului comentat), TEXT (comentariul propriu-zis), DATA (data scrierii comentariului), ACTIV (0 - comentariu inactiv - nu apare pe site, 1 - comentariu activ - comentariul apare pe site). Vezi figura 4.5. Exemple de comentarii: "gigel 42: "TattooEs: superb,trebuia doar centrat pe foaie... (2011-06-09)",

splendit ghita,mai uploadeaza desene plz (2011-06-09)", "somehope: he he, are

un farmec aparte. imi place privirea foarte mult.si parul a iesit foarte fain! (2011-06-06)", etc. n figurile din aceast seciune se pot observa i proprietile cmpurilor.

27

Figura 4.5. Comentarii n momentul de fa sunt peste 14000 de comentarii pe site. Numrul lor este, evident, n cretere. 4.4.4. Desene Am putea spune c tabelul cu desene este cel mai important. El reprezint esena site-ului. Cmpurile lui sunt: ID, IDUSER, IDTEH (ID-ul tehnicii de desen), IDCATEGORIE (ID-ul categoriei n care a fost ncrcat desenul), NUME (sau titlul desenului), DESCRIERE (descrierea desenului), APROBAT (0 sau 1 - cele cu 1 apar pe site), DATA (data ncrcrii desenului), FIIER (numele fiierului din folderul cu desene corespunztor desenului ncrcat). Vezi figura 4.6. pentru detalii despre proprietile cmpurilor.

Figura 4.6. Desene Exemplu de nregistrari de desene:

Tabelul numr peste 7000 de nregistrri, pe site fiind aproape 6000 de desene active. Desenele inactive sunt, fie neaprobate, fie "terse" de utilizatori. 4.4.5. Profile

28

Profilul completat de fiecare desenator este memorat n acest tabel. El coninnd: ID, IDUSER, DATANAS (data naterii desenatorului), LOCATION (unde se afl desenatorul), HOBBY (list de hobby-uri ale utilizatorului), DESPREMINE (cteva cuvinte despre desenator), WEBSITE (link spre site-ul, blogul, contul de hi5 sau facebook al desenatorului), POZA (fotografia personal a desenatorului).

Figura 4.7. Profile Tabelul memoreaz toate versiunile profilului fiecrui desenator aa nct administratorul poate afla la un moment dat toate informaiile profilului scrise de cineva. Pe site apare doar profilul cel mai recent. 4.4.6. Ratings Acest tabel memoreaz notele acordate la desene i profiluri. Este realizat de programatorul care a creat scriptul de votare cu stelue. Figura 4.8. Ratings

4.4.7. Tehnici Analog tabelului "Categorii" exist tabelul "Tehnici" n care apar tehnicile de desen. De exemplu: n creion, Pictur, Creioane colorate, Pix, etc.

29

Figura 4.9. Tehnici 4.4.8. Users Tabelul "Users" memoreaz conturile utilizatorilor nscrii pe site. Cmpul "nume" conine numele i prenumele utilizatorului (nu apar pe site), "nickname" este numele cu care utilizatorul apare pe site, parola este stocat criptat (md5). Adresa de e-mail a utilizatorului se memoreaz n cmpul "email", "data" reprezint data crerii contului, "cod" - este codul de activare al contului, "activ" este 1 cnd contul este activ sau 0 cnd contul este dezactivat.

Figura 4.10. Users

4.5. Lucrul cu baza de date 4.5.1. Pe scurt Paginile site-ului sunt create dinamic pe baza coninutului bazei de date. n aceast seciune vom vedea cum se introduc noi informaii n baza de date de ctre utilizatori, cum sunt procesate i stocate acestea i de asemenea cum sunt extrase pentru a aprea n paginile siteului. Accentul se va pune pe codul PHP i MySQL corespunztor operaiilor descrise deja (n mare parte) teoretic pn aici. 4.5.2. Prelucrarea datelor ce urmeaz a fi stocate Din motive de securitate, dar nu numai, datele ce urmeaz a fi stocate n baza de date sunt testate i prelucrate. De exemplu, parola contului nu este salvat n clar ci criptat folosind md5 (vezi [11]). De asemenea, pentru a evita "Injectarea SQL" (vezi [12]) s-a folosit funcia strip_tags [13].

30

Exemplu de folosire a funciei strip_tags() n aplicaie: Dup cum am spus deja, la crearea unui cont nou, utilizatorul introduce n cmpurile din formular datele personale printre care numele i prenumele (cmpul "Nume") i numele de utilizator (cmpul "Nickname"). nainte de stocare se elimin eventualul cod de injecie astfel: $nume = strip_tags($_POST['numesiprenume']); $nick = strip_tags($_POST['nickname']); Exemplu de folosire a funciei de criptare MD5: $parola_user = md5($parola_user); Datele introduse n baza de date sunt validate pentru a respecta cerinele, n caz contrar afindu-se mesaj de eroare. De exemplu: o adres de e-mail, nainte de a fi stocat este verificat cu funcia email_valid(). function email_valid($email) { if(eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zAZ]{2,3})?(\.[a-zA-Z]{2,3})?$', $email)) return true; else return false; } n mod asemntor, se fac verificri, testri i prelucrri ale informaiilor introduse de utilizatori n toate seciunile n care ei au acces: creare de cont, introducere de desene i comentarii pe site, etc. Aceste testri i prelucrri sunt absolut necesare, dar nu suficiente. n cazul adresei de e-mail exist exist i o testare dup stocare. Nu e suficient ca adresa s respecte forma unei adrese de e-mail, ea trebuie s existe i mai mult s fie a autorului contului. n cazul desenelor - ele apar pe site numai dup ce sunt aprobate de administrator sau moderatori. Un exemplu bun de validare a datelor introduse l gsim la crearea contului.
31

n codul de mai jos observm c pentru a crea contul trebuie respectate urmtoarele reguli, dei banale, totui necesare: - toate cmpurile s fie completate - parola s coincid cu parola rescris - parola s aib cel puin 6 caractere - adresa de e-mail s respecte forma unei adrese de e-mail - nickname-ul s nu fie utilizat deja de un alt utilizator - etc n fiecare caz de date invalide codul de mai jos d un mesaj de eroare specific, astfel nct utilizatorul s afle exact care este problema. Dup validare, datele sunt salvate n baza de date i se trimite un mail cu un link de activare a contului pe adresa de e-mail desenatorului. Numai dup ce se face click contul va fi activ. if($nume&&$nick&&$parola_user&&$parola_confirmata&&$email_user)//campuri necompletate? { if(strlen($nume)>50)//nume prenume > 50? { echo '<b>"Nume i prenume" maxim 50 caractere...</b>'; } else if(strlen($nick)>15)//nickname > 15? { echo '<b>"Nickname" maxim 15 caractere...</b>'; } else if(strlen($parola_user)<6||strlen($parola_confirmata)<6)//parola < 6? { echo "<b>O parol bun trebuie s aib minim 6 caractere.</b>"; } else //e-mail ok? if (email_valid($email_user))
32

if($parola_user==$parola_confirmata)//parole egale? { //cripteaza parole $parola_user = md5($parola_user); $parola_confirmata = md5($parola_confirmata); //INREGISTRARE USER //conectare bd_conectare(); //select $query = mysql_query("SELECT * FROM users WHERE nickname='$nick'"); $numrows = mysql_num_rows($query); if($numrows>0) { echo "<b>Trebuie s-i alegi un alt nickname. Este folosit deja de altcineva...</b>"; } else { $query = mysql_query(" INSERT INTO users VALUES ('','$nume','$nick','$parola_user','$email_user','$data_inregistrarii','$cod_activare','$acti v') "); //deconectare bd_deconectare(); //mesaj multumire, redirectare $to = $email_user; $subject = "Desenez.net - Cont creat"; $message = "Salut!

33

Contul tau a fost creat, dar pentru a-l putea folosi trebuie activat. Fa click pe link-ul urmator: http://www.desenez.net/index.php?action=activare&cod=".$cod_activare." Dupa activare te vei autentifica cu: Nickname: ".$nick." Parola: ".$parola_temp." Multumesc!"; $from = "donotreply@desenez.net"; $headers = "From: $from"; mail($to,$subject,$message,$headers); //print_r(error_get_last()); //EROARE ?> <div class="anunturi"><h3><i>Atenie!</i> Contul este creat dar trebuie activat. Pentru aceasta vei primi un mail cu un link de activare pe care trebuie s facei click. <i>S-ar putea ca mail-ul s ajung n folderul Spam</i>, deci verificai i acolo. Sar putea ca mesajul s ntrzie cteva minute. <br /> Contul va putea fi utilizat numai dup activare.</h3></div> <?php } } else echo "<b>Introducei corect parola! </b>"; else echo "<b>Adresa de e-mail invalid! </b>"; } else echo "<b>Completai toate datele! :)</b>";
34

4.5.3. Salvarea datelor n baza de date Dup ce s-a trecut cu succes de etapa de validare a datelor, numai apoi sunt salvate n baza de date. Exemplu de salvare a datelor n baza de date (la crearea contului, dup validarea datelor din formular): $query = mysql_query("INSERT INTO users VALUES ('','$nume','$nick','$parola_user','$email_user','$data_inregistrarii','$cod_acti vare','$activ')"); n cazul desenelor salvate: $query = mysql_query(" INSERT INTO desene VALUES ('','$autor','$teh','$categorie','$titlu','$descriere','$aprobat',curdate(), '$nume_fisier')"); n mod analog, au loc toate salvrile n baza de date. Mai multe despre comanda INSERT INTO gsii aici: [14]. 4.5.4. Extragerea datelor din baza de date Datele nu sunt salvate n baza de date pentru a rmne acolo, ci tocmai pentru a fi utilizate. Pe baza datelor din baza de date este generat coninutul din paginile site-ului. D vedem cteva exemple i modul de lucru. Exemplul 1: Afiarea celor mai recente comentarii n coloana din partea stnga a site-ului apar cele mai recente 20 de comentarii. Sunt puse acolo pentru utilizatorii care viziteaz frecvent site-ul i vor s fie la curent cu activitatea de pe site. Dintr-o privire, se pot vedea cele mai noi comentarii aezate unele sub altele, cele mai recente sus.

35

Comentariile vin din baza de date, mai precis tabelul "Comentarii", dup cum am vzut mai sus. Acest lucru se realizeaz la comanda scriptului din fiierul s_comentarii.php. Coninutul acestui fiier l vom analiza mai jos: i) se realizeaz conectarea la baza de date prin funcia bd_conectare(), al crei cod l-am artat mai sus.

<?php //CONECTARE bd_conectare(); ii) comanda MySQL SELECT, selecteaz cele mai recente 20 de comentarii din tabelul "Comentarii", dar care comentarii sunt active i sunt scrise la un desen activ (adic nu trebuie s apar pe site comentarii dezactivate, dar nici comentarii pentru desene care au fost dezactivate). Sunt luate n ordinea descresctoare a ID-ului, adic cele mai recente primele. //SELECT COMENTARII $select_comentarii = mysql_query(" SELECT c.text as c_text, d.fisier as c_desen FROM comentarii c inner join users u on c.iduser = u.id inner join desene d on c.iddesen = d.id WHERE c.activ = 1 and d.aprobat = 1 ORDER BY c.id DESC LIMIT 20 "); iii) Are loc deconectarea de la baza de date prin funcia bd_deconectare();
36

//DECONECTARE bd_deconectare(); ?> iv) Comentariile selectate sunt afiate ntr-o list, cu link spre desenul la care au fost publicate <ul> <?php while($tablou_comentarii = mysql_fetch_array($select_comentarii)) { $c_text = substr($tablou_comentarii['c_text'],0,35); $c_desen = $tablou_comentarii['c_desen']; echo "<li><a STYLE='text-decoration:none' href=\"index.php?action=desen&fisier=$c_desen\">$c_text...</a></li>"; } ?> </ul> Textul fiecrui comentariu este trunchiat la maxim 35 caractere, pentru a avea o dimensiune a coninutului care s nu strice aspectul site-ului. (Despre funcia substr putei citi aici: [15]). Exemplul 2: Afiarea categoriilor de desene Tot n coloana din stnga apare i o list cu categoriile de desene nsoite de numrul de desene din fiecare. Se procedeaz asemntor cu exemplul anterior, etragerea din baza de date fcndu-se de codul: $select_categorii = mysql_query(" SELECT c.id as cat_id, c.nume as cat_nume, count(d.id) as nr_desene
37

FROM categorii c inner join desene d on c.id = d.idcategorie GROUP BY d.idcategorie ORDER BY c.nume ASC "); Funcia count numr desenele din fiecare categorie (vezi [16]). Afiarea tehnicilor se realizeaz n mod analog.

Exemplul 3: Topul celor mai apreciate desene Pe baza notelor acordate de desenatori s-a construit topul celor mai apreciate desene. (vezi [17]). Iat codul care realizeaz extragerea din baza de date: $select_desen = mysql_query(" SELECT d.fisier as desene_fisier, d.id as desene_id, d.nume as desene_nume, round((r.total_value) / (r.total_votes)) as nota, r.total_votes as nr_note, r.total_value as total_nota FROM desene d inner join users u on d.iduser = u.id inner join ratings r on d.id = r.id WHERE u.activ = 1 and d.aprobat = 1 GROUP BY d.id ORDER BY nota DESC, total_nota
38

DESC LIMIT 240 "); Cele 240 de desene din topul desenelor sunt ordonate descresctor dup nota rotunjit i de asemenea descresctor dup total_nota, adic punctajul total acumulat de un desen (3 note de 5 stelue i una de 3 stele nseamn 3*5 + 3 = 18 puncte). Am ales aceast variant pentru a evita situaia cnd un desen cu un singur vot de 5 stele s apar naintea unui desen votat de 100 de ori, dar care are nota 4,99.

Exemplul 4: Extragerea desenelor innd cont de paginaie n cazul n care ar fi vorba de cteva desene numai, nu ar fi problem a le afia toate ntr-o pagin, ns cnd e vorba de mii de desene evident e nevoie de paginaie. n seciunea "Desene" apar toate desenele active postate pe site, cte 18 pe pagin. Pe scurt, n acest caz e nevoie: i) s tim pe ce pagin ne gsim: if(isset($_GET['pag'])) { $pag = $_GET['pag']; } else { $pag = 1; } ii) s stabilim numrul de desene de pe o pagin $d_per_p = 18; iii) s extragem coninutul innd cont de parametrii stabilii $li = ($pag - 1) * $d_per_p; $select_desen = mysql_query(" SELECT

39

d.fisier as desene_fisier, d.id as desene_id, d.nume as desene_nume, u.nickname as user_nickname FROM desene d inner join users u on d.iduser = u.id WHERE u.activ = 1 and d.aprobat = 1 GROUP BY d.id ORDER BY d.id DESC LIMIT $li, $d_per_p"); Mai multe despre "LIMIT" gsii aici: [18]. 4.5.5. Modificarea datelor din baza de date O alternativ la modificarea datelor din baza de date ar putea fi tergerea datelor vechi i nlocuirea cu nregistrri noi. Bineneles c aceasta nu ne convine, ca administratori ai unui site, cu att mai puin utilizatorilor care sunt dornici s aib totul ct mai uor la dispoziie. Un exemplu de actualizare sau modificare a nregistrrilor din baza de date este: Schimbarea parolei contului Utilizatorul poate s-i schimbe parola din meniul personal afiat n partea stng dup autentificare. S vedem cum se ntmpl acest lucru. Utilizatorul trebuie s fie logat pentru a putea avea acces la meniul personal. La accesarea opiunii "Modific parol" apare un formular n care se cere parola veche i parola nou de dou ori (pentru a fi siguri c a scris-o aa cum vrea). Parola veche introdus este comparat cu cea din baza de date i numai n cazul n care acestea coincid se trece la modificarea cmpului parola din tabelul users:

40

mysql_query("UPDATE users SET parola = '$parolanoua' WHERE nickname = '$user'"); Mai multe despre folosirea comenzii UPDATE gsii aici: [19]. Alte exemple asemntoare se gsesc n partea de administrare a site-ului: administratorul poate modifica informaiile introduse de utilizatori.

41

Figura 4.11. Schimbarea parolei contului

Figura 4.12. O schem simpl a bazei de date

4.5.6. Legturi ntre tabelele bazei de date

42

S-a anticipat deja n extragerea datelor din baza de date felul n care tabelele interacioneaz. Totui, o diagram a bazei de date poate fi mult mai uor de analizat i neles. O diagram realizat n BDDesigner 4 (vezi [20]) se gsete n figura 4.12.. Pe neles, relaiile din figur nseamn: Relaia 1: Un utilizator poate posta mai multe desene. ns, un desen poate avea un singur autor. Relaia 2: Un utilizator are un profil vizibil (cel mai recent), dei, dup cum am mai spus, n tabelul Profile se salveaz toate versiunile de profil ale fiecrui desenator. Relaia 3: Un utilizator poate scrie comentarii la desene. Relaia 4: Un desen poate fi comentat. Relaia 5: Un desen este realizat ntr-o tehnic dintre cele existente. n cazul n care se utilizeaz mai multe tehnici pentru acelai desen, desenul se va ncrca la tehnic mixt. Relaia 6: Un desen poate fi ncrcat ntr-o categorie dintre cele existente. Nu se pot asocia unui desen mai multe categorii, dar poate fi ncrcat n categoria "Diverse".

Capitolul V Concluzii

43

5.1. Desenez.net n cifre n momentul de fa (iunie 2011) aplicaia Desenez.net nseamn: - peste 6000 de linii de cod scrise n peste 80 de fiiere (excluznd cele peste 1000 de fiiere ale blogului i forumului) - peste 6000 de desene active ncrcate pe site de ctre cei aproape 800 de desenatori. - aproape 15000 de comentarii postate la desene - peste 10000 de cutri de desene nregistrate n baza de date (memorarea comentariilor s-a nceput destul de recent) - un spaiu ocupat pe server de aproximativ 2 GB (desenele sunt optimizate / redimensionate la ncrcarea lor pe site) - peste 200 de conturi inactive (dezactivate de ctre administrator sau neactivate de ctre utilizatori la crearea lor) i peste 1400 de desene inactive (dezactivate de ctre administrator, moderatori sau autori) - ntre 500 i 1000 de vizitatori unici pe zi, ntre 4000 i 10000 de vizualizri de pagini pe zi

5.2. Evoluia site-ului

44

Aplicaia a fost lansat pe Internet prin luna Martie 2010. innd cont de faptul c nu s-a pltit nici un ban pentru publicitate, graficul numrului de vizitatori pe lun (luat din statisticile oferite de Google Analytics) arat totui destul de bine (vezi figura 5.1.).

Figura 5.1. Graficul traficului site-ului oferit de Google Analytics Fiind eu, nsumi, un pasionat de desen, la nceput am fost singurul care publica desene. Cu timpul s-au adunat i alii, iar acum zilnic se creeaz conturi noi. Un grafic al numrului de conturi create n fiecare lun ncepnd cu Martie 2010 (cnd s-a lansat site-ului) vedei n figura 5.2. Figura 5.2. Graficul numrului de conturi create lunar
140 120 100 80 60 40 20 0 mar apr mai iun iul aug sept oct nov dec ian feb mar apr mai Nr conturi

n medie se creeaz 50 de conturi pe lun. 5.3. Puncte slabe - o mare parte dintre cei care i fac cont pe site au numai o slab activitate - o mare parte dintre desenatori sunt amatori - prea multe desene de o calitate artistica destul de slab - evoluia anevoias a codului site-ului pentru c lucrez singur i nu am o experien bogat n domeniu - e destul de greu a testa dac un desen aparine sau nu celui care l posteaz

45

- seciunea Lecii nu are un coninut prea bogat (nc) 5.4. Puncte tari - exist desenatori specialiti care ndrum nceptorii prin intermediul aplicaiei - tendina ascendent a graficului numrului de vizitatori, a numrului de desene, desenatori, comentarii, etc arat o evoluie a comunitii - existena moderatorilor care, mpreun cu administratorul, formeaz o bun echip pentru administrarea site-ului - concursurile de desen desfurate pe site - utlizatorii vechi pe site ajut i ei prin ndrumarea noilor venii 5.5. Desenez.net pentru mine Cred c timpul petrecut la realizarea acestui proiect m-a ajutat n mai multe privine: - aprofundarea cunotinelor de PHP i MySQL nvate n facultate - exersarea unor cunotine dobndite la master (cursul Baze de date relaionale) - am nvat multe lucruri noi n domeniul programrii web, dar i n domenii care au legtur cu aceasta (web design, SEO, etc.) - am descoperit noi persoane pasionate de desen - ctig material (din reclamele Google [21] i din parteneriatul cu Art & Hobby Center Bucureti) [22]. - Pe lng contul de administrator (admin) - vezi [23] - folosesc i un cont de simplu utilizator (GhitaB) - vezi [24]. Astfel, pot s simt, alturi de ceilali desenatori, beneficiile site-ului: i eu postez desene, primesc comentarii, note la desene i voturi la profil. La rndul meu, comentez desenele care-mi plac, cer informaii cnd e cazul, .a.m.d. Toate acestea m ajut s evoluez n ceea ce privete arta, s-mi fac noi prieteni / colaboratori, dar pe lng acestea pot s simt i lipsurile site-ului... n afar de cele semnalate de utilizatori. - Faptul c lucrez singur la acest proiect face ca evoluia aplicaiei s fie destul de nceat, ns atunci cnd apare o problem tiu exact unde trebuie s merg pentru a o remedia - cunosc structura ntregului cod i interaciunea lui cu elementele bazei de date. - Dac s-a realizat ceva cu acest site, sunt contient c e doar nceputul. Pe viitor, fiind impulsionat i de dorina utilizatorilor, doresc s adaug noi i noi elemente / funcionaliti astfel nct site-ul s devin unul puternic.

46

- Primul lucru care urmeaz s-l adaug cred c este: posibilitatea de a trimite mesaje private, iar n domeniul SEO - crearea de link-uri "frumoase" pentru motoarele de cutare (de exemplu: http://desenez.net/GhitaB n loc de http://desenez.net/index.php?action=profil&user=GhitaB) Avnd n vedere cele de mai sus i faptul c la nceputul lucrului nu tiam c acest site l voi prezenta la disertaie, sunt mulumit cu rezultatele obinute.

Referine
[1] http://www.seo-board.com/ - SEO-Board - forum software [2] http://wordpress.org/ - WordPress - web software [3] http://xat.com/ - a fun social networking site with the best online chat box [4] http://forum.desenez.net/index.php?a=vtopic&t=69 Topic - Ce reprezint pentru tine Desenez.net? [5] http://netbeans.org/ - NetBeans IDE [6] http://top-books.org/php - The Best PHP Books [7] http://www.kavoir.com/2009/06/best-mysql-books-to-learn-mysql-database-phpapplications.html [8] http://ro.wikipedia.org/wiki/Baz%C4%83_de_date [9] PHP 6 and MySQL 5 for Dynamic Web Sites, Larry Ullman, Peachpit Press (2008) [10] http://www.google.com/analytics/ - Statistici pentru site [11] http://ro.wikipedia.org/wiki/MD5 - Despre criptarea MD5 [12] http://php.net/manual/ro/security.database.sql-injection.php - SQL Injection [13] http://php.net/manual/en/function.strip-tags.php - funcia strip_tags() [14] http://dev.mysql.com/doc/refman/5.5/en/insert.html - INSERT INTO- MySQL [15] http://php.net/manual/en/function.substr.php - funcia substr [16] http://www.tizag.com/mysqlTutorial/mysqlcount.php - MySQL count [17] http://desenez.net/index.php?action=top-desene - topul celor mai apreciate desene [18] http://dev.mysql.com/doc/refman/5.0/en/select.html - "LIMIT" [19] http://dev.mysql.com/doc/refman/5.0/en/update.html - "UPDATE" [20] http://www.fabforce.net/dbdesigner4/ - BDDesigner 4

47

[21] https://www.google.com/adsense/ - Google AdSense [22] http://profiart.ro/ - Art & Hobby Center Bucureti [23] http://desenez.net/index.php?action=profil&user=admin - Profil admin [24] http://desenez.net/index.php?action=profil&user=GhitaB - Profil GhitaB

48

S-ar putea să vă placă și