Implementarea Unei Retele DE Socializare
IMPLEMENTAREA UNEI REȚELE DE SOCIALIZARE
Introducere
Luând în considerare piramida lui Abraham Maslow ,socializarea este un proces vital,reprezentând cea de-a treia treaptă în ierarhizarea necesităților umane.Pe lângă satisfacerea nevoii de comunicare,de existența a unor relații interumane, socializarea are rol deosebit în formarea și modelarea personalității noastre.Încă de la naștere se poate observa dependența de ființele din jurul nostru,familia fiind primul contact social, cei care ne deschid larg usa spre supraviețuire și cunoastere.Apar apoi relații de prietenie,colegialitate,relații profesori-elevi,care influențeaza mediul de dezvoltare și gradul de șlefuire al propriei persoane.
Internetul este cel care a reușit să aducă procesul de socializare la un nivel superior.Pentru a schimba informații cu cei aflați la depărtare, mai mare sau mai mică,telefonul sau scrisoarea nu mai erau singurele alternative.Înainte ca internetul să-și câștige popularitatea,în anii ’80 apar primele chat-uri și rețele de socializare. Dacă în 1971 trimiterea primului email între doua calculatoare alăturate a fost o mare reușită,acum este doar un lucru banal,dar fără de care lumea ar fi un mediu mai dificil de adaptare.Primul chat,Talkomatic creat de Doug Brown și David R. Wolley,în 1974 reprezintă încă un pas în dezvoltarea posibilității de socializare prin intermediul internetului.
Astăzi, rețelele de socializare reprezintă un subiect de mare anvergură, din punct de vedere al dezvoltării, funcționalității, utilității și tehnologiilor implicate.Posibilitățile oferite sunt multiple,oamenii fiind încântați să comunice,să împartă fotografii, sau să-și primească informațiile necesare de pe aceeași sursă.Chiar dacă majoritatea doresc doar să-și mărească cercul de prieteni, sunt cazuri în care se trece limita simplelor conversații,tinerii reușind să-și găsească un loc de muncă,să învețe ceva nou, sau să se unească pentru îndeplinirea unui scop nobil,precum susținerea celor neajutorați.
Tehnologiile folosite în vederea realizării unor astfel de aplicații, sunt îmbinate cu măiestrie pentru a capta cât mai mulți utilizatori.La fel ca în orice alt domeniu al programării, web-ul este într-o continuă evoluție,dat fiind faptul că tehnologiile necesare sunt îmbunătățite pe cât de repede posibil.Dinamismul rețelelor de socializare este determinat de nivelul de interacțiune cu mediul,dar și cu ceilalți utilizatori.
Deși se pot folosi și alte tehnologii,în crearea aplicației ce urmează a fi prezentată,am asociat cunoștințe ale limbajului de programare PhP cu elemente de HTML și CSS, jQuery,precum și sistemul de baze de date MySQL.Toate acestea, cu excepția bazei de date, care a fost creată în unealta phpMyAdmin, au fost îmbinate într-un simplu editor de text: notepad++.
Lucrarea cuprinde trei capitole:
Implementarea rețelelor de socializare. Generalități, prin care au fost descrise tehnologiile necesare creării unei rețele de socializare, precum și creării proiectului de față
Sistemul de informații Web 2.0 –acest capitol cuprinde mai mult decât informații despre web 2.0, fiind prezentate și lucruri ce se preconizează, în vederea transformării World Wide Web-ului
Descrierea aplicatiei cuprinde detalii de implementare și proiectare, prezentând astfel proiectul ce se alătură lucrării scrise în cauză.
Motivația temei
Tema licentei “Implementarea unei rețele de socializare” a fost aleasă după mai multe criterii.În primul rând,faptul că deja dețineam câteva cunoștinte în domeniul paginilor web a stârnit dorința de a acumula cunoștințe noi și de a fixa noțiunile mai vechi.De asemenea,reacția mea la cuvintele lui Gabe Newell: “Programmers of tomorrow are the wizards of the future.You gonna look like you have magic powers compared everybody else.”(Programatorii de mâine sunt vrăjitorii viitorului.O să arăți de parcă ai avea puteri magice în comparație cu ceilalți.),nu a fost una de indiferența,trezind în mine și mai mult interes.
În al doilea rând,este de remarcat impactul pe care îl au astăzi rețelele de socializare asupra oamenilor dar mai ales asupra tinerei generații.Aceștia din urmă,nu mai concep lumea fără mediul virtual ce le oferă posibilitatea de a avea sute sau chiar mii de prieteni online cu care să discute zilnic și să împărtășească fotografii de la ultima ieșire în oraș.
Nu în ultimul rând,se poate observa cu ușurință că există numeroase rețele de socializare, care în ciuda faptului că respectă același principiu și anume de a convinge oamenii să dezvolte relații sociale prin intermediul internetului, prezintă anumite caracteristici, unice, care influențează utilizatorii să aleagă una sau mai multe dintre ele.
Chiar dacă momentul alegerii poate fi destul de confuz ,atunci când un individ opteaza pentru unul dintre serviciile social media trebuie să analizeze anumiți parametrii printre care timpul liber de care dispune, gradul de înțelegere și utilitate al mediului, compatibilitatea cu conținutul pe care dorește să-l transmită.Alegerea se face și în funcție de persoanele care prezintă interes, prieteni sau grupuri țintă cărora dorim să le transmitem anumite informații.[26]
În august 2003, apare MySpace, una dintre platformele care, în ciuda competiției și-au păstrat o parte din popularitate până astăzi datorită specificului musical.Există milioane de trupe și cântăreți, modele, actori și artiști care au profile de MySpace, atrăgând după sine o bază de alte milioane de fani.
LinkedIn este o rețea ce functionează din mai 2003 folosită mai ales de persoanele de peste 25 de ani.Aceasta permite utilizatorilor să-și creeze contacte profesionale sau să-și prezinte afaceri proprii.
În 2004, Mark Zuckerberg crează Facebook, una dintre cele mai de success platforme existente,care va fi deschisă tuturor abia în 2006.Pe lângă postarea de fotografii și fișiere video utilizatorii pot accesa jocuri precum șah,scrabble sau Farmville.[11].
Deși permite doar trimiterea de mesaje scurte, de maxim 140 de caractere și unii îl consider greu de înțeles, creat în 2006, Twitter este încă în topul celor mai frecventate rețele.
La realizarea aplicației practice ce însoțește lucrarea curentă s-a folosit limbajul de programare PhP, sistemul de baze de date MySQL,dar și elemente de HTML, CSS, JavaScript și jQuery.Deși se putea utiliza un mediu de dezvoltare precum Eclipse, pentru îmbinarea tehnologiilor web s-a optat pentru un simplu editor de text și anume Notepad++.
Obiectivele lucrării de față au fost înțelegerea modului de funcționare a cât mai multor facilități prezente deja în platformele existente,aprofundarea cunoștințelor în limbajul PHP și jQuery, fixarea noțiunilor de MySQL,dar și înțelegerea și crearea unui mecanism de atragere a utilizatorilor atât de specific rețelelor de socializare,prin elemente de design sau utilități puse la dispoziție.Un alt obiectiv a fost reprezentat de dorința de a crea o aplicație utilă,atractivă din punct de vedere visual,dar totodata simplu de folosit.Nu în ultimul rând, amintesc atât scopul sesizării diferenței dintre programarea frontend și programarea backend ,cât și dorința de a le îmbina în cantități potrivite, în vederea obținerii unui produs finit.
Aplicația practică împreună cu lucrarea scrisă au dus însă la bun sfârșit doar o parte din obiectivele propuse, fiind necesare numeroase resurse, și timp suplimentar, pentru îndeplinirea obiectivelor rămase,dar și pentru cele noi ce au luat naștere în momentele de cercetare.Viitorul este cel care, cu siguranță, îmi va permite realizarea acestora și optimizarea obiectivelor deja atinse .
Capitolul 1
Implementarea rețelelor de socializare. Generalități
World Wide Web
World Wide Web reprezintă un sistem de informații care poate fi accesat prin intermediul internetului, din diferite locații, indiferent de serverul pe care sunt stocate.Rețeaua Web apare în 1989,creatorul său, Tim Berners-Lee dorindu-și ca aceasta să functioneze într-un mod cât mai apropiat de creierul uman.Prima pagină web a luat naștere în 1991 ca urmare a dorinței acestuia de a comunica mai ușor cu toți colegii săi în interiorul laboratorului.Pentru crearea acesteia s-a utilizat prima versiune a limbajului HTML de astăzi și anume HTML 1.0.
HTML 1.0 oferea posibilitatea interpretării textului și imaginilor.HTML 2.0 aduce ceva inedit și anume formularele, ce reprezintă o mare contribuție în realizarea interactivității paginilor web.Cea de-a treia versiune, HTML 3.0 prezintă deja componente ce fac munca cu limbajul mai plăcută: tabele,formatări ale paragrafelor,formule matematice și multe altele. HTML 4.0 aduce îmbunătățiri remarcabile asupra structurii și accesibilității limbajului, urmând ca HTML 4.1 să adauge foi de stil și să refacă scripturile ce afișau în anumite browsere erori fatale.
Tehnologia HTML
Acronimul HTML provine de la Hyper Text Markup Language și este un limbaj de marcare ce permite construirea paginilor web statice.Pentru utilizarea sa nu avem nevoie de nicio instalare,ci doar de un browser și un editor de texte simplu, precum Notepad++, care, pe lângă sintaxa altor limbaje, recunoaște și sintaxa html, colorând elementele într-o manieră ce ne permite să ne dăm seama dacă unul dintre ele este scris incorect.Nu se recomandă însă, utilizarea unui procesor de text complex, precum Microsoft Word deoarece acesta va adăuga automat o cantitate de informații ce vor încărca inutil dimensiunile documentul.
De asemenea nu este necesara o conexiune la internet.HTML funcționează doar la nivelul de afișare a conținutului unei pagini web,explicându-și structura: ce caractere încadrează antetul, subsolul și conținutul, paragrafele,listele și celelalte componente.[9]
Markup Language se referă la posibilitatea formatării elementelor dintr-o pagină web:formatarea textului, adăugarea de imagini, fișiere video,legături spre alte pagini web, tabele sau formulare.HyperText reprezintă modul prin care se pot realiza legăturile cu alte pagini web.Elementele limbajului, numite taguri sunt încadrate între paranteze unghiulare și permit afișarea paginii web astfel create, într-un browser.Deși nu este un limbaj case-sensitive se recomandă utilizarea unei convenții de notație a tagurilor cu litere mici.Salvarea documentelor HTML se va face cu extensia corespunzătoare: .html.De asemenea, la afișarea în browser a paginii web create, HTML va transforma mai multe spații consecutive într-unul singur .[4]
Pe lângă editoarele de text obișnuite,se pot utiliza și editoare WYSIWYG,acronimul provenind de la What You See Is What You Get.Acestea permit vizualizarea rezultatului final,în timp ce pagina web este creată prin adăugarea cu ajutorul mouse-ului a elementelor ce se doresc folosite.Editorul va scrie automat codul din spatele elementelor utilizate.Se poate interveni, însă, oricând asupra codului,schimbările pe care le facem afișându-se imediat în pagină.[20]
XHTML reprezintă varianta extinsă a HTML-ului, fiind un limbaj de marcare cu aceleași proprietăți, dar având o sintaxă mai strictă.El este vazut ca o încrucișare a HTML-ului cu XML.În cazul său, elementele vor fi întotdeauna scrise cu litere mici,valorile atributelor din cadrul tagurilor vor fi scrise între ghilimele,iar tagurile se vor închide de fiecare dată,inclusiv tagurile nepereche,prin intermediul caracterului “/” înainte de închiderea parantezei unghiulare.Închiderea tagurilor se va face în ordinea corespunzătoare, fără intercalare, după principiul LIFO(Last In First Out) caracteristic stivei.Un document XHTML trebuie să aibă înainte de începerea scrierii codului și o declarație <!DOCTYPE> ce reprezintă așa-numitul mod strict al browserului.<!DOCTYPE> aduce la cunoștință regulile cu care sa se afișeze documentul. Avantajele documentelor XHTML sunt multiple: sunt compatibile cu toate browserele mai noi sau mai vechi, codul fiind mai inteligibil inclusiv pentru browsere .
HTML5 este cea de-a cincia și cea mai nouă versiune a HTML-ului născându-se ca o cooperare între W3C și WHATWG-Wei,schimbările pe care le facem afișându-se imediat în pagină.[20]
XHTML reprezintă varianta extinsă a HTML-ului, fiind un limbaj de marcare cu aceleași proprietăți, dar având o sintaxă mai strictă.El este vazut ca o încrucișare a HTML-ului cu XML.În cazul său, elementele vor fi întotdeauna scrise cu litere mici,valorile atributelor din cadrul tagurilor vor fi scrise între ghilimele,iar tagurile se vor închide de fiecare dată,inclusiv tagurile nepereche,prin intermediul caracterului “/” înainte de închiderea parantezei unghiulare.Închiderea tagurilor se va face în ordinea corespunzătoare, fără intercalare, după principiul LIFO(Last In First Out) caracteristic stivei.Un document XHTML trebuie să aibă înainte de începerea scrierii codului și o declarație <!DOCTYPE> ce reprezintă așa-numitul mod strict al browserului.<!DOCTYPE> aduce la cunoștință regulile cu care sa se afișeze documentul. Avantajele documentelor XHTML sunt multiple: sunt compatibile cu toate browserele mai noi sau mai vechi, codul fiind mai inteligibil inclusiv pentru browsere .
HTML5 este cea de-a cincia și cea mai nouă versiune a HTML-ului născându-se ca o cooperare între W3C și WHATWG-Web Hypertext Application Technology Working Group.Declaratia <!DOCTYPE html> va fi necesară și în cazul documentelor HTML5.Caracteristicile sale bazate pe HTML, CSS,DOM și JavaScript vor reduce nevoia de plugin-uri externe,cum este Flash.HTML5 introduce o mai bună tratare a erorilor precum și elemente noi: <canvas> pentru grafică 2D, <video> și <audio> pentru media, noi controale de formulare pentru dată, email, calendar, url .Sunt introduse chiar și elemente de conținut noi cum ar fi <header>, <footer> ,<article>, <section>.
HTML5 nu este încă standardul oficial,deci browserele nu îl suportă deocamdată pe deplin.Totuși, majoritatea browserelor continuă să-și adauge la ultimele versiuni elemente HTML5.[21]
HTML5 Canvas reprezintă un standard pentru aplicații scrise în JavaScript ce rulează pe o pagină web.Acesta aduce noi utilități, fiind interactiv reușește să răspundă la acțiunile utilizatorului prin intermediul codului JavaScript.Este un mediu flexibil ce poate construi animații sau afișa diferite forme, imagini sau text.În plus,HTML5 Canvas este acum suportat de majoritatea browserelor și continuă să-și câștige popularitatea.[5]
Comunicația dintre browser și server
Browser-ul este o aplicatie ce permite căutarea unor informații și vizitarea unei pagini web printr-un click pe link-ul corespunzător.Acest click va cere o anumită pagină web serverului,pe care o va afișa ulterior în fereastra browser-ului.HTML este cel care pune la curent navigatorul cu conținutul și structura site-ului.
Un server web este un sistem software ce găzduiește site-uri și pagini web,așteptând solicitări de la browsere pentru a găsi diverse imagini,melodii,filme sau alte informații.O dată găsite aceste resurse,server-ul le va trimite înapoi spre browser.[7]
Fig 1.1 – Comunicarea între browser și server
Începutul standardizării
Universalitatea reprezintă calitatea limbajului HTML ce permite afișarea paginilor web într-un mod cât mai asemănător pe orice calculator,indiferent de browser sau sistem de operare.
1.2.1 Războiul browserelor
În 1994, compania Netscape decide să renunțe la universalitatea HTML-ului,prin crearea unui set de extensii ale limbajului ce puteau fi folosite doar de browser-ul Netscape.Acest lucru a dus la un fenomen controversat:pe de-o parte oamenii care utilizau browser-ul Netscape puteau vizualiza paginile web într-un format atractiv,cu texte colorate și alte îmbunătățiri.Pe de altă parte,utilizatorii celorlalte browsere primeau mesaje de eroare sau rezultate cu aspect neplăcut.Așadar, la doar doi ani distanță,Netscape devine cel mai popular browser. Încercând să contraatace, Microsoft își crează propriile extensii nestandardizate pe care le putea recunoaște doar browser-ul Internet Explorer.
1.2.2 Instalarea standardizării
Ca răspuns la încălcarea universalității ia naștere organizația World Wide Web Consortium, abreviată W3C, cu scopul de a convinge comunitatea web de importanța universalității și de a satisface dorința de pagini cu design atractiv,prin crearea unui standard oficial.
Atât Netscape, cât și Microsoft au aderat la W3C alături de alte companii importante.Acestea au acceptat să se conformeze cu standardele, produsele lor urmând să se diferențieze prin alte calități:preț,viteză, ușurința în utilizare și altele.
Standardul de formatare CSS
CSS(Cascading Style Sheet) sau “foile în stil cascadă “ reprezintă modalitatea prin care se pot adăuga anumite proprietăți sau formatări asupra conținutului unui document HTML.Astfel pentru a crea un anumit stil pentru o pagină web vom utiliza valori și atribute.Atributele vor fi reprezentate de elementele html asupra cărora dorim să facem o modificare,iar valorile vor reprezenta modul în care vrem să modificăm aceste elemente.Spre exemplu,dacă dorim aplicarea fontului Times New Roman asupra unui paragraf,atributul va fi paragraful respectiv,iar valoarea ce va fi setată asupra sa, va fi Times New Roman.Pentru construirea foilor în stil cascadă ,se poate utiliza,la fel ca în cazul documentelor HTML, un simplu editor de text,acestea fiind salvate cu extensia .css.O dată create,foile CSS,pot fi apelate în cadrul unui fișier html, prin intermediul unui tag de legătură plasat în antetul documentului.
Fișierele externe CSS au un rol deosebit,prezentând avantaje multiple:
Ele pot fi utilizate de mai multe documente HTML,lucru extrem de important în crearea unui site cu mai multe pagini web asupra cărora dorim să adăugăm un stil comun.
Oferă control printr-o aranjare logică în pagină,simplificându-se modificarea diferitelor elemente
Se reduce „îngrămădeala” ce ar putea fi provocată prin amestecarea elementelor de html cu elemente css.
CSS3 este cel mai nou standard de formatare a paginilor web.Acesta este împărțit în module precum fundale și borduri, efecte de text, animații, transformări 2D/3D, interfețe pentru utilizatori, selectori și altele.Selectorii pot identifica rânduri din tabele, checkbox-urile selectate, sau ultimul paragraf dintr-un grup, oferind mai mult control asupra elementelor HTML care se doresc a fi editate.Se pot adăuga umbre și degradeuri fără a recurge la imagini de fundal,se pot roti elementele sau chiar rotunji colțurile acestora.
CSS3 introduce noi pseudoclase, pentru a identifica locația elementelor mult mai ușor.O pseudoclasă reprezintă o cale prin care se pot selecta elemente ce nu se pot selecta prin alte modalități.Un bun exemplu de pseudoclasă întâlnită și în CSS este hover, care prin plasarea mouse-ului deasupra elementului permite schimbarea culori acestuia sau afișarea unor componente ascunse.
Sunt de asemenea introduse și cuvinte cheie noi ce aduc noi facilități cum ar fi colorarea rândurilor unui tabel în mod diferit sau alinierea textului tuturor coloanelor,cu excepția uneia dintre ele, fără adăugarea altor clase sau id-uri.[8]
1.4 Limbajul de programare PHP
Limbajul PHP a fost creat în 1994 de către Rasmus Lerdorf cu scopul generării unui curriculum vitae și pentru urmărirea numărului de vizitatori pe un site.Acronimul utilizat însemna inițial Personal Home Page.În anul 1998,Zeev Suraski și Andy Gutmans,lansează versiunea 3.0 a PHP-ului, schimbând totodată și semnificația acronimului cu Hypertext Preprocessor.Sintaxa sa are la bază limbajele Perl,Java și C ,fiind ușor de înțeles chiar și pentru începători.
După cum indică și numele său, limbajul de programare PHP este utilizat,în primul rând pentru construirea paginilor web dinamice, prin procesarea hipertextului.El este un limbaj open source și este suportat de majoritatea sistemele de operare, inclusiv Linux, Microsoft Windows, Mac OS X, Solaris și altele.Serverele ce pot executa scripturi PHP sunt și ele variate,Apache, Netscape iPlanet, Microsoft Internet Information Server fiind doar câteva dintre numeroasele opțiuni.De asemenea, se pot crea scripturi PHP în mod procedural sau orientat pe obiect.Pe lângă obținerea unor pagini web dinamice,prin intermediul PHP-ului se pot colecta date din formularele HTML, se pot trimite sau primi cookie-uri, în scopul autentificării sau urmăririi comportamentului utilizatorilor.
Codul PHP este executat pe un server, interfața sa fiind reprezentată într-un browser, de HTML. Pentru utilizarea sa vom avea nevoie de unul din pachetele open-source WAMP sau XAMPP ce conțin cele necesare programării în acest limbaj: server-ul Apache și sistemul de gestiune a bazelor de date MySQL.[1]
Paginile web dinamice sunt dependente de stocarea unor informații care să poată fi accesate sau modificate ușor,acest lucru fiind îndeplinit de MySQL.Deși codul PHP poate rula singur în linia de comandă a oricărui calculator ce are PHP instalat,acesta nu este suficient pentru construirea site-urilor dinamice.Server-ul Apache permite testarea locală a scripturilor.Acesta acceptă cererile HTTP și returnează răspunsuri HTTP.
Scripturile PHP nu necesită compilare, scutind timpul programatorului.Ele sunt procesate de server înainte de a fi trimise browser-ului.Pentru crearea de cod PHP se poate utiliza ca și în cazul HTML-ului un editor de text sau un mediu de dezvoltare integrat precum Eclipse ce prezintă multe avantaje printre care autocompletare sau referințe către funcții ce afișează parametri acceptați,valori returnate și o mică descriere.[10]
PHP cuprinde tipuri de date scalare: integer, float, boolean și string, tipuri de date compuse: array și obiect și tipuri de date speciale: resource și NULL.Pentru declararea unei variabile,numele acesteia va fi precedat de caracterul dolar,urmând ca tipul ei să fie stabilit de PHP,la rulare,în funcție de modul în care a fost utilizată.În PHP variabilele pot fi locale,globale,statice sau parametri.O variabilă locală poate fi accesată doar de către funcția căreia îi aparține,în timp ce variabilele globale pot fi accesate oriunde în script.Variabilele statice sunt declarate cu scopul împiedicării ștergerii lor,la terminarea funcției.Parametrii sunt variabile locale a căror valoare este utilizată, prin intermediul apelurilor, în corpul funcției.[22]
Variabilele superglobale sunt variabile speciale cu rol foarte important, ce sunt întotdeauna disponibile în script.Dintre acestea amintim: $GLOBALS ce conține referințe la variabilele globale disponibile, $_SERVER,ce conține informații despre server, $_GET- returnează date transmise prin metoda HTTP GET, $_POST – date transmise prin metoda HTTP POST, utilizat la preluarea datelor din formulare, $_FILES – date primite dintr-o intrare HTML pentru fișiere, $_SESSION – pentru sesiunea curentă și $_COOKIE – datele stocate pe browser-ul utilizatorului sub forma cookie-urilor.[10]
ă
Fig. 1.2 –Comunicarea între browser și server în cazul unui site dynamic
Baze de date
O bază de date reprezintă o colecție organizată de date folosită de un anumit grup de utilizatori într-un anumit scop.Datele sunt stocate în tabele legate între ele prin relații de unu-la-unu, unu-la-n sau n-la-n.În relațiile de tip unu-la-unu,o înregistrare dintr-un tabel se leagă de o înregistrare din cel de-al doilea tabel.În relațiile de unu-la-n, o înregistrare dintr-un tabel se află în legătură cu mai multe înregistrări din cel de-al doilea tabel,iar în relațiile de n-la-n, mai multe înregistrări dintr-un tabel se leagă de mai multe înregistrări din cel de-al doilea tabel.
Câmpurile ce participă la formarea acestei legături se numesc chei primare sau id-uri, în cadrul tabelului propriu, respectiv chei străine, în cadrul tabelelor de legătură.Cheia primară trebuie să fie unică, nenulă, publică și să nu trebuiască să fie modificată.
Într-o bază de date informațiile trebuie să fie abstracte, integre, integrate, securizate, partajate și independente.
Normalizarea se referă la reorganizarea bazei de date în vederea respectării anumitor standarde de proiectare.Aceasta este importantă deoarece reduce redundanța, eliminând erorile de mentenanță și necesitatea unui spațiu de stocare mai mare și asigură independența datelor, acordând flexibilitate, optimizare și inteligibilitate. Pentru normalizarea bazelor de date, la construirea tabelelor se utilizează o serie de reguli.Deși există șase nivele de normalizare, majoritatea bazelor de date folosesc doar primele trei nivele: prima formă normală (1NF), a doua formă normală (2NF) și a treia formă normală (3NF).[12]
Prima formă normală impune ca fiecare înregistrare să fie unică și identificată prin intermediul unei chei primare și elimină posibilitatea existenței mai multor valori în același camp.A doua formă normal se aplică atunci când există o cheie primară compusă din mai multe câmpuri și impune o dependență funcțională asupra tuturor elementelor tabelului de întreaga cheia primară.A treia formă normală afirmă că nu pot exista dependențe ascunse sau câmpuri duplicate.Atributele non-cheii sunt , de asemenea, reciproc și simultan independente.[23]
Limbajul SQL
Dezvoltat inițial la IBM, Structured Query Language sau pe scurt SQL este cel mai popular limbaj de programare pentru manipularea datelor din tabele relaționale.În 1986, ANSI face public primul standard pentru SQL, de-a lungul noilor versiuni, fiind implementate noi funcționalități orientate pe obiect și modalități de interogare a documentelor XML.
SQL este un limbaj neprocedural, gândind la nivel de instrucțiune, fără existența blocurilor, buclelor sau condiților logice.El este utilizat atât pentru manipularea cât și pentru descrierea datelor.Astfel, pentru descrierea datelor întâlnim comenzi de creare, ștergere sau modificare a tabelelor, iar pentru manipulare – comenzi de interogare (SELECT), de inserare, actualizare și ștergere a datelor din tabele.
Din punct de vedere a structurii sintactice, SQL conține expresii, clauze, predicate, interogări și instrucțiuni (sau comenzi) formate din cuvinte cheie, constante, identificatori și caractere speciale.Cuvintele cheie sunt reprezentate de elemente cu semnificație fixă: tipuri de date sau nume de comenzi.Identificatorii sunt nume de tabele sau coloane.Constantele pot fi numere întregi, reale, șiruri de caractere sau de tipul NULL, în cazul lipsei de informație.În categoria caracterelor speciale intră operatorii logici, aritmetici, binari și unari, punctul zecimal, caracterul „ ; ” utilizat pentru încheierea unei comenzi și separatorii TAB, CR, blank.
Expresiile au ca rezultat valori scalare sau tabele.Clauzele sunt elemente ale instrucțiunilor și interogărilor utilizate pentru a specifica locul de inserare a datelor (clauza INTO), locul de extragere, inserare sau ștergere a datelor (clauza WHERE) sau pentru a specifica o grupare de coloane după un anumit criteriu (clauza GROUP BY). Interogările sunt utilizate în scopul identificării datelor în funcție de criteriile specificate.
SQL poate efectua funcții de grupare pentru calcularea minimului, maximului, mediei sau sumei unui grup de înregistrări,funcții matematice, functii pentru conversii,pentru șiruri sau date calendaristice.Limbajul SQL asigură astfel operațiile necesare pentru un sistem de gestiune a bazelor de date.[2]
Introducere în MySQL
MySQL este un sistem de gestiune a bazelor de date open-source și este un standard pentru numeroase servicii de găzduire, fiind o parte a pachetului XAMPP sau WAMP, alături de serverul Apache.Un server web este proiectat pentru a da răspunsuri unui browser, analog, o bază de date MySQL va răspunde la cererile programelor client.Acesta poate rula pe numeroase sisteme de operare, printre care Linux, Microsoft Windows și Mac OS X.De asemenea poate fi utilizat de diferite limbaje de programare, inclusiv PHP, C, C++, C#, Java, Pyton, Visual Basic și Perl.MySQL este capabil să lucreze pe mai multe procesoare, dacă există, fiind un sistem multi-threaded ce folosește thread-uri de kernel.După inițializarea interogărilor, de obicei nu se alocă memorie.Funcțiile SQL sunt foarte rapide și implementate prin intermediul unei biblioteci de clase optimizate.Tipurile de date folosite sunt numerice ( de la TinyInt, la BigInt, Float, Double, Decimal, Real, Boolean), pentru dată și timp, stringuri ( Char,Varchar,Text,Blob,etc) și date spațiale.
MySQL nu are o interfață grafică, permițând manipularea datelor în linia de comandă.Pentru utilizarea sa împreună cu PHP se vor folosi funcții PHP scrise pentru a interacționa cu baze de date MySQL.Cea mai răspândită interfață grafică pentru MySQL este phpMyAdmin, reprezentând o bună alegere deoarece poate procesa funcții și instrucțiuni, afișând rezultatele acestora.Interfața phpMyAdmin permite crearea bazelor de date, tabelelor și realizarea operațiilor specifice.[12]
phpMyAdmin este o aplicație web sofisticată, scrisă în limbajul PHP.Acesta este furnizat de cele mai comerciale host-uri ce oferă dezvoltatorilor web, MySQL și PHP sub forma unui instrument, în vederea administrării bazelor de date.Datorită omniprezenței sale, phpMyAdmin este un instrument atractiv mai ales pentru începători, fiind simplu de învățat și de utilizat.Cu ajutorul său se pot crea, modifica sau șterge baze de date, cât și tabele, câmpuri sau rânduri.De asemenea, phpMyAdmin poate executa comenzi SQL și să administreze permisiunile utilizatorilor asupra unei baze de date.Utilizatorul este reprezentat de programele ce rulează, iar privilegiile sunt reprezentate de dreptul la interogare (SELECT), la inserare, actualizare și ștergere.Dacă nu se oferă utilizatorilor privilegii în secțiunea structurii, aceștia nu vor putea modifica structura bazei de date.La fel se întâmplă și pentru secțiunea de administrare.Aceste privilegii sunt importante în cazul apariției unui hacker, deoarece intervenția acestuia va fi limitată.phpMyAdmin permite chiar exportarea unor baze de date sau importarea în interfață a unor baze de date deja existente. [13]
O alternativă la phpMyAdmin o reprezintă descărcarea de pe internet a unei interfețe grafice precum MySQL Administrator sau MySQL Query Browser.Acesta din urmă este proiectat pentru MySQL 4.0 sau versiuni mai noi și este rezultatul feedback-ului mai multor utilizatori pe o perioadă mai îndelungată.El poate crea, executa și optimiza interogări într-un mediu grafic.[24]
Platforma jQuery
O pagină web statică, construită cu HTML și CSS poate fi transformată într-o pagină dinamică prin intermediul unor scripturi jQuery care pot introduce efecte, animații și interactivitate.jQuery nu este un limbaj de programare,ci o librărie complexă,un framework open-source bazat pe JavaScript, ce a apărut în august 2006, fiind creat de John Resing.Acesta realizează cu un an mai devreme un articol intitulat „Selectors in JavaScript” care demonstrează că exista posibilitatea interacționării cu elemente în JavaScript, folosind selectori CSS.jQuery are un impact incontestabil în dezvoltarea web,o dată cu apariția sa, Flash-ul devenind o a doua opțiune în ceea ce privește interactivitatea site-urilor.
Spre deosebire de codul altor limbaje de programare, precum PHP, care este executat de server, codul limbajului orientat pe obiect, JavaScript este rulat de către browser.Fiecare browser deține un interpretor pentru codul JavaScript ce va fi scris între tagurile <script></script>.[3]
După cum sugerează și numele, jQuery se ocupă cu interogări.Atunci când are loc o interogare prin intermediul unui selector, JavaScript interoghează DOM-ul pentru a obține răspunsul corespunzător.jQuery furnizează funcții adiționale ce ușurează relizarea anumitor acțiuni într-o pagină web precum crearea de efecte și animații complexe, tratare a evenimentelor.
Librăria jQuery constă într-un singur fișier JavaScript ce conține toate elementele commune DOM-ului, evenimente, efecte și funcții Ajax.Librăria jQuery poate fi inclusă prin intermediul unui link la o copie locală sau un link la o copie aflată pe un server public.Pentru scrierea funcțiilor JavaScript, dar și jQuery se poate utiliza cu succes un editor de text sau un mediu de dezvoltare, în cazul aplicațiilor mai complexe.
Document Object Model
Document Object Model sau pe scurt, DOM este o convenție utilizată de browser pentru a interacționa cu elemente HTML și CSS.Acesta are rol deosebit în crearea unei legături mai eficiente între JavaScript, HTML și CSS.DOM permite de asemenea capturarea evenimentelor precum click-uri ale utilizatorilor pe un link, apăsarea butonului de trimitere a datelor dintr-un formular sau derularea paginii.Totuși DOM nu este în totalitate suportat de versiunile browserelor mai vechi.Acesta este motivul pentru care jQuery este atât de apreciat, funcționalitățile sale fiind acceptate în egală măsură de versiunile mai vechi sau mai noi.
DOM poate fi privit ca un arbore cu ramuri și noduri.Când o pagină este încărcată, browser-ul generează o reprezentare a conținutului acesteia și pentru fiecare element generează unul sau mai multe noduri reprezentative.Nodurile sunt atât tagurile HTML, cât și textul cuprins între acestea.Accesarea acestora de către jQuery se face prin intermediul funcției „ $ ” și numele selectorului CSS sau HTML corespunzător.
Dacă se lucrează cu JavaScript simplu, DOM poate întâmpina probleme ajungându-se la pierderea unei perioade mari de timp pentru găsirea soluțiilor.jQuery reușește însă să împiedice acest lucru, abstractizând problema și tratând cu orice inconsecvență a browser-ului.[6]
Ajax
Ajax este un ancronim ce provine de la Asynchronous JavaScript and XML și reprezintă,nu un limbaj de programare ci o tehnică interactivă de a utiliza standardele deja existente.Ajax reprezintă modul de schimbare a datelor cu un server și actualizare a unor părți dintr-o pagină web, fără a reîncărca întreaga pagină.Scopul este acela de a oferi o experiență bogată utilizatorului prin intermediul unor caracteristici ce apar de obicei doar la aplicațiile desktop.
În februarie 2005 Jasse James Garrett, președinte la Adaptive Path, scrie un articol “Ajax: A New Approach to Web Aplications” ,prin care dă naștere termenului Ajax.Articolul aduna în același loc tehnologiile ce existau deja și care urmau să fie bazele pentru Ajax.
Ajax încorporează prezentări bazate pe standarde folosind XHTML și CSS, afișări dinamice și interactive folosind DOM, manipulări de date folosind XML și XSTL, date regăsite asincron folosind XMLHttpRequest și JavaScript care face legătura între acestea. Deci Ajax este o gamă de tehnici ce se pot utiliza pentru a face aplicațiile web să arăte ca aplicațiile desktop.
În browser, codul scris într-un limbaj de scripting, cum este JavaScript, urmărește ce informații dorește utilizatorul.Un exemplu elocvent îl reprezintă termenii pe care un utilizator îi folosește pentru a realiza o căutare pe Google.Sugestiile motorului de căutare, din acea listă drop-down, apar ca rezultat la comunicarea codului JavaScript cu serverul web pentru a afișa informațiile fără ca pagina să fie reîncarcată în browser.Deci modul în care Ajax aduce informații de pe server este invizibil pentru utilizator.Codul JavaScript folosește un obiect special, XMLHttpRequest construit în browser pentru a deschide o conexiune în server și pentru a descărca date de pe acesta.Datele sunt de obicei în format XML,care pot fi reprezentate doar de un simplu text.Atunci când datele pe care utilizatorul dorește să le acceseze au fost descărcate, în spate, codul JavaScript le va folosi pentru a actualiza afișarea în browser.Folosind JavaScript se pot afișa datele descărcate în mai multe moduri, deoarece browserele sunt capabile să suporte HTML dinamic adică schimbările făcute să fie actualizate instantaneu.Ajax permite actualizarea textului,culorii sau mărimii acestuia, sau chiar crearea unui chat în timp real.De asemenea, împreună cu HTML dinamic,Ajax poate descărca și afișa imagini corespunzătoare informațiilor căutate de utilizator.
Părtile component ale Ajax-ului au existat încă din jurul anului 1998 și astfel, înainte ca acesta să fie introdus în mod formal, era deja utilizat de câteva aplicații precum Microsoft Outlook Web Access.Însă, Ajax a apărut cu adevărat în 2005, în urma faimosului articol scris de Jesse Garret și a noilor aplicații precum Google Suggest.
Astăzi, Ajax este deosebit de important în dezvoltarea paginilor web, dar, din fericire, este ușor de învățat o dată dobândite cunoștiințele esențiale de JavaScript,HTML și XML.
Chat-ul în timp real este folosit de numeroase aplicații pe internet.Sesiunile de chat Ajax încarcă ceea ce ai scris și descarcă ceea ce au scris ceilalți utilizatori, fără a avea loc o reîncărcare a paginii.Ajax poate fi utilizat și pentru descărcarea imaginilor,prin intermediul codului JavaScript.De asemenea,Ajax permite și crearea funcționalității drag-and-drop, el informând serverul de locația țintă a obiectelor care au fost “prinse” cu mouse-ul. [25]
Capitolul 2
Sistemul de informații Web 2.0
Web 2.0 este un termen ce descrie a doua generație World Wide Web, concentrându-se pe oferirea abilității de a colabora și de a împărți informații online.Acesta se referă practic la tranziția de la HTML-ul static la pagini web mult mai dinamice precum și la avansarea comunicației prin intermediul internetului.Web 2.0 cuprinde bloguri, portaluri, site-uri de schimb de imagini, filme și fișiere video, cloud computing dar și rețelele de socializare.Tehnicile utilizate de Web 2.0 datează de la sfârțitul anilor 1990, astăzi cunoscând o răspândire foarte amplă.Dar până la apariția terminologiei Web 2.0, a existat și există încă sistemul de informații Web 1.0
2.1 De la Web 1.0 la Web 2.0
Înainte de a vorbi despre Web 2.0, a existat Web 1.0 ce a luat naștere ca o necesitate de comunicare într-un spațiu relativ mic și anume într-un laborator.Web 1.0 se rezuma doar la afișarea conținutului unei pagini web statice,fără niciun fel de interacțiune.Ca și caracteristici principale, se poate afirma, deci, că site-urile Web 1.0 sunt statice,fără interactivitate,iar aplicațiile sunt sub proprietate,utilizatorii beneficiând de dreptul la descărcare,dar fără a avea dreptul de vizualizare a codului sursă sau de a face modificări.Faptul că aceste site-uri erau statice,nu ofereau utilizatorilor un motiv de a reveni a doua oară asupra aceleiași pagini web.Acestea conțineau informații utile,dar fără o actualizare a conținutului își pierdeau puterea de atracție.Totuși anumite elemente caracteristice Web-ului 2.0 erau prezente și la Web 1.0, cele două versiuni ale sistemului de informații fiind imposibil de separate pe o axă a timpului.
În ciuda aparențelor și numeroaselor funcționalități oferite de Web 2.0,există cazuri în care abordarea versiunii Web 1.0 este mai adecvată.Un exemplu sugestiv este cazul Wikipediei care reprezintă o sursă de informații.Această enciclopedie online permite vizitatorilor să facă schimbări asupra celor mai multe articole.Astfel există posibilitatea postării unor informații false sau derutante,oamenilor fiindu-le permisă adăugarea sau modificarea conținutului chiar într-un mod eronat.Deși moderatorii fac constant verificări asupra acestor informații, nu există garanția acurateței lor.
Limita dintre Web 1.0 și Web 2.0 nu este întotdeauna clară.Dacă ne gândim la un site foarte static,dar care include o secțiune de comentarii ale vizitatorilor, putem spune că site-ul abordează Web 1.0,dar comentariile reprezintă o tehnică Web 2.0. Din acest motiv, experții web dezaprobă clasificarea paginilor.
Tranziția între Web 1.0 și Web 2.0 poate fi văzută ca rezultatul rafinării tehnologiilor web, îmbunătățirii capacităților browserelor și dezvoltării interactivității prin Ajax, Flash și PHP.
De asemenea se renunță la materialele read-only, fiind permisă contribuția utilizatorilor sau vizualizarea, într-o oarecare măsură, a codului sursă pentru diferite aplicații sau pagini web.[1]
2.2 Caracteristici Web 2.0
Numit inițial “Web-ul ca și platformă”, termenul Web 2.0 a fost inventat de Tim O’Reilly în cadrul unei conferințe legate de noua generație de concepte și aspecte Web.
Cele mai semnificative diferențe dintre Web 1.0 și Web 2.0 sunt date de colaborarea între utilizatori și conținutul interactiv.Au loc două schimbări fundamentale: web-ul participativ ce permite utilizatorilor atât sa scrie cât și să citească conținut și apariția așa-numitului cloud computing.Apar progrese tehnice,răspândindu-se conexiunile la internet, hardware-ul performant și tehnologiile web capabile să creeze pagini dinamice, cu timp de reacție rapid, asemeni aplicațiilor desktop.
Astfel, după o perioadă în care internetul era bun doar la furnizarea de informații consumate pasiv de utilizatori, acesta devine un mediu interactiv.Utilizatorii de până acum, pot deveni la rândul lor creatori prin intermediul blogurilor sau pot participa activ la completarea sau modificarea unor informații pe enciclopediile online.
Pe lângă Ajax și alte tehnologii noi,Web 2.0 se bazează pe API-uri pentru servicii web, asigurarea unei experiențe bogate, inteligență colectivă, perpetual Beta care se referă la oferirea gratuită a versiunilor beta ale aplicațiilor, în vederea testării acestora și convingerii potențialilor clienți.
Cloud Computing se referă la încercarea internetului de a semăna tot mai mult cu un desktop,serverele furnizând nu doar date, ci și aplicații complexe,prin intermediul unui browser.Dreptul de acces la date și confidențialitatea au un rol important,fiind imposibilă pierderea sau furarea lor.De asemenea,un utilizator poate lega la cloud mai multe dispozitive, datele acestuia continuând să se sincronizeze.[15]
Fig 2.1-Web 1.0 vs. Web 2.0
2.3 Rețele de socializare
Componentele rețelelor de socializare sunt reprezentate de oameni,totul de la management la optimizare devenind complicat, în funcție de context.Fiecare astfel de rețea are propria arie de concentrare, propriul număr de membri,impact social, obiective și răspândire.De-a lungul timpului au existat numeroase rețele de socializare, însă doar câteva au reușit să dobândească complexitatea necesară pentru a-și atinge adevăratele scopuri.De obicei,acestea au anumite formulare de înscriere, prin completarea cărora se obține acces la rețea, aceasta începând să funcționeze după existența unui număr minim de utilizatori.Succesul rețelei depinde de interesul, contribuția și motivația utilizatorilor, dar și de capacitățile platformei de a permite un schimb de informații rapid.
Implementarea rețelelor de socializare,dar și susținerea lor reprezintă o adevărată provocare, creatorii acestora dezvoltând adevărate mecanisme pentru a le menține „în viață”.
Prin intermediul lor, Web 2.0 are puterea de a crea noi relații între colaboratori și informații.Toate componentele Web 2.0 sunt construite pentru susținerea și asigurarea dezvoltării rețelelor de socializare.
Rețelele de socializare există în numeroase domenii,ceea ce determină o creștere a acestora în toate sectoarele societății.Avem astfel o clasificare destul de clară a acestora, de la rețele de contacte sociale, la cercuri de studii,rețele de cumpărături și multe altele.
Rețelele de contacte sociale sunt cele mai populare și au ca scop principal păstrarea contactului cu prietenii și familia.Acestea beneficiază de toate componentele Web 2.0, de la bloguri, etichetare și forumuri, până la wikipedii.Cele mai cunoscute sunt Facebook,Orkut și Twitter.
Cercurile de studiu sunt dedicate elevilor și studenților, oferind rezultate avansate în urma unor căutări.Un bun exemplu este College Tonight sau FledgeWing ce beneficiază de bloguri și permit transferul de fișiere.
Există de asemenea rețele de socializare pentru grupuri de specialiști precum LinkedIn sau rețele pentru „inventatori”, unde se întâlnesc creatorii și dezvoltatorii acestora.
Contribuția Web 2.0 asupra rețelelor de socializare este incontestabilă,însă există un număr de arii care încă necesită îmbunătățiri pentru ca puterea tehnologiei îmbinată cu rețelele de socializare să se resimtă cu adevărat.Web 2.0 poate susține domenii precum experimente ștințifice sau explorări ale spațiului.Acesta furnizează o platformă cu implementare și tehnologii pentru care utilizatorii nu trebuie să se îngrijoreze,la un preț accesibil și un timp scurt de preluare.Web 2.0 duce la creșterea colaborării sociale, asigurând atingerea scopurilor rețelelor de socializare.
Există însă și provocări ce apar o dată cu utilizarea Web 2.0.Din cauza lipsei unui sistem administrativ care să se ocupe de acest lucru, un aspect major este reprezentat de intimitate și securitatea datelor,deoarece într-un domeniu atât de public, șansa de scurgeri sau pierderi de informații este uriașă.O altă provocare este aducerea rețelelor din mediul offline în mediul online, prin intermediul reclamelor ce implică noi costuri, atunci când oamenii nu dețin cunoștiințe de utilizare a internetului.[16]
Astăzi, cea mai populară rețea de socializare este Facebook,care permite crearea de conturi celor cu vârsta de peste 13 ani, prin intermediul unei adrese valide de email.După completarea detaliilor,profilul utilizatorului este generat.O dată creat, un cont de Facebook va permite răsfoirea sau alăturarea la rețele din patru categorii:regiuni, facultăți, licee și locuri de muncă,adăugarea de contacte deja existente într-un cont de email,precum și căutarea de prieteni, în diferite moduri, inclusiv prin intermediul motorului de căutare pentru găsirea unei anumite persoane.Utilizatorii pot posta fotografii sau fișiere video și pot accesa diferite jocuri precum FarmVille sau șah.Și aici întâlnim problema confidențialității datelor, care poate fi controlată doar de către utilizatori, aceștia fiind cei care aleg cantitatea și informațiile personale pe care le fac publice, atât prin conținutul pe care îl distribuie,cât și prin comentariile pe care le fac.
MySpace permite crearea de conturi celor cu vârsta de peste 14 ani și are un mod inedit de adăugare a prietenilor:atunci când inviți prieteni,aceștia vor face parte din spațiul tău inițial de prieteni.O dată confirmate cererile,cei din spațiul de prieteni devin o parte din propria rețea.Astfel,toți utilizatorii MySpace-ului sunt în propria rețea extinsă.
Twitter este de asemenea o rețea de socializare foarte cunoscută.Un cont pe aceasta permite postarea și primirea de mesaje de la o rețea de contacte.Se poate construi propria listă de contacte și se pot invita alte persoane pentru a primi așa numitele tweet-uri trimise.De asemenea,se pot urmări postările altor membrii.Atunci când se dorește,se poate opri urmărirea postărilor unei anumite persoane.
LinkedIn este o rețea de socializare cu aspect professional,destinată persoanelor ce își caută un loc de muncă sau parteneri de afaceri.Spre deosebire de alte rețele de socializare,LinkedIn nu se concentrează pe legături de prietenie sau distribuire de fotografii, fișiere video sau muzică.Pentru crearea unui cont pe LinkedIn sunt necesare informații personale,care se pot actualize la capitolul educație sau locuri de muncă.În plus, se pot trimite sau primi recomandări de la șefi sau colegii de lucru.[17]
Rețelele de socializare sunt o componentă Web 2.0 remarcabilă datorită puterei de a crea relații personale sau profesionale între utilizatori, aceștia reușind astfel să găsească persoane ce împărtășesc aceeași profesie sau același interes.
Web 2.0 oferă, în plus, facilități pentru distribuirea de conținut, prin intermediul blogurilor și platformelor precum YouTube, simultan având loc o creștere a interactivității conținutului paginilor web dată de posibilitatea utilizatorilor de a vizita, edita anumite informații sau de a-și face publice propriile materiale.
Avansarea tehnologiei pentru telefoane mobile, smartphone-uri și tablete, ce permite accesul la internet departe de casă, precum și WiFi-urile din spații publice, au contribuit și ele la succesul web-ului, transformându-l într-o entitate cu adevărat mobilă.
Nu în ultimul rând, una dintre cele mai importante aspecte ale Web 2.0 rămâne, cu siguranța, căutarea online furnizată de motoarele de căutarea prin recuoșterea cuvintelor cheie.Experții consideră că îmbunătățirea acurateței rezultatelor ce apar în urma căutărilor online
vor fi avansări cheie ce urmează să fie aduse de Web 3.0.
2.4 Web 3.0
Se consideră că noua generație de Web și anume Web 3.0 o să se comporte ca un asistent personal.Acest lucru s-ar explica prin capacitatea de personalizare a utilizatorului de către browse.Pe măsură ce sunt realizate căutări, browser-ul se familiarizează cu interesele utilizatorului ceea ce va duce la o acuratețe deosebită a rezultatelor căutărilor.Deci,pentru doi utilizatori ce flosesc aceiași termeni, rezultatele găsite vor fi diferite, în funcție de profilul lor personal.Astfel, după ce browser-ul și-a creat un profil al utilizatorului, în funcție de preferințele deduse din istoric și locația acestuia, el va putea răspunde chiar la întrebări precum „unde aș putea lua cina?”, sugerând liste de restaurante.De asemenea, interogările utilizatorilor ar putea fi mai ample, browser-ul reușind să răspundă simultan la două căutări diferite îmbinate în aceeași frază.
Motoarele de căutare actuale întorc ca rezultate pagini web ce conțin cuvintele cheie folosite de utilizator, fără a se preocupa de relevanța lor.Pentru Web 3.0, motoarele de căutare vor fi capabile să interpreteze cererile în funcție de context, tratând internetul ca pe o uriașă bază de date de informații disponibile pentru orice căutare.
Unii experți condiseră că Web 3.0 va fi fondat pe API-uri.API-urile sunt interfețe ce ajută programatorii să creeze aplicații beneficiând de anumite seturi de resurse.Multe dintre site-urile Web 2.0 au API-uri ce oferă diferite facilități.[18]
Cea de-a doua caracteristică ce va fi specifică Web 3.0 este Web-ul semantic.Prin intermediul lui, calculatoarele vor scana și interpreta informațiile din paginile web folosind agenți software, adică programe ce explorează internetul în căutarea rezultatelor relevante.Ceea ce le va permite agenților software acest lucru sunt colecțiile de informații ale web-ului semantic, numite ontologii ce vor lega termeni aflați in relație.
O altă trăsătură pentru Web 3.0 va consta în îmbunătățirea GPS-urilor printr-o comparație cuprinzătoare a rezultatelor căutărilor personalizate cu locația exactă a utilizatorilor.Acest serviciu ar putea fi facilitat printr-un mashup a două sau mai multe aplicații, precum Google Maps și review-uri la hotelurile învecinate.
Tom Jenkins, director la Open Text consideră că Web 3.0 este probabil la o distanță de doar doi ani.[19]
2.5 Web 4.0
Web 4.0 poate fi considerată generația captivantă în care Web 3.0 se va asocia cu tehnologia 3D, în vederea creării unei lumi virtuale asemănătoare celor din jocuri.În acest scop, un factor cheie va fi reprezentat de drepturile digitale ce vor preveni copierea digitală a conținutului.Aceste drepturi se referă la toate tipurile de conținut, devenind importante mai ales în drepturile de copiere pentru filme, imagini și altele.
O dată cu înmulțirea rețelelor și a conținutului de orice tip, protejarea conținutului original devine un aspect vital.
Web 4.0 aduce termenul de o „a doua viață” în care reprezentarea utilizatorilor web se face prin intermediul unui avatar, ce permite upgradarea, deschizând astfel calea spre un mediu captivant al internetului.”A doua viață” permite utilizatorilor construirea unui portofoliu cu bunuri virtuale reale sub forma unui spațiu pe server și obținerea de profit autentic în urma eforturilor.
Deși momentan există doar speculații asupra noutăților ce vor fi aduse de Web 3.0 și Web 4.0, cu siguranță urmează o perioadă înfloritoare și revoluționară pentru internet.
Capitolul 3
Descrierea aplicației
3.1 Prezentare general
Lucrarea scrisă este însoțită de proiectul “Pebbles” care se dorește a fi o adevărată rețea de socializare, cu diverse funcționalități implementate în limbajul de programare PHP, dar și în jQuery.S-au utilizat, de asemenea elemente HTML și CSS atât pentru realizarea design-ului, cât și pentru înlesnirea creării scripturilor PHP și jQuey.Cum era de așteptat, pentru a da naștere unei astfel de aplicații,s-a creat o bază de date complexă, care să suporte operațiile necesare unui mediu atât de vast.Baza de date a fost realizată utilizând phpMyAdmin,restul aplicației fiind creată utilizând simplul editor de text Notepad++.
Aplicația dispune de o interfață simplă din punct de vedere al design-ului, dar care oferă o structură cu numeroase funcționalități pe care utilizatorul le poate accesa fără a se pierde în detalii nesemnificative.În primul rând, ca oricare altă rețea de socializare, “Pebbles” oferă potențialilor viitori utilizatori posibilitatea de a-și crea un cont.O dată creat contul, autentificarea se face prin intermediul unui email și a unei parole.Utilizatorii autentificați pot să-și actualizeze date personale,să posteze fotografii sau comentarii, să caute alți utilizatori și multe altele,după cum se va observa în cele ce urmează.
3.2 Detalii de proiectare și implementare
Proiectul cuprinde două mari secțiuni: una proprie utilizatorului, unde acesta are dreptul de a adăuga, șterge sau actualiza informații personale, de la date de contact, până la adăugarea de fotografii sau căutarea altor utilizatori și o secțiune ce permite doar dreptul de citire (read), în care se pot vizualiza informații sau conținut postat de alți utilizatori.Toate aceste date și conținut sunt stocate în baza de date, fie ca atare, fie prin intermediul unor legături la sursa lor de pe server.
3.2.1 Baza de date
Pentru susținerea unei rețele de socializare a fost necesară o bază de date ce cuprinde 6 tabele și respectă toate cele trei forme de normalizare: fiecare înregistrare este unică și identificată prin intermediul unei chei primare, nu există mai multe valori în același câmp, nu există dependențe ascunse sau câmpuri duplicat.În cazul cheilor primare compuse, toate elementele sunt dependente de întreaga cheie, iar elementele non-cheii sunt simultan și reciproc independente.
Baza de date este una complexă și asigură integrarea și partajarea informațiilor în mod independent și integru astfel încăt sa poată fi utilizate ori de câte ori este necesar.
Datele din câmpurile tabelelor beneficiază de tipurile potrivite, bine specificate prin atributul type, iar relațiile dintre tabele se fac prin legături corespunzătoare.
Primul care se remarcă este tabelul utilizator el fiind cel fără de care potențialii utilizatori nu și-ar putea crea un cont în cadrul rețelei.Cheia primară este reprezentată îm acest caz de id_utilizator care este de tipul auto-increment.Această coloană reține identificatorii unici ai utilizatorilor înregistrați și are o importanță deosebită pentru majoritatea funcționalităților.Celelalte coloane ale tabelului colectează date din formularul de înregistrare, precum email, nume, prenume, parolă dar și calea spre fotografia de profil sau statusul utilizatorului, dacă acestea sunt adăugate.Parola utilizatorului este oarecum protejată datorită funcției de criptare md5 ce transformă orice șir de caractere într-un șir de 32 de biți reprezentând un număr hexazecimal.Astfel, singurul care cunoaște parola unui cont este chiar deținătorul acestuia, în baza de date stocându-se doar codul hexazecimal corespunzător.
Al doilea care intră în discuție este tabelul date_personale.Acesta are de asemenea o depind de totalitatea cheii primare.După cum îi spune și numele, acest tabel este responsabil cu stocarea datelor personale suplimentare, care pot fi completate, după ce utilizatorul și-a creat un cont.Spre deosebire de tabelul utilizator în care adăugarea tuturor informațiilor era obligatorie, completarea informațiilor din tabelul date_personale este opțională.Dacă utilizatorul dorește poate adăuga informații personale precum orașul din care este, școala sau facultatea terminată, locul de muncă, domeniile de interes, cărțile, filmele sau muzica preferată, precum și limbile străine cunoscute sau un citat reprezentativ.
Cel de-al treilea tabel, albume, are o importanță deosebită, aici stocându-se albumele cu fotografii ale fiecărui utilizator.Cheia primară este reprezentată de identificatorul albumelor, dar și de identificatorul utilizatorului care deține albumul.De asemenea, pe lângă numele albumului, tabelul conține și coloana descriere ce reține o scurtă caracterizare a fiecărui album.
Aflat într-o strânsă legătură cu tabelul albume , tabelul poze are ca esență stocarea pozelor uploadate de utilizator.Fiecare poză are un identificator unic, ceea ce va fi un aspect foarte important în realizarea anumitor interogări necesare pentru satisfacerea anumitor cerințe.Pe lângă identificatorul pozei, al utilizatorului ce deține poza și albumului din care face parte poza, tabelul conține intrarea cale .Deci poza nu va fi stocată pur și simplu în baza de date ci se va reține o cale către aceasta, mai exact, doar numele ei care este suficient pentru implementările ce urmează.
Tabelul like_uri este cel care memorează simbolic aprecierile utilizatorilor asupra fotografiilor altor utilizatori.El este remarcabil prin structura sa, mai precis a coloanei likes.Aceasta are dublu rol, reținând like-urile, precum și dislike-urile în același timp.Fenomenul se întâmplă datorită proprietății binare a coloanei, aceasta stocând doar valorile 1 și 0, unde 0 este valoarea ce se inserează în cazul unui dislike, iar 1, valoarea care se inserează pentru un like.Tabelul memorează desigur, identificatorul fotografiei care a fost evaluată dar și identificatorul utilizatorului care a efectuat evaluarea.
Ultimul, dar nu cel din urmă este tabelul comentarii care va reține, de asemenea evaluările utilizatorilor asupra fotografiilor, manifestate de această dată în cuvinte, propoziții simple sau fraze complexe, cu limita de 200 de caractere.La fel ca în cazul tabelului like_uri, tabelul comentarii reține identificatorul utilizatorului care a realizat evaluarea, precum și poza asupra căreia a fost făcută această evaluare.
Dat fiind faptul că toate lucrurile mărețe au ca incipit ceva aparent lipsit de importanță, toate tabelele descrise succint mai sus, compun baza de date ce constituie fundația proiectului cu același nume, “Pebbles” (Pietricele).
Baza de date este protejată prin setarea drepturilor de acces, acordându-se toate privilegiile, doar prin intermediul parolei corespunzătoare.
Fig 3.1 Structura bazei de date
3.2 Înregistrarea și autentificarea utilizatorilor
Aplicația oferă posibilitatea de autentificare utilizatorilor existenți sau de înregistrare a celor ce doresc să-și creeze un cont, prin intermediul unei interfețe simple ce reprezintă prima pagină a rețelei de socializare, primul contact direct cu utilizatorii.
Implicit, formularul de înregistrare nu este afișat, făcându-și apariția ca urmare a unui click pe textul “Înregistrează-te aici”.
Fig 3.2-Pagina de autentificare și înregistrare implicită
După ce click-ul s-a efectuat, textul și săgeata care îl indică dispar subtil printr-o animație, în timp ce formularul de înregistrare apare printr-o animație mai dinamică.Acesta cuprinde mai multe câmpuri obligatorii ce trebuiesc completate cu datele personale ale viitorului utilizator.Dacă se omite completarea unuia sau mai multor câmpuri, datele nu se vor trimite nici unde, fiind afișat, în schimb un mesaj de eroare specific câmpului rămas necompletat.
Pentru asigurarea setării parolei dorite, există câmpul Rescrieți parola.Astfel, în cazul în care caracterele introduse în câmpul Parola nu corespund cu cele din câmpul Rescrieți parola , se va afișa mesajul de eroare cu numele celui din urmă câmp.
O dată completat formularul și apăsat butonul Înregistrare, informațiile sunt transmise în baza de date, creându-se astfel un nou cont.
După acest pas, prima pagină revine la forma inițială, urmând ca noul utilizator să se autentifice pentru a avea acces la contul său.
Fig 3.3-Formularul de înregistrare
Autentificarea utilizatorilor existenți se face prin intermediul unei adrese de email și o parolă, ambele setate la crearea contului.Dacă unul sau ambele câmpuri nu sunt completate, este afișat mesajul “Completați ambele câmpuri”, iar în cazul introducerii unui email sau parolă greșită, apare de asemenea un mesaj de eroare.
Fig 3.4 Autentificarea
Fig 3.5 Email/parola incorectă Fig 3.6 Mesaj pentu câmpuri necompletate
3.3 Pagina de administrare a contului personal
După ce s-a creat un cont și utilizatorul s-a autentificat, prima pagină care apare este pagina de administrare a contului personal.Deși păstrează același design, elementele paginii se schimbă, antetul conținând acum poza de profil a utilizatorului, un mesaj de bun venit și un câmp ce permite căutarea altor utilizatori ai rețelei.Dacă utilizatorul nu și-a setat o pagină de profil, pentru păstrarea designului va fi afișată în schimb, o imagine ce indică “utilizator necunoscut ”.
Fig 3.7 Antetul paginii de administrare a contului
3.3.1 Pagina principală
Pagina reprezintă locul de unde utilizatorul poate realiza toate acțiunile de completare, ștergere sau modificare asupra profilului.În spatele unui text sugestiv, se află un câmp care permite adăugarea unui citat sau status reprezentativ, acesta făcându-și apariția în urma unui click, printr-o animație simplă.Dacă nu se adaugă nimic în acest câmp, se va afișa mesajul “Stare neactualizată”, în caz contrar, afișându-se textul adăugat.Această stare va fi afișată și în pagina de întâmpinare a vizitatorilor profilului.
Fig 3.9-Stare actualizată Fig 3.8- Stare neactualizată
Ascuns tot în spatele unui text, se află și formularul de adăugare sau editare a datelor personale suplimentare.Aici utilizatorul poate adăuga opțional orașul în care locuiește, educația, locul de muncă, domenile de interes, limbile străine cunoscute sau preferințele în materie de muzică, filme sau cărți.Implicit câmpurile sunt completate cu detalii care să ofere mai multă înțelegere utilizatorului.La un click pe unul din câmpuri, detaliile acestuia vor dispărea printr-o animație jQuery, făcând loc informației ce urmează sa fie adăugată.Formularul are și posibilitatea de închidere, în cazul răzgândirii, prin apăsarea iconiței [x] acesta va dispărea printr-un efect de slideUp.
Fig 3.10-Formular date personale
Pentru căutarea altor utilizatori ai rețelei se poate introduce un șir de caractere în câmpul “search”.În urma căutării vor fi afișați utilizatorii al căror nume sau prenume conține șirul de caractere introdus.
Fig 3.11 –Rezultatele căutării
O dată găsit un utilizator, se poate vizita profilul acestuia printr-un click pe numele său.
Dacă utilizatorul merge cu cursorul mouse-ului pe poza de profil, apare un scurt meniu, care oferă alte funcționalități.De aici utilizatorul poate să de delogheze, să-și schimbe poza de profil, să-și vadă propriile poze sau să adauge poze noi.
Fig 3.12 –Meniul din spatele pozei de profil
Efectul prin care își face apariția acest meniu nu este implementat în jQuery, ci este realizat printr-o simplă comandă în CSS, asupra listei neordonate a itemilor meniului astfel:
.pozaid ul ul {
display : none;
}
.pozaid ul: hover ul{
display: block;
}
Printr-un click pe “logout”, utilizatorul se poate deconecta de la rețea, ajungând pe pagina principală.”Schimbă poza” duce utilizatorul într-o nouă pagina, de unde poate alege o nouă fotografie de profil, ce va înlocui inclusiv în baza de date, fotografia curentă.Dacă este ales un alt fișier, în afară de poze în format jpg, bmp, gif sau png, este afișat un mesaj de eroare.
Fig 3.13- Schimbarea pozei de profil
3.1.2 Pagini ce pot fi vizitate
Printr-un click pe “Pozele tale”, se ajunge la pagina pe care o pot vizualiza și ceilalți utilizatori.Aici rulează într-o animație, prin intermediul unui script jQuery, câteva fotografii ale utilizatorului.Sub acestea este afișată starea utilizatorului, setată în pagina de administrare a contului și numele împreună cu descrierea albumelor deținute.
Fig 3.14- Albumele și starea utilizatorului
În antetul acestei pagini, lângă poza de profil a utilizatorului, se află un link numit sugestiv “Despre mine”, care va duce la o pagină nouă, al cărei conținut este reprezentat de datele completate de utilizator în formularul paginii de administrare.Acestea sunt preluate din baza de date prin comanda SQL corespunzătoare (SELECT) și afișate într-un mod simplu, în funcție de categoria specifică.Datele sunt vizibile, de asemenea și pentru utilizatorii din afară ce vizitează profilul.
Fig 3.15- Date personale
În antet, printr-un click pe poza de profil, se poate reveni asupra paginii ce conține, pe lângă alte elemente, albumele utilizatorului.O dată deschis un album propriu, utilizatorul poate vizualiza pozele, poate șterge una sau mai multe poze sau întreg albumul printr-un singur click, datorită intergogărilor efectuate în PHP asupra bazei de date.Dacă se selectează una din poze, aceasta se afișează într-o pagină nouă, având dimensiuni mai mari.Pagina conține butoanele “Prev” și “Next” care permit răsfoirea prin toate pozele utilizatorului, indiferent dacă fac parte sau nu din albumul curent.Pentru funcționarea celor două butoane, s-a implementat, în esență, un script jQuery ce permite schimbarea URL-ului paginii.URL-ul conține identificatorul utilizatorului și identificatorul pozei.Prin intermediul celor două, sunt selectate din baza de date doar pozele corespunzătoare.În PHP identificatorul pozei este memorat într-un input de tip hidden, care va fi reținut într-o variabilă pentru a fi utilizat în scriptului jQuery.
Fig 3.16- Conținutul unui album
Pentru fiecare poză, utilizatorul, precum și vizitatorii profilului său pot lăsa comentarii.Aceste comentarii pot fi șterse, dacă se dorește, doar de către utilizatorul care deține profilul printr-un click pe x-ul specific închiderii.În browser, la secțiunea caracteristică, pe lângă comentariul propriu-zis, se va afișa poza de profil și numele utilizatorului care a lăsat un comentariu.Aceste comentarii pot fi create inclusiv de utilizatorii ce dețin pozele în cauză.
Printr-un click pe numele celui care a comentat, utilizatorul îi poate vizita profilul.
Comentariile, precum și autorii acestora sunt memorați în baza de date.La efectuarea unei ștergeri, se va utiliza prin apelarea în PHP, comanda SQL specifică – DELETE, care va elibera în baza de date spațiul ocupat de un comentariu nedorit.
Fig 3.17 –Poză cu comentarii
3.1.3 Crearea albumelor și adăugarea pozelor noi
Dacă ne întoarcem pe pagina de administrare a profilului, observăm că meniul din spatele pozei de profil (fig 3.12) conține opțiunea “Adaugă poze”.Prin selectarea acesteia, este afișată o interfață simplă, care permite utilizatorului să aleagă o nouă fotografie pe care să o insereze într-unul din albumele disponibile.Albumul dorit se poate selecta ușor dintr-o listă.
După adăugarea unei imagini într-un album, aceasta va fi stocată pe server într-un folder ce are ca nume identificatorul utilizatorului, urmând ca în baza de date să fie memorat doar numele ei.În PHP, acest fenomen este posibil prin utilizarea funcției mkdir, ce are ca parametrii calea formată din numele folderului părinte ce conține toate folderele utilizatorilor existenți și identificatorul specific, și drepturile asupra acestuia – 0744.La încărcarea unei poze pe server, aceasta va fi mutată în fișierul corespunzător prin funcția move_uploaded_file. La ștergerea acesteia din baza de date, se va face și ștergerea de pe server.
De asemenea, încercarea de a adăuga un alt fișier decât o imagine în format jpg, gif, bmp sau png eșuează, fiind afișat un mesaj de eroare.
Utilizatorul are și opțiunea de a crea un nou album, dacă poza pe care dorește să o adauge nu se potrivește cu contextual niciunui album existent.Dacă se decide să se creeze un nou album, va fi afișată o nouă interfață, la fel de simplă, în care tot ceea ce trebuie făcut este scrierea numelui și a descrierii albumului ce urmează să fie creat.
Fig 3.18 – Adăugarea noilor poze
După crearea albumului, acesta va fi gol, pe ecran afișându-se mesajul “Nu aveți nicio poză în acest album.” Utilizatorul poate însă să adauge poze noi în acest album, să se întoarcă pe pagina principală sau pe pagina ce poate fi vizualizată și de alți utilizatori sau chiar să șteargă albumul.
Fig 3.19 – Crearea unui album
3.2 Vizitarea profilelor străine
Pentru a vizita profilul unui utilizator străin, trebuie efectuat un simplu click pe numele acestuia care e afișat acolo unde acesta a lăsat un comentariu, fie printr-o căutare în pagina de administrare a propriului cont.
Prima pagină care ne întâmpină este cea care conține starea utilizatorului și albumele acestuia.De asemenea, în partea de sus a paginii are loc o răsfoire printre primele fotografii ale utilizatorului.Antetul conține și el poza de profil setată și un link spre pagina cu informații personale care pot fi completate sau nu de deținătorul contului (fig 3.15).
Fig 3.20 –Slider printre pozele utilizatorului
Acest slider este implementat în jQuery prin intermediul plug-in-ului cycle ce se aplică asupra primelor 4 poze ale utilizatorului.Deși plug-in-ul suportă acțiuni mai complexe precum auto-stop, pauză la intrarea mouse-ului deasupra elementelor, callback-uri și numeroase efecte, pentru slider-ul de față s-a utilizat doar un efect de fade, ce lasă afișată fiecare poză câte o secundă, înainte de a trece la următoarea.Timpul de tranziție între poze sau viteza este și ea de o secunda, iar pauza este setată pe true. Esența codului jQuery responsabil pentru slider este reprezentată de liniile:
$(‘.slider’). cycle({
fx: ‘fade’,
timeout: 1000,
speed: 1000,
pause: true,
}) ;
Unde, $(‘.slider’) reprezintă containerul cu pozele din slider.
3.2.1 Vizualizarea albumelor străine
Dacă alegem să vizualizăm albumul altui utilizator, vom observa că elementul ce permitea ștergerea fiecărei poze, reprezentat în contul propriu printr-un [x], dispare, deci întelegem că asupra albumului străin nu avem dreptul de modificare ci doar de vizualizare.De asemenea dispare și link-ul „Șterge album” care permitea ștergerea întregului album.
Fig 3.21 – Vizualizarea unui album străin
La vizualizarea unei poze străine, putem observa și comentariile celorlalți utilizatori, care și-au exprimat părerea, în ordine cronologică descrescătoare.Deasupra tuturor comentariilor, la secțiunea corespunzătoare, va fi afișată propria poză de profil și o arie de text însoțită de butonul “Comentează” destinată părerilor vizitatorului.
Un alt element ce dispare la vizitarea unui nou profil este x-ul ce permite ștergerea unui comentariu.Deci și în acest caz există doar dreptul de vizualizare.
Fig 3.22 – Lăsarea unui comentariu la o poză străină
3.2.2 Aprecierea pozelor încărcate de ceilalți utilizatori
Pe lângă comentariile ce permit exprimarea aprecierilor pozitive sau negative asupra pozelor, aplicația oferă posibilitatea aprecierii prin intermediul butoanelor de like, respectiv dislike.Dacă butonul like prezent în mai multe rețele de socializare sub o denumire sau alta, este utilizat pentru a exprima o părere pozitivă, pentru unii acest lucru nu este suficient, întrucât există și opinii negative.În vederea manifestării acestor dezaprobări s-a implementat butonul de dislike.În baza de date, în aceeași coloană – likes pentru fiecare like este memorată valoarea 1, iar pentru fiecare dislike este memorată valoarea 0.În plus se memorează identificatorul utilizatorului care a realizat aprecierea precum și identificatorul pozei asupra căreia s-a făcut aceasta.
Fig 3.23 – Tabelul like_uri
Aceste butoane nu sunt disponibile pentru propriile poze,dat fiind faptul că o astfel de apreciere ar fi inutilă și lipsită de relevanță.
Astfel, la vizitarea unui alt profil, utilizatorul are posibilitatea de a oferi un like sau un dislike pozelor, printr-un click pe butonul corespunzător.Pentru a asigura utilizatorii de îndeplinirea acțiunii, în urma apăsării unuia dintre butoane, se va afișa un mesaj specific, de mulțumire pentru like, respectiv regret pentru dislike .
Fig 3.24 Mesaje afișate pentru like/dislike
Spre deosebire de cazul comentariilor, unde acestea pot fi numeroase din partea aceluiași utilizator, like-ul sau dislike-ul sunt unice.Deci un utilizator nu poate oferi mai multe like-uri sau mai multe dislike-uri aceleiași poze, oricât de mult i-ar plăcea sau displăcea aceasta.
Dacă totuși se încearcă atribuirea mai multor like-uri sau dislike-uri aceleiași poze, de către același utilizator, se va afișa un mesaj de atenționare: “Ati dat like/ dislike o dată la această poză”.
Fig 3.25- Mesaj atenționare
Aceste funcționalități sunt momentan singurele pentru a căror implementare s-a folosit Ajax.Astfel în interiorul tagurilor <script></script>, asupra referinței ce realizează butonul de like, respective dislike, s-a atașat o funcție de tratare la apariția evenimentului de click.
$('#pebbles-like').click(function(){
$.ajax({
type: 'POST',
url: 'ajax/like.php',
data: {
poza: <?php echo $id_poza;?> , user: <?php echo $user['id_utilizator'];?>
},
success: function(raspuns){
if ( raspuns == 1 )
{
$('#mesaj').html('Multumesc pentru like');
}
else
{
$('#mesaj').html('Ati dat like odata la aceasta poza');
}
}
});
});
Linia url: 'ajax/like.php', determină o legătură către fișierul php care efectuează interogările și operațiile de inserare asupra bazei de date necesare pentru funcționarea butonului like.În mod analog se procedează și pentru butonul de dislike.
Concluzii
Aplicația practică ce completează licența a dus la bun sfârșit o mare parte din obiectivele propuse inițial.Crearea proiectului mi-a îndeplinit dorința de a acumula cât mai multe cunoștiințe în domeniul paginilor web și de a le îmbina, punându-mi amprenta personală, astfel încăt să ia naștere o rețea de socializare, cu multiple funcționalități și design simplu dar atractiv, cât mai ușor de utilizat.Cantitaea programării backend ce constituie baza funcționalităților îmbinată cu programarea frontend pentru realizarea unei interfețe prietenoase au avut rezultatul scontat.
Astfel am reușit să creez o aplicație utilă, complexă, dar nu completă, fiind loc pentru numeroase facilități ce urmează să fie implementate.
Cel mai important aspect pe care intenționez să-l rezolv este realizarea unui chat, pentru satisfacerea deplină a setei de comunicare a utilizatorilor.De asemenea,iau în considerare și crearea unei funcționalități care să permită distribuirea și postarea de conținut divers, de la fișiere text și pdf-uri până la fișiere video sau audio.
Un alt obiectiv este transformarea aplicației în una orientată pe obiect dar și crearea unor noi facilități prin intermediul Ajax-ului.
Deși inițial cunoștiințele în acest domeniu erau minime, punerea în practică a celor învățate și descoperite pe parcursul acestei lucrări mi-au oferit lucrul cel mai de preț : dobândirea unor abilități noi în domeniul programării web, pe care nu aș fi crezut că le voi stăpâni atât de ușor.
Bibliografie
Andrew Burgess, Getting Good with PHP, Rockable Press, Envato, 2012.
Alan Beaulieu, Learning SQL, O’REILLY, 2009
Ryan Benedetti and Ronan Cranley, Head First jQuery ,O’REILLY, 2011
Elizabeth Castro, HTML Pentru World Wide Web cu XHTML si CSS Ghid de învățare rapidă prin imagini ,Corint, București, 2003
Don Cowan, HTML5 Canvas, For Dummies, 2012
Jack Franklin, Beginning jQuery, Apress, 2013
Elisabeth Freeman and Eric Freeman, Head first HTML with CSS & XHTML, O’REILLY Media, 2005
Brian P. Hogan HTML5 and CSS3, Pragmatic Bookshelf, 2011
Rob Larsen, Beginning HTML and CSS , Wiley / Wrox, 2013.
[10] Jason Lengstrof, PHP for Absolute Beginners, Apress, 2009.
[11] Antony Mayfield, What is social media Icrossing, 2008
[12] Andrea Tarr, PHP and MySQL 24-Hour Trainer, Wiley, John & Sons, 2011
[13] Kevin Yank, PHP and MySQL Novice to Ninja, SitePoint, 2012
Referințe Web
[14] Web 1.0 – http://computer.howstuffworks.com/web-101.htm (2.05.2013)
[15] Web 2.0 – http://www.dadalos.org/web_20_rom/web_20.htm (2.05.2013)
[16] Retele de socializare http://www.ibm.com/developerworks/webservices/library/ws-socialcollab (25.04.2013)
[17] Retele de socializare populare – http://socialmediatoday.com/node/195917 (20.04.2013)
[18] Viitorul Web-ului 2.0 – http://www.hongkiat.com/blog/what-comes-after-web-20/ (20.04.2013)
[19] Web 3.0 – http://computer.howstuffworks.com/web-30.htm (22.04.2013)
[20] Editoare WYSIWYG – http://whatis.techtarget.com/definition/WYSIWYG-what-you-see-is-what-you-get (15.04.2013)
[21] HTML5 – http://www.w3schools.com/html/html5_intro.asp (28.05.2013)
[22] PHP – http://www.w3schools.com/php/php_variables.asp (28.05.2013)
[23] Normalizare baze de date – http://www.elth.pub.ro/~preda/teaching/BDE/BDE_5.pdf (3.06.2013)
[24] MySQL Query Browser – http://downloads.mysql.com/docs/query-browser-en.a4.pdf (30.05.2013)
[25] Ghid Ajax pentru începători – http://thesharad.files.wordpress.com/2010/10/ajax-a-beginners-guide.pdf (30.05.2013).
[26] Alegerea unei retele de socializare – http://outthinkgroup.com/tips/how-to-choose-which-social-media-is-right-for-you (12.05.2013)
Bibliografie
Andrew Burgess, Getting Good with PHP, Rockable Press, Envato, 2012.
Alan Beaulieu, Learning SQL, O’REILLY, 2009
Ryan Benedetti and Ronan Cranley, Head First jQuery ,O’REILLY, 2011
Elizabeth Castro, HTML Pentru World Wide Web cu XHTML si CSS Ghid de învățare rapidă prin imagini ,Corint, București, 2003
Don Cowan, HTML5 Canvas, For Dummies, 2012
Jack Franklin, Beginning jQuery, Apress, 2013
Elisabeth Freeman and Eric Freeman, Head first HTML with CSS & XHTML, O’REILLY Media, 2005
Brian P. Hogan HTML5 and CSS3, Pragmatic Bookshelf, 2011
Rob Larsen, Beginning HTML and CSS , Wiley / Wrox, 2013.
[10] Jason Lengstrof, PHP for Absolute Beginners, Apress, 2009.
[11] Antony Mayfield, What is social media Icrossing, 2008
[12] Andrea Tarr, PHP and MySQL 24-Hour Trainer, Wiley, John & Sons, 2011
[13] Kevin Yank, PHP and MySQL Novice to Ninja, SitePoint, 2012
Referințe Web
[14] Web 1.0 – http://computer.howstuffworks.com/web-101.htm (2.05.2013)
[15] Web 2.0 – http://www.dadalos.org/web_20_rom/web_20.htm (2.05.2013)
[16] Retele de socializare http://www.ibm.com/developerworks/webservices/library/ws-socialcollab (25.04.2013)
[17] Retele de socializare populare – http://socialmediatoday.com/node/195917 (20.04.2013)
[18] Viitorul Web-ului 2.0 – http://www.hongkiat.com/blog/what-comes-after-web-20/ (20.04.2013)
[19] Web 3.0 – http://computer.howstuffworks.com/web-30.htm (22.04.2013)
[20] Editoare WYSIWYG – http://whatis.techtarget.com/definition/WYSIWYG-what-you-see-is-what-you-get (15.04.2013)
[21] HTML5 – http://www.w3schools.com/html/html5_intro.asp (28.05.2013)
[22] PHP – http://www.w3schools.com/php/php_variables.asp (28.05.2013)
[23] Normalizare baze de date – http://www.elth.pub.ro/~preda/teaching/BDE/BDE_5.pdf (3.06.2013)
[24] MySQL Query Browser – http://downloads.mysql.com/docs/query-browser-en.a4.pdf (30.05.2013)
[25] Ghid Ajax pentru începători – http://thesharad.files.wordpress.com/2010/10/ajax-a-beginners-guide.pdf (30.05.2013).
[26] Alegerea unei retele de socializare – http://outthinkgroup.com/tips/how-to-choose-which-social-media-is-right-for-you (12.05.2013)
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Implementarea Unei Retele DE Socializare (ID: 141060)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
