Capitolul I . Tehnologii folosite în cadrul aplica ț iei 2 1.1. DotKernel 2 1.2. PHP 5 1.3. HTML 7 1.4. CSS 8 1.5. Javascript 9 1.6. Ajax 10 1.7…. [607116]

Cuprins
Introducere 1
Capitolul I . Tehnologii folosite în cadrul aplica ț iei 2
1.1. DotKernel 2
1.2. PHP 5
1.3. HTML 7
1.4. CSS 8
1.5. Javascript 9
1.6. Ajax 10
1.7. jQuery 12
1.8. JSON 12
1.9. Bootstrap 13
1.10. FontAwesome 14
1.11. MySql 14
1.12. Apache HTTP server 16
1.13. GetID3 17
Capitolul II. Arhitectură aplicației 17
Capitolul III. Funcționalitatea aplicației 23
3.1 Funcționalitatea aplicației în partea de frontend 23
3.2 Funcționalitatea aplicației în partea de admin 30
Concluzii 33
Bibliografie 3 4

Introducere

Proiectul de dimploma consta intr-o aplicatie web pentru vizionarea de continut media numita
Videotube.

1

Capitolul I . Tehnologii folosite în cadrul aplica ț iei

Aplica ț ia web, VideoTube, are ca tehnologie de bazǎ web framework-ul DotKernel 1.8.
Un web framework este o colectie de module care ajutǎ programatorul la dezvoltarea de aplica ț i
web, ușurându-i munca.
Existǎ mai multe web framework-uri, cum ar fi :
● DotKernel
● Laravel
● Drupal
● Zend Framework
● FUSE
● PEAR.
Fiecare web framework are avantajele sale, dar eu am ales framework-ul DotKernel,
deoarece este ușor de învǎ ț at, de folosit, este gratuit și datoritǎ faptului cǎ îl folosesc zilnic la
serviciu.
Alte tehnologii folosite în cadrul aplica ț iei sunt PHP 7, HTML 5, CSS 3, Javascript,
Ajax, jQuery, JSON, Bootstrap, FontAwesome, MySql, ​ Apache HTTP server, ​ , getID3. Ȋ n cele ce
urmeazǎ voi descrie fiecare tehnologie în parte.

1.1. DotKernel

DotKernel este un web framework php realizat pe baza web framework-ului Zend
Framework de cǎtre programatorii din cadrul firmei DotBoost Technologies. [1]
Framework-ul DotKernel are la bazǎ arhitectura HMVC pentru a fi ușor de învǎ ț at de
2

cǎtre programatorii începǎtori. HMCV este acronimul pentru ​ Hierarchical
Model–View–Controller și ​ este o evolu ț ie a modelului Model View Controller. [1]
Arhitectura MVC este un concept folosit la aplica ț iile software și ajutǎ la separarea
codului pentru interfa ț a graficǎ a aplica ț iei de func ț ionalitatea aplica ț iei.
Arhitectura MVC ușureazǎ munca programatorului, deoarece ajutǎ la între ț inerea
aplica ț iei și oferă o struct ură modernă pentru codul aplica ț iei, fiind ușor de modificat fǎrǎ a strica
alte func ț ionalitǎ ț i ale aplica ț iei.
Pentru definirea structurii DotKernel, se folosesc termenii module ș i dots, dupǎ cum se
poate vedea în figura nr. 1.1.

Figura 1.1. Schema structurii HMVC din DotKernel [2]
Modulul (module) este primul nivel ierarhic al unei aplica ț ii web. Fiecare modul este
compus din mai multe puncte (dots).
Fiecare modul are un singur controler: Front Controller – IndexController. El se
ocupă de toate cererile pentru modulul selectat, care determină ce se întâmplă în continuare
ce puncte (dots) ar trebui să fie numite.
Un punct (dot) este format din fi ș iere MVC ș i fi ș ierul de configurare xml, iar Front
3

controllerul direc ț ionează cerererile (request-urile) către Action Controller.
Action Controller este inima MVC-ului. Acesta controlează fluxul, solicită modelul
(Model) si View sau facilitează comunicarea între ele. [2]
În interiorul modelului, avem toate metodele ce prelucreaza datele din baza de date.
Metode pentru operatiile CRUD (Create – adaugă, Read – selectează, Update – actualizează,
Delete – ș terge). Metode d e manipulare a datelor care urmează a fi inserate sau ș terse din baza
de date.

View este responsabil de interfa ț a grafică (GUI) a aplica ț iei. View se folose ș e ș te de
mai multe tipuri de fi ș iere cum ar fi cele de tip PHP, TPL ș i JS (JavaScript). Fiecare modul
are un View. [3]
DotKernel utilizează Zend Framework ca o componentă de bibliotecă, accesând direct
clasele sale. A fost eliminată totu ș i complexitatea framework-ului Zend Framework utilizând o
abordare diferită a modului în care sunt gestionate cererile web. [1]
Framework-ul DotKernel con ț ine urmǎtoarele module : frontend, backend, mobil, CLI
(linie de comandă), module rss, fiecare fiind structurat pe modelul Model-View-Controller.
Pentru a folosi framework-ul DotKernel, programatorul are nevoie de urmǎtoarele
instrumente :
● Apache HTTP server
● MySql, ​ începând cu ​ ​ versiunea 5.5
● PHP, ​ începând cu versiunea 5.4
● Zend Framework, începând cu versiunea 1.11.0, compatibil cu ZF 1.12.x. [4]

Structura framework-ului DotKernel :
● configs – toate variabilele pentru configurare se află aici
● controllers – a ș s cum sugerează ș i numele folderul ui, aici se află toate controllere
● DotKernel – fi ș ierele pentru Model ș i View se află aici,
● externals – poate să con ț ină ș i alte API-uri sau libr ării
● images
4

● library – con ț ine librăriile DotKernel
● templates – con ț ine fi ș iere care rela ț ionează cu View (de tip HTML, CSS sau
JavaScript)
Pe lângă aceste foldere mai există ș i fi ș iere specifice ce st ochează informa ț ii importante :
● application.ini – se stochează variabile ș i valori importante pentru configurare
cum ar fi: starea aplica ț iei (production, staging sau development), URL-ul
aplica ț iei, conexiunea la baza de date (user ș i parole).
● resource.xml – include setările modulului cum ar fi cele legate de controller,
ac ț iunea im plicită a controller-ului, valori din sesiune
● browser.xml – fi ș ier folosit pentru a detecta de pe care browser a fost accesată
aplica ț ia
● os.xml – fi ș ier folosit pentru a ș ti care system de operare rulează pe calculatorul
de pe care a fost accesată aplica ț ia
● admin/menu.xml – include setări pentru meniu pentru fiecare modul (în acest caz
pentru modulul admin)
● dotkernel.sql – structura bazei de date ș i datele din ea
● index.php – bootstrapul aplica ț iei

Zend Framework este un cadru de aplica ț ii Web orientat pe obiecte open source
implementat în PHP 5. Scopul Zend Framework-ului este de a simplifica dezvoltarea web,
men ț inând în acela ș i timp cele mai bune practici orientate pe obiecte pentru a construi aplica ț ii
web.

1.2. PHP

PHP este acronimul de la PHP: Hypertext Preprocessor. PHP este un limbaj de scripting
având un cod sursă de tipul, și care este utilizat în special pentru dezvoltarea aplicațiilor web și
5

poate fi integrat în HTML. [5]
Codul sursă a PHP-ului este introdus între niște instrucțiuni de procesare de început și de
sfârșit speciale și anume început și ?> pentru sfârșit, care permite să intrați și să ieșiți din modul
PHP.
PHP se diferenteaza de un JavaScript prin faptul că codul sau este executat pe server, care
va genera HTML, care este apoi este trimis către client. Clientul primește rezultatele rulării
acelui script fără să necesite cunoașterea codului sursă.
PHP se remarcă prin simplitate fiind accesibil pentru un începător, dar are și
funcționalități foarte complexe pentru un programator experimentat.
Limbajul PHP este axat în principal pe scripting de partea server-ului, deci se poate
realiza cu el mai multe lucruri, cum ar fi adunarea datelor din formulare, trimiterea și primirea de
coockies, dar și generarea conținutului dinamic al paginilor. [5]

Domeniile principale in care scripturile PHP sunt utilizate:
● Scripting de partea serverului este cel mai tradi ț ional ș i de bază domeniu al PHP.
Pentru a functiona necesita Analizatorul PHP. un navigator web si un server web.
Trebuie să rula ț i serverul web cu o instalare PHP conectată la el. [5]
● Scripting în linia de comandă se face prin realizarea unui script PHP să ruleze fără
un server ș i navigator web, fiind nevoice doar de un analizator PHP pentru a il
folosi în acest mod. Script-uri pot fi utilizate si pentru lucrări simple de procesare
a textelor.[5]
PHP este compatibil cu toate sistemele de operare Linux, Microsoft Windows, Unix,
OpenBSD.[6]
Limbajul PHP sus ț ine cele mai multe servere web existente si anume Apache, IIS si
multe altele.
6

PHP permite afi ș area de imagini, fi ș iere PDF, filme Flash. Se poate foarte usor sa se
afiseze orice text.
Cea mai importanta facilitate pe care o are PHP este sus ț inerea unui ​ larg domeniu de baze
de date ​ . Realizarea unei pagini web ce are nevoie de o bază de date este simplu prin utilizarea
unei extensii de lucru cu baze de date cum ar fi MySql sau folosind un nivel de abstractizare si
anume ​ PDO ​ .
PHP are functionalitati de ​ procesare a textului ​ foarte folositoare precum expresii regulare
compatibile cu ș i instrum ente pentru ​ folosirea documentelor XML ​ .

1.3. HTML

Hyper Text Markup Language, mai cunoscut sub numele de HTML, este limba standard
folosită pentru construirea site-urilor web.
Codul HTML instruie ș te browserele web cum să facă con ț inut. Aceasta explică structura
de bază a unei pagini web.
HTML nu este din punct de vedere tehnic un limbaj de programare; Este un limbaj de
markup utilizat pentru a organiza date de pe Internet. Documentele HTML sunt compuse din
elemente HTML reprezentate de etichete, care sunt scrise în paranteze unghiulare, pentru a
clasifica con ț inutul. [7]
Fiecare nouă versiune a HTML-ului sa concentrat pe îmbunătă ț irea accesibilită ț ii
tehnologiei Internet pentru toată lumea. De exemplu, pe lângă introducerea de noi op ț iuni pentru
crearea de ș abloane, HTML4 a îmbunătă ț it locurile de cazare pentru utilizatorii de Internet cu
deficien ț e de vedere. [7]
HTML5 a fost implementat pentru a începe abordarea acestor probleme pentru a oferi o
7

experien ț ă mai lină ș i mai consistentă pentru utilizatorii ș i dezvoltatorii web.
Datorită HTML5, paginile web pot acum să stocheze date pe browserul utilizatorului,
ceea ce elimină necesitatea cookie-urilor HTTP. Ca rezultat, con ț inutul poate fi livrat mai rapid
ș i mai sigur. De asemen ea, HTML5 a facilitat asigurarea coeren ț ei în toate browserele. Din
moment ce browserele s-au bazat în mod tradi ț ional pe diferite pluginuri pentru a reda fi ș iere
multimedia, suportul nativ al video ș i audio permite dezvoltatorilor să evite problemele de
compatibilitate. Atributele noi permit, de asemenea, comenzi video, inclusiv op ț iuni de redare,
pauză ș i volum.[7]
HTML5 include următoarele actualizări: [7]
● Elementele care au fost respinse, cum ar fi centrul, fontul ș i greva, au fost abandonate
● Normele îmbunătă ț ite de parsing permit o parsing mai flexibilă ș i compatibilitate
● Elemente noi, inclusiv video, timp, nav, sec ț iune, progres, metru, deoparte ș i pânză
● Noi atribute de intrare, inclusiv e-mail, adresă URL, date ș i ore
● Atribute noi, inclusiv charset, async ș i ping
● Noi interfe ț e API care oferă cache offline, suportare drag-and-drop ș i multe altele
● Suport pentru grafica vectoriala fara ajutorul programelor precum Silverlight sau Flash
● Suport pentru MathML pentru a permite o mai bună afi ș are a nota ț iilor matematice
● JavaScript poate rula acum în fundal datorită API-ului JS Web worker
● Atributele globale, cum ar fi tabindex, repeat ș i id pot fi aplicate pentru toate elementele

1.4. CSS

CSS (Cascading Style Sheets), este un limbaj de design simplu destinat simplificării
procesului de prezentare a paginilor web.
CSS se ocupă de aspectul unei pagini web. Folosind CSS, se poate controla culoarea
8

textului, stilul fonturilor, distan ț a dintre paragrafe, modul în care sunt dimensionate ș i dispuse
coloanele, ce imagini de fond sau culori sunt folosite, modelele de aspect, varia ț iile de afi ș are
pentru diferite dispozitive ș i dimensiunile ecranului Precum ș i o varietate de alte efecte. [8]
CSS este u ș or de învă ț at ș i de în ț eles, dar oferă un control puternic asupra prezentării
unui document HTML. Cel mai frecvent, CSS este combinat cu limbajele de marcare HTML sau
XHTML.
Avantajele CSS : [8]
● CSS economise ș te timp – se poate scrie CSS o dată ș i apoi se poate reutiliza în mai multe
pagini HTML. Se poate defini un stil pentru fiecare element HTML ș i se poate aplica la
cât mai multe pagini web.
● Paginile se încarcă mai repede – dacă se utilizează CSS, nu este necesar să scrie ț i atribute
HTML tag-uri de fiecare dată. Trebuie doar să se scrie o regulă CSS a unei etichete ș i să
se aplice la toate apari ț iile acelei etichete. Deci, mai pu ț in cod înseamnă perioade de
descărcare mai rapide.
● Între ț inere u ș oară – Pentru a face o schimbare globală, se schimbă pur ș i simplu stilul ș i
toate elementele din toate paginile web vor fi actualizate automat.
● Stilurile superioare la HTML – CSS are o gamă mult mai largă de atribute decât HTML
● Compatibilitatea cu mai multe dispozitive – CSS permit optimizarea con ț inutului pentru
mai multe tipuri de dispozitive. Prin utilizarea aceluia ș i document HTML, diferite
versiuni ale unui site web pot fi prezentate pentru dispozitive portabile, cum ar fi
PDA-uri ș i telefoa ne mobile sau pentru imprimare.
● Standardele web globale – Acum, atributele HTML sunt depreciate ș i se recomandă
utilizarea CSS. Deci, este o idee bună să se utilizeze CSS în toate paginile HTML pentru
a le face compatibile cu browserele viitoare.
● Offline Browsing – CSS poate stoca aplica ț iile web la nivel local cu ajutorul unui catcher
offline. Folosind acest lucru, putem vizualiza site-urile offline. Cache-ul asigură o
încărcare mai rapidă ș i o performan ț ă globală mai bună a site-ului.
● Platform Independence – Script oferă independen ț ă platformă consistentă ș i poate sprijini
9

ș i cele mai recente browsere.

1.5. Javascript

JavaScript este una dintre cele mai importante limbaje dinamice ale web-ului până în
prezent.
JavaScript este integrat în toate browserele web, facilitând implementarea de către
dezvoltatori ș i utilizatori. Este la fel de simplu citit ca HTML ș i nu necesită descărcare.
JavaScript nu este folosit numai pentru web, de ș i este bazat în principal pe web, este
folosit ș i pentru widget-u ri, aplica ț ii desktop ș i ac ț iuni PDF.
Utilizarea Javascript-urilor cele mai comune este de a scrie ac ț iuni în HTML care creează
anima ț ii ș i comportamente vizuale într-un browser web, mărind astfel experien ț a web pe care o
oferă staticul HTML. Unele ac ț iuni despre care se ș tie că Javascript sunt: [9]
● Deschiderea ferestrelor pop-up prin recunoa ș terea ac ț iunilor mouse-ului sau ale tastaturii
● Validarea formularelor
● Modificarea prezen ț ei CSS sau a imaginilor când mouse-ul se află peste o sec ț iune a
paginii
● Înregistrarea ș i trimiterea informa ț iilor despre obiceiurile de citire ale utilizatorilor.
În concluzie, Javascript este un limbaj web extrem de influent, care a schimbat modul în
care expereincem internetul. Este simplu de implementat ș i oferă o experien ț ă web mult mai
dinamică decât html static.

1.6. Ajax
10

Ajax nu este un limbaj de programare sau un instrument, ci un concept. Ajax este un
script de pe partea clientului care comunică către ș i de la un server / bază de date fără a fi nevoie
de o postback sau o reîmprospătare completă a paginii. Cea mai bună defini ț ie pe care am citit-o
pentru Ajax este "metoda de schimb de date cu un server ș i actualizarea unor păr ț i dintr-o pagină
web – fără reîncărcarea întregii pagini" Ajax este în general un termen generic pentru diverse
tehnici JavaScript folosite pentru a vă conecta Un server web dinamic fără a încărca în mod
necesar mai multe pagini. Într-un sens mai restrâns, se referă la utilizarea obiectelor
XmlHttpRequest pentru a interac ț iona dinamic cu un server web prin JavaScript.

Există 4 avantaje principale ale utilizării Ajax în aplica ț iile web: [10]
● Redirec ț ionări de apel: Ajax este folosit pentru a efectua un apel invers, efectuând o
călătorie dus-întors rapidă către ș i de la server pentru a prelua ș i / sau salva date fără a
afi ș a întreaga pagină înapoi pe server. Dacă nu efectua ț i o postback completă ș i trimite ț i
toate datele de formate către server, utilizarea re ț elei este redusă la minimum ș i se produc
opera ț ii mai rapid e. În site-uri ș i loca ț ii cu bandă limitată de bandă, acest lucru poate
îmbunătă ț i consid erabil performan ț a re ț elei. De cele mai multe ori, datele trimise către ș i
de la server sunt minime. Utilizând apelurile de apel, serverul nu are obliga ț ia de a
procesa toate elementele de formular. Prin trimiterea numai a datelor necesare, există o
prelucrare limitată pe server. Nu este necesar să procesa ț i toate elementele de formă, să
procesa ț i Vizuali zarea, să trimite ț i imagini înapoi la client sau să trimite ț i o pagină
completă înapoi la client.
● Efectuarea apelurilor asincrone: Ajax vă permite să efectua ț i apeluri asincrone către un
server web. Acest lucru permite browserului client să evite a ș teptarea tuturor datelor
înainte de a permite utilizatorului să ac ț ioneze încă o dată.
● User-Friendly: Pentru că o retragere a paginii este eliminată, aplica ț iile activate Ajax vor
fi întotdeauna mai receptive, mai rapide ș i mai u ș or de utilizat.
● Viteza crescuta: Ajax are scopul principal de a imbunatati viteza, performanta si usurinta
11

unei aplicatii web. Un exemplu excelent de Ajax este caracteristica de rating a filmului pe
Netflix. Utilizatorul evaluează un film, iar evaluarea personală pentru acel film va fi
salvată în baza de date fără a a ș tepta ca pagina să fie actualizată sau reîncărcată. Aceste
evaluări de filme sunt salvate în baza lor de date fără a afi ș a întreaga pagină înapoi pe
server.
Ajutările Ajax pot fi realizate prin instantarea unui obiect XMLHttpRequest în
JavaScript-ul client-side. Obiectul XMLHttpRequest poate fi folosit pentru a apela direct obiecte
de pe server, cum ar fi pagini ș i servicii web. Aceste pagini ș i serviciile web vor salva ș i / sau vor
returna datele. [10]
1.7. jQuery

JQuery este un tip de bibliotecă Javascript (Prototype, Ext Core ș i moo.fx sunt alte
exemple) menite să facă JavaScript mai accesibil ș i u ș or de utilizat. JQuery simplifică sintaxa
Javascript ș i relativ oferă o mai bună interac ț iune între Javascript ș i alte limbi de dezvoltare web.
JQuery oferă acces mai u ș or la modelul DOM ș i permite crearea cu u ș urin ț ă a anima ț iilor,
widgeturilor ș i segmentel or web dinamice (AJAX) în compara ț ie cu utilizarea numai a
Javascript. JQuery este, de asemenea, cea mai populară bibliotecă javascript folosită astăzi,
utilizată de zeci de site-uri uber-populare. [11]
JQuery este extrem de popular, deoarece permite realizarea unui set de func ț ii, simple ș i
complexe, utilizând cantitatea minimă de cod. JQuery este de obicei folosit pentru a implementa
orice caracteristică în modelul DOM într-un mod mai simplu ș i, de asemenea, pentru
func ț ionalitatea ajax. Chi ar ș i func ț iile complexe aparente, cum ar fi blocurile de text
expandabile (care pot fi utilizate în FAQ-uri, etc.) pot fi ob ț inute cu doar câteva linii de cod
folosind JQuery.
O altă caracteristică izbitoare a JQuery este abilitatea de a implementa func ț ionalitatea
AJAX. Ajax permite să se realizeze mai multe func ț ii într-o manieră elegantă fără a părăsi sau
12

reîncărca pagina. Acest lucru permite un mediu dinamic al paginii web, deoarece sarcinile pot fi
efectuate pe pagina în fundal, fără reîncărcarea unei pagini. Astăzi este folosit pe scară largă în
mai multe site-uri web, deoarece este o alternativă mai rapidă ș i mai u ș oară, iar JQuery permite
implementarea func ț ional ită ț ii ajax foarte u ș or. [11]

1.8. JSON
JSON sau JavaScript Object Notation, este un format minimal, u ș or de citit pentru
structurarea datelor. Este folosit în principal pentru a transmite date între un server ș i o aplica ț ie
web, ca o alternativă la XML.
JSON ne permite să depă ș im problema inter-domeniu deoarece putem folosi o metodă
numită JSONP care folose ș te o func ț ie de retur pentru a trimite da tele JSON înapoi în domeniul
nostru. Este această capabilitate care face ca JSON să fie atât de utile, deoarece deschide o
mul ț ime de u ș i care înainte erau dificil de realizat. [12]
JSON se foloseste atunci cand dorim ca la apasarea unui buton sa se realizeze modificare
in pagina respectiva, dar fara a reincarca din nou pagina. De exemplu la apasarea butonului de
aprecierea a unui video sa nu fie nevoie ca pagina respectiva sa se reincarce ci sa se vada
modificarea la apasarea butonului.

1.9. Bootstrap

Bootstrap este un framework gratuit pentru front-end pentru dezvoltarea web mai rapidă
ș i mai u ș oară.
Bootstrap include ș abloane de design HTML ș i CSS pentru tipografii, formulare,
butoane, tabele, navigare, modalită ț i, caruseluri de imagine ș i multe alte pluginuri JavaScript,
13

precum ș i op ț ionale.
De asemenea Bootstrap oferă posibilitatea de a crea cu u ș urin ț ă design-uri receptive ș i cu
aspect modern.
Bootstrap face dezvoltarea web-ului de tip front-end mai rapidă ș i mai u ș oară. Este făcut
pentru oameni de toate nivelurile de calificare, dispozitive de toate formele ș i proiecte de toate
dimensiunile.
Bootstrap se livrează cu CSS de vanilie, dar codul sursă utilizează cele două cele mai
populare preprocesoare CSS, Less ș i Sass. Porni ț i rapid cu CSS precompilat sau construi ț i pe
sursă. [13]
Cu Bootstrap, ve ț i ob ț ine o documenta ț ie extensivă ș i frumoasă pentru elemente HTML
comune, zeci de componente personalizate HTML ș i CSS ș i pluginuri minunate jQuery.
Bootstrap simplifică cu u ș urin ț ă ș i eficient salvările site-urilor ș i aplica ț iilor dvs. cu o
singură bază de cod, de la telefoane la tablete la desktop-uri cu interogări media CSS.
Bootstrap este compatibil cu toate browserele moderne (Chrome, Firefox, Internet
Explorer, Safari ș i Opera) . [13]

1.10. FontAwesome

Font Awesome vă oferă iconi ț e vectoriale scalabile care pot fi personalizate instantaneu –
dimensiunea, culoarea, umbră ș i tot ce se poate face cu puterea CSS.
Font Awesome este complet gratuit pentru uz comercial ceea ce îl face accesibil pentru
orce persoană.
Iconițele ​ font awesome au un font minunat, format din vectori, ceea ce înseamnă că sunt
14

minunate pe afi ș ajele de î naltă rezolu ț ie.
Font Awesome func ț ionează excelent cu toate cadrele.
1.11. MySql
MySQL cel mai popular sistem de gestionare a bazelor de date SQL Open Source, este
dezvoltat, distribuit ș i sus ț inut de Oracle Corporation.
O bază de date este o colec ț ie structurată de date. Poate fi orice, de la o listă simplă de
cumpărături până la o galerie de videoclipuri sau cantitatea mare de informa ț ii dintr-o re ț ea
corporativă. Pentru a adăuga, a accesa ș i a procesa datele stocate într-o bază de date
computerizată, avem nevoie de un sistem de gestionare a bazelor de date, cum ar fi serverul
MySQL. Deoarece calculatoarele sunt foarte bune la manipularea unor cantită ț i mari de date,
sistemele de gestionare a bazelor de date joacă un rol central în calcul, ca utilită ț i standalone sau
ca păr ț i ale altor aplica ț ii.
Bazele de date MySQL sunt rela ț ionale. O bază de date rela ț ională stochează datele în
tabele separate, în loc să pună toate datele într-un depozit mare. Structurile bazei de date sunt
organizate în fi ș iere fizice optimizate pentru viteză. Modelul logic, cu obiecte precum baze de
date, tabele, vizualizări, rânduri ș i coloane, oferă un mediu de programare flexibil. Se stabileste
reguli care reglementează rela ț iile dintre diferitele câmpuri de date, cum ar fi unu-la-unu,
unul-la-multe, unic, obligatoriu sau op ț ional ș i "indicii" între diferite tabele. Baza de date impune
aceste reguli, astfel încât, cu o bază de date bine concepută, o aplicatie nu vede niciodată date
inconsistente, duplicate, orfane, depă ș ite sau lipsite de date.
Partea SQL a "MySQL" înseamnă "Language Structured Query". SQL este cea mai
comună limbă standardizată folosită pentru a accesa bazele de date. În func ț ie de mediul dvs. de
programare, pute ț i intra direct în SQL (de exemplu, pentru a genera rapoarte), încorpora
instruc ț iuni SQL în cod scrise într-o altă limbă sau utiliza ț i un API specific limbajului care
ascunde sintaxa SQL. [14]
Software-ul MySQL este Open Source. Open Source înseamnă că este posibil ca oricine
15

să utilizeze ș i să modific e software-ul. Oricine poate descărca software-ul MySQL de pe Internet
ș i îl poate folosi fără să p lătească nimic.
Serverul de baze de date MySQL este foarte rapid, fiabil, scalabil ș i u ș or de utilizat.
Serverul MySQL poate rula confortabil pe un desktop sau laptop, alături de celelalte aplica ț ii,
servere web ș i a ș a mai departe, necesitând o aten ț ie redusă sau deloc.
Serverul MySQL a fost dezvoltat ini ț ial pentru a gestiona baze de date mari mult mai
repede decât solu ț iile existente ș i a fost utilizat cu succes în medii de produc ț ie extrem de
exigente timp de mai mul ț i ani. Conectivitatea, viteza ș i securitatea acestuia fac serverul MySQL
foarte potrivit pentru accesarea bazelor de date pe Internet. [14]
MySQL Server func ț ionează în sisteme client / server sau embedded.
Software-ul de baze de date MySQL este un sistem client / server care constă dintr-un
server SQL multi-threaded, care acceptă diferite back-end-uri, mai multe programe ș i biblioteci
diferite, instrumente administrative ș i o gamă largă de interfe ț e de programare a aplica ț iilor
(API). [14]
1.12. Apache HTTP server
Apache este cel mai utilizat software de server web. Dezvoltat ș i între ț inut de Apache
Software Foundation, Apache este un software open source disponibil gratuit.
Acesta poate fi foarte personalizat pentru a satisface nevoile multor medii diferite prin
utilizarea extensiilor ș i modulelor.
Un server web este software-ul care prime ș te solicitarea dvs. de a accesa o pagină Web.
Aceasta rulează câteva verificări de securitate asupra solicitării dvs. HTTP ș i vă duce la pagina
web. În func ț ie de pagina solicitata, pagina poate cere serverului să ruleze câteva module
suplimentare în timp ce generează documentul care să vă servească. Acesta vă serve ș te
documentul pe care l-a ț i solicitat.
Apache Web Servers sunt adesea folosite în combina ț ie cu motorul bazei de date
16

MySQL, limbajul de scripting HyperText Preprocessor (PHP) ș i alte limbi populare de scripting,
cum ar fi Python ș i Perl. A ceastă configura ț ie este denumită LAMP (Linux, Apache, MySQL ș i
Perl / Python / PHP) ș i formează o platformă puternică ș i robustă pentru dezvoltarea ș i
implementarea aplica ț iilor Web. [15]
În concluzie Apache Web Servers este unul dintre cel mai bun web server fiind și rapid și
sigur.
1.13. GetID3

GetID3 este un PHP script care extrage informa ț ii cum ar fi timpul de redare, bitrate,
rezolu ț ia din aceste form ate de fi ș iere: MP3, Ogg Vorbis, WAV , AVI, MPEG-1 video, ASF /
Windows Media.
GetID3 este open source, adică gratuit, fiind accesbil tuturor și este foarte ușor de folosit,
fiind nevoie doar să apelăm funcții cu ajutorul cărora putem află de exemplu timpul unui
videoclip.

Capitolul II. Arhitectură aplicației

Aplicația este structurată în două părți :
● Admin
● Frontend

Aplicația are cinci controllere atât pentru partea de admin și pentru partea de frontend are
patru. La fel tot cinci fișiere de model și view va avea pentru partea de admin și patru pentru
partea de frontend a aplicației.
Aplicația fiind realizată cu framework-ul DotKernel, aplicația va avea structura
reprezentată în figura nr 2.2.
17

Figura 2.2. Structura de fișiere a aplicației
18

Cele cinci controllere din admin sunt:
● Admin controller
● Index controller
● System controller
● User controller
● Video controller

În admin controller se realizează funcționalitatea ce ține de administratori, de exemplu
adăugarea, actualizarea, ștergerea unui administrator, statistici despre când s-au autentificat
administratorii.
Controller-ul index este cel mai important, deoarece el face legătură cu celalalte
controllere.
În system controller se realizează modificări pentru framework-ul Dotkernel, cum ar fi
schimbarea numărul limita la paginație.
În controller-ul user se află tot codul php ce realizează funtionalitatile din modulul user,
cum ar fi adăugarea, actualizarea, ștergerea unui utilizator și statistici despre de câte ori s-a
autentificat un utilizator.
Ultimul controller este video controller, unde se află toată funcționalitatea ce ține de
videoclipuri. De exemplu adăugarea, actualizarea, ștergerea unui videoclip sau statisctici despre
fiecare utilizator la ce videoclip s-a uitat.

Controllere din partea de frontend sunt :
● Index controller
● Page controller
● User controller
● Video controller
Index controller este similar cu index controller din partea de admin, el făcând legătură
din celalalte controllere.
19

Controller-ul user și cel video realizează același funcționalități că și cele din partea de
admin, cum ar fi adăugarea, actualizarea, ștergerea unui utilizator sau videoclip și statistici
despre utilizatori și videoclipuri.
Pentru ca aplicația să fie utilizabilă a fost necesară o baza de dată. În figura nr. 2.3 este
reprezentată structura bazei de date.

Figura 2.3. Structura bazei de date
20

În tabelul admin sunt stocate date despre administrator, cum ar fi username, parola,
email, nume, prenume. Aceste date fiind folosite atunci c ȃ nd administratorul se loghează pagina
de admin.
Tabelul adminlogin con ț ine informatii despre logările administratorului în panoul de
admin, ș i anume data la care s-a logat, ip-ul, id-ul administratorului (adminId) care este un index
fiind în legătura de unu-la-unu cu id-ul din tabelul admin. Acest tabel este folosit pentru
realizarea unei statistici privind logările administratorului.
Lista cu categoriile care se asociază unui videoclip se află în tabelul category unde avem
date cu numele categoriei si id-ul categoriei care se foloseste pentru rela ț ii cu alte tabele.
În tabelul comment sunt listate date despre comentariile adăugate la videoclipuri cum ar
fi mesajul adăugat, data la care a fost adăugat mesajul, id-ul utilizatorului care a comentat, id-ul
videoclipului unde a fost adăugat mesajul. Id-ul utilizatorului este în rela ț ie de unu-la-unu cu
id-ul din tabelul user. Id-ul videoclipului este un index, deoarece este într-o relatie de unu-la-unu
cu id-ul din tabelul video.
Tabelul playlist con ț ine listele cu playlist-urile create de către utilizatori ș i anume,
numele playlist-ului, id-ul playlist-ului ș i id-ul utilizatorului care a creat playlist-ul. Id-ul
utilizatorului este într-o rela ț ie de unu-la-unu cu id-ul din tabelul user.
Tabelul playlistvideo se află date despre videoclipurile care au fost adăugate în
playlist-uri. Tabelul con ț ine date cum ar fi id-ul playlist-ului care se află într-o rela ț ie de
unu-la=unu cu id-ul din tabelul playlist, id-ul videoclipului care este un index ș i este într-o rela ț ie
de unu-la-unu cu id-ul din tabelul video.
În tabelul ratingcomment sunt stocate date despre comentariile utilizatorilor ș i anume
id-ul comentariului care se află într-o rela ț ie de unu-la-unu cu id-ul din tabelul comment, o
coloana value care ne indică dacă comentariul a fost apreciat, atunci va avea valoarea 1, daca nu
a fost apreciat va avea valoarea -1. Tabelul mai con ț ine id-ul utilizatorului care este în rela ț ie de
unu-la-unu cu id-ul din tabelul user.
În tabelul ratingvideo se află date asemănătoare celor din tabelul ratingcomment ș i anume
id-ul videoclipului care a fost apreciat, id-ul utilizatorului care a apreciat, data si valoarea, care
21

poate fi 1 dacă videoclipul a fost apreciat ș i valoarea -1 dacă videoclipul nu a fost apreciat.
Id-urile sunt rela ț ie de un u-la-unu cu id-urile din tabele video ș i user.
Tabelul setting con ț ine date cum ar fi email-ul de contact a administratorului, rezultate
per pagină care este folosit la momentul c ȃ nd extragem date din baza de date, func ț ion ȃ nd ca ș i o
limită.
În tabelul subscribers se află date despre utilizatorii care s-au abonat la anumite canale
video. Tabelul con ț ine id-ul utilizatorului care s-a abonat, data la care s-a abonat ș i id-ul
utilizatorului care de ț ine canalul video. Id-ul utilizatorului din tabelul user se află în rela ț ie de
una-la-mai mul ț i cu id-ur ile din tabelul subscribers.
Lista cu utilizatorii înregistra ț i se afl ȃ în tabelul user care con ț ine username-ul
utilizatorilor, parola, email-ul, nume, prenume, data la care a fost creat contul ș i tabelul mai
con ț ine o coloană isAct ive care arată dacă contului utilizatorului mai este activ sau a fost
dezactivat din cauza unor abateri.
Tabelul userlogin con ț ine date despre logările utilizatorului cum ar fi data la care s-a
logat, numele browser-ul de pe care s-a logat ș i id-ul utilizatorului care se afla în rela ț ie de
unu-la-unu cu id-ul din tabelul user. Acest tabel se folose ș te pentru statistici din panoul de
administrare.
În tabelul video se găsesc listele cu videoclipurile încărcate de către utilizatori.Tabelul
con ț ine id-ul videoclipu lui care se autoincrementeaza după fiecare încărcare de videoclipuri,
titlul videoclipului, data la care a fost adăugat, descrierea, numărul de vizualizări, id-ul categoriei
care arată din ce categorie face parte videoclipul, id-ul utilizatorului care a încarcat videoclipul ș i
mai con ț ine o coloana isActive care arată dacă videoclipul este activ, atunci va avea valoarea 1,
altfel 0 dacă nu este activ.
Ultimul tabel numit watch con ț ine date despre vizualizările videoclipurilor, cum ar fi
id-ul utilizatorului, id-ul videoclipului la care s-a uitat utilizatorul ș i data la care s-a uitat. Id-ul
utilizatorul se află în rela ț ie de unu-la-unu cu id-ul din tabelul user, la fel ș i id-ul videoclipului
este într-o rela ț ie de unu-la-unu cu id-ul din tabelul video. Acest tabel este folosit pentru
realizarea unei statistici despre fiecare utilizator la ce s-a uitat la un moment dat. Pagina cu
această statistică se află în panoul de administrare.
22

Capitolul III. Funcționalitatea aplicației

Aplica ț ia are mai multe tipuri de utilizatori :
● Utilizatorul neînregistrat, care are acces doar la vizionarea de videoclipuri,
comentarii, canale video ale altor utilizatori
● Utilizatorul înregistrat, care are acces peste tot în partea de frontend
● Administratorul, care are acces peste tot în partea de admin

3.1 Funcționalitatea aplicației în partea de frontend

Pagina principală din partea de frontend este formată dintr-o bară de naviga ț ie ce se află
în header-ul paginii, ilustrată în figura nr 3.4 și este fixă, adică chiar ș i atunci c ȃ nd suntem în
partea de jos a paginii, bara de naviga ț ie se va afla întotdeauna în partea de sus a paginii.

.

Figura 3.4. Bară de navigație
Bara de naviga ț ie se află pe toate paginile din partea de frontend. Bara de naviga ț ie
con ț ine un buton pentru meniu, logo-ul aplica ț iei, o bară de căutare, un buton pentru încărcarea
de videoclipuri ș i încă două butoane care difer ȃ în func ț ie de tipul utilizatorului. Pentru
utilizatorul neînregistrat cele două butoane vor fi unul pentru autentificare ș i unul pentru
înregistrare. În bara de căutare se va introduce titlul unui videoclip ș i după apăsarea butonului de
cautare se va afi ș a o listă cu videoclipurile care au un titlul asemanător cu cel introdus în bara de
23

căutare. La apăsarea logo-ului aplica ț iei vom fi redirec ț iona ț i la pagina principală din frontend a
aplica ț iei.
În pagina principală se mai află doua liste cu videoclipuri. Prima listă con ț ine cele mai
recente videoclipuri încărcate, lista fiind limită la ș ase videoclipuri ș i un buton sub această listă
care ne va redirec ț iona în pagina unde se află toate videoclipurile ordonate după cele mai recente
adăugate. A doua listă con ț ine cele mai populare videoclipuri, lista fiind limită la ș ase
videoclipuri ș i un buton sub această listă care ne va redirec ț iona în pagina unde se află toate
videoclipurile ordonate după numărul de vizualizări, de la cel mai mare număr de vizualizări la
cel mai mic
Butonul de meniu este de tipul dropdown, la apăsarea lui se va afi ș a sub buton o listă cu
paginile care pot fi accesate, fiecare av ȃ nd în st ȃ nga o iconi ț ă reprezentativă denumirii acelei
pagini, iconi ț ele sunt realizate cu tehnologia FontAwesome. Aceste pagini diferă în func ț ie de
tipul utilizatorului cu exceptia următoarelor două :
● Home – pagina principală
● Most watched videos – această pagină con ț ine cele mai populare videoclipuri
Pentru utilizatorul neînregistrat meniul va mai con ț ine numele urmatoarelor pagini:
● Log in – pagina unde ne vom autentifica
● Register – pagina unde ne putem înregistra
Pentru utilizatorul înregistrat meniul va mai con ț ine numele urmatoarelor pagini:
● My channel – canalul video personal
● Liked videos – lista cu videoclipurile pe care le-am apreciat
● Subscribe videos – lista cu videoclipurile canalelor video la care ne-am abonat
● Playlist – lista de playlist-uri create
● My account – pagina cu date personale
● Log out – butonul prin care ie ș im din contul în care suntem autentifica ț i

Încărcarea unui videoclip se face prin apăsarea butonul numit Upload care ne va
redirecționa către un formular. Formularul va trebui completat cu un titlu pentru videoclip,
adăugarea videoclipului, adăugarea unei imagini care să fie reprezentativă conținutul
24

videoclipului, o descriere și să alegem din ce categorie face parte videoclipul. Tipul videoclipului
încărcat trebuie să fie mp4 altfel nu va putea fi încărcat la fel și pentru imagini trebuie să fie doar
te tipul jpg sau png. Lungimea titlul trebuie să fie între 3 și 50 de litere, iar pentru descriere
numărul de litere trebuie să fie între 5 și 2000 de litere. Videoclipul încărcat nu va apărea încă în
lista cu videoclipuri până când administratorul își va da acceptul, deoarece videoclipul poate să
ai aibă conținut nerecomandat.
Fiecare utilizator poate să ștergea videoclipul prin accesarea canalului video personal, iar
în partea dreapta jos a fiecărui videoclip se află un buton de ștergere numit Delete care la
apăsarea lui ne va redirecționa către un formular unde va trebui să bifăm dacă suntem siguri că
dorim să ștergem videoclipul și după care apăsăm butonul Delete. Există și un buton numit
Update care se află în partea dreapta a butonului Delete, care la apăsare va redirecționa
utilizatorul către un formular. Cu ajutorul acelui formular îi se permite utilizatorului să
actualizeze videoclipul putând să schimbe titlul, descriere, imagine, categorie, chiar și
videoclipul înșine. Aceste două butoane apar doar în dreptul videoclipuri care au fost încărcate
de utlizatorul autentifcat.
Pagina Most watched videos se vor regăsi cele mai populare videoclipuri ordonate de la
cel mai mare număr de vizualizări la cel mai mic. Lista este limitată la 12 videoclipuri pe o
pagină. Pentru a accesa restul va trebui să accesăm următoare pagină. Butoanele pentru pagina ț ie
se află în partea de jos a listei cu videoclipuri fiind numerotate ș i mai se află si două butoane prin
care putem să accesăm prima pagină, respectiv ultima pagină.
Pentru a ne autentifica va trebui să accesăm pagină de Log in. Această pagină conține un
formular de autentificare în care va trebui să introducem username-ul și parolă, după care vom
apasă butonul de Login. Dacă nu mai știm parolă putem apasă butonul de Password recovery
care ne va redirecționa către pagină de recuperare a parolei, unde vom trebui să introducem
email-ul și după să apăsăm butonul Submit.
Pentru a ne înregistra, utilizatorul va trebui să accesesze pagină Sign up, care îl va
redirecționa către un formular unde va trebui să complete usename-ul, parolă, nume, prenume,
email.
25

Pagină My channel este canalul video personal unde se află videoclipurile încărcate de
către utilizatorul autentificat. Videoclipurile sunt ordonate după cele mai recente adăugate și sunt
afișate doar 12 videoclipuri per pagină, pentru restul videoclipurilor va trebui să le accesăm cu
ajutorul butoanelor de paginație.
Pagină Liked videos conține lista cu videoclipurile apreciate. Videoclipurile sunt afișate
după cel mai recent videoclip apreciat. Ele vor fi afișate doar 12 per pagină la fel că la celalalte
pagini care conțin liste de videoclipuri.
În pagină Subscribe videos găsim lista cu videoclipurile canalelor video la care ne-am
abonat. Lista e formată din 12 videoclipuri per pagină, sub lista aflându-se butoanele pentru
paginație.
Pagină Playlist conține lista cu playlist-uri create de utilizatorul autentificat. În pagină
avem un buton care la apăsarea lui ne va redirecționa către un formular unde vom crea un nou
playlist prin introducerea unui nume pentru playlist. În dreptul fiecărui playlist există un buton
folosit pentru ștergerea playlist-ului respectiv.
Accesarea unui playlist se face prin apăsarea pe numele playlist-ului care ne va
redirecționa către pagină ce va conține o lista cu videoclipurile incluse în acel playlist. Lista este
limitată la 12 videoclipuri per pagină și ordinea lor este după cel mai recent adăugat. În dreptul
fiecărui videoclip există un buton pentru ștergerea videoclipului respectiv din playlist. Când
accesăm un videoclip prin intermediul playlist-ului vom avea două săgeți în partea de jos a
videoclipului prin care putem să accesăm celalalte videoclipuri din playlist-ul respectiv. Dacă nu
apăsăm nici una dintre cele două săgeți atunci la momentul terminării vizionării videoclipului se
va face o autodirectionare la următorul videoclip din playlist.
Pentru a vizualiza și modifică date personale va trebui să accesăm pagină My account
unde putem să schimbă parolă, email-ul, numele și prenumele și după va trebui apăsat butonul
Update.
Când dorim să ieșim din contul în care suntem autentificati va trebui să apăsăm butonul
pentru Log out care ne va redictiona la pagină principala a aplicației, dar fără a mai fi
autentificati.

26

Listele cu videoclipuri vor conține date despre videoclipuri prezentate în figura nr. 3.5.

Figura 3.5. Interfață unui videoclip într-o pagină cu liste de videoclipuri

După cum se poate vedea în figura 3 fiecare videoclip are o imagine reprezentativă
videoclipului. Sub imagine avem titlul videoclipului care este de culoarea albastru închis. După
avem numele utilizatorului care a încărcat videoclipul respectiv și mai avem date cum ar fi
numărul de vizualizări a videoclipului și dată la care a fost încărcat videoclipul.
Pentru vizionarea unui videoclip va trebui să accesăm videoclipul prin apăsarea pe
imaginea videoclipului sau pe titlul videoclipului. Se mai poate apasă și pe numele utilizatorului
care a încărcat videoclipul și vom fi redirecționați către canalul video a utilizatorului respectiv.
Cea mai importantă pagină din cadrul aplicației este cea în care putem viziona
videoclipului acesta fiind și scopul acestei aplicații. O astfel de pagină arată că în figura nr. 3.6.
27

Figura 3.6. Pagina unde se vizualizează videoclipul
28

Pentru redarea videoclipului am folosit HTML 5 video player. Sub videoclip avem date
despre videoclip, cum ar fi titlul acestuia, numărul de vizualizări, numele utilizatorului care a
încărcat videoclipul, o descriere a videoclipului. În partea dreapta jos a videoclipului se află
butoanele pentru aprecierea sau neaprecierea videoclipului respectiv și în dreptul fiecărui buton
se află numărul de aprecieri sau neaprecieri a videoclipului. În momentul apăsării butonului de
Like, iconiță butonului se va face albastru, iar în cazul în care apăsăm butonul de Dislike
culoarea iconiței se va face neagră.
Dacă dorim să vizualizam canalul video al utilizatorului care a încărcat acel videoclip va
trebui să apăsăm pe numele utilizatorului și vom fi redirecționați către pagină cu canalul video a
utilizatorului. În partea dreapta a numelul se află butonul pentru abonare sau dezabonare numit
Subscribe, respectiv Unsubscribe. La momentul apăsării acestui buton se va schimbă din
Subscribe în Unsubscribe sau invers, iar în momentul când am apăsat pe butonul Subscribe,
videoclipurile utilizatorului care a încărcat acel videoclip vor apărea în lista cu videoclipuri din
pagină Subscribe videos sau dacă ne vom dezabona atunci videoclipurile utilizatorului vor
dispărea din pagină Subscribe videos. Butonul nu va există atunci când utilizatorul autentificat
este același cu utilizatorul care a încărcat videoclipul.
Fiecare videoclip este asociat unei categorii după cum se poate vedea în figura 4, sub
descriere, videoclipul din figura respectivă fiind din categoria de filme. Dacă dorim putem
accesa pagină în care vor fi afișate videoclipurile ce fac din categorie respectivă prin simplă
apăsare pe numele categoriei vom fi redirecționați în acest caz la o pagină cu videoclipuri ce sunt
asociate categoriei de filme.
Dacă dorim să adăugăm un videoclip într-un playlist se poate face prin simplă apăsarea a
butonul de Add video playlist care ne va redirecționa către un formular în care va trebui să
alegem în ce playlist dorim să îl adăugăm și după care să apăsăm butonul de Add.
Un videoclip poate fi împărtășit pe rețele de socializare prin apăsarea butoanele cu iconițe
reprezentative rețelelor de socializare. De exemplu dacă dorim să împărtășim un videoclip cu
prietenii de pe Facebook vom apasă butonul cu iconiță de la Facebook.
Fiecare pagină a unui videoclip conține în partea de jos o lista cu comentarii. Pentru a
adaugă un comentariu vom completă căsuța unde scrie Add comment și după care apăsăm
29

butonul Comment. Comentariile sunt afișate în ordinea în care au fost adăugate de la cel mai
recent. În partea de sus a fiecărui comentariu se află numele utilzatorului care a adăugat
comentariul respectiv și dată la care a fost adăugat. În partea de jos a unui comentariu se află
butoanele pentru aprecierea sau neaprecierea comentariului respectiv și un buton numit Reply pe
care îl folosim atunci când dorim să răspundem la un comentariul. La rândul sau fiecare răspuns
la comentariu va avea numele utilizatorului care a răspuns, dată la care a adăugat răspunsul și
fiecare răspuns are și el butoane pentru apreciere și neapreciere a acelui răspuns. Fiecare
comentariu poate fi șters prin apăsarea butonului de ștergere care ne va redirecționa către o
pagină unde va trebui să bifăm căsuța dacă dorim să ștergem acel comentariu după care să
apăsăm butonul de ștergere numit Delete. Un comentariu poate fi actualizat cu ajutorul butonul
numit Update care ne va redirecționa către un formular unde putem să schimbăm mesajul
comentariului după care apăsăm butonul Update pentru că mesajul să se actualizeze.
În pagină în care vizualizam videoclipul avem în partea dreapta o lista cu videoclipurile
utilizatorului care a încărcat videoclipul respectiv. Acea lista poate să diferă, de exemplu când
accesăm un videoclip prin intermediul playlist-ului, atunci în partea dreapta se va află o lista cu
videoclipurile din playlist-ul respectiv.
In pagina in care vizualizam videoclipul avem in partea dreapta o lista cu videoclipurile
utilizatorului care a incarcat videoclipul respectiv. Acea lista poate sa difera, de exemplu cand
accesam un videoclip prin intermediul playlist-ului, atunci in partea dreapta se va afla o lista cu
videoclipurile din playlist-ul respectiv.

3.2 Funcționalitatea aplicației în partea de admin

Partea de admin poate fi accesată doar de către administratori, deoarece pot sa existe mai
multi administratori.
În momentul când accesăm partea de adminstrare suntem întâmpinați de către un
formular de autentificare.
Panoul de adminstrare este constituit din patru module care pot fi accesate din meniu :
30

● Dashboard
○ Home
○ Setting
● Admin
○ List
○ Add new
○ My account
○ Logins
● User
○ List
○ Add new
○ Logins
● Video
○ List
○ Add new
○ List views
○ List comments

După ce ne-am autentificat vom fi redirecționați către pagină List din modulul Video cu
toate videoclipurile și informații despre ele.
Informațiile constă în titlul videoclipului, utilizatorul videoclipului, dată la care a fost
adăugat videoclipul, categoria, numărul de vizualizări și starea videoclipului dacă este activ sau
inactiv, adică dacă videoclipul este vizibil în lista de videoclipuri sau nu, această opțiune fiind
utilă în cazul în care videoclipul are un conținut nerecomandat. Administratorul are posiblitatea
să actualizeze videoclipul cu ajutorul butonului Update care îl va redirecționa către un formular
în care poate să modifice titlul, imaginea, categoria și chiar videoclipul. Administratorul poate să
și șteargă un videoclip prin apăsarea butonul de ștergere numit Delete.care ne redirecționează
către un formular în care trebuie să bifăm o căsuța dacă suntem siguri că dorim să ștergem
videoclipul.
31

În pagină Add new din modulul Video, administratorul poate încarcă la rândul lui un
videoclip trebuind să completez exact același formular că și cel completat de un utilizator
normal, date care trebuiesc completate având aceleași cerințe.
Administratorul are acces la o pagină numită List comments în care sunt afișate toate
comentariile adăugate de către utilizatori, în care poate să vadă la ce videoclip să adăugat
comentariul, utilizatorul care a adăugat comentariul, dată, mesajul. La fel că și pentru
videoclipuri, administratorul are posibilitatea să actualizeze comentariul putând să modifice
conținutul mesajul în cazul în care conține cuvinte vulgare sau rasiste. Administratorul poate să
dezactiveze un comentariu sau să îl activeze, adică să nu fie afișat în lista de comentarii a acelui
videoclip sau invers. Comentariul poate fi șters în totatlitate din baza de date de către
administrator cu ajutorul butonului numit Delete.
În panoul de administrare există o pagină, List views, cu o statistică despre fiecare
vizualizare a unui videoclip putatnd să vadă la ce videoclip să uitat un utilizator la un moment
dat.
Administratorul are acces la lista cu toți utlizatori înregistrați și datele despre ei, cum ar fi
username, email, nume, prenume, dată la care și-a creat contul. Această pagină este List din
modulul User. Administratorul poate să dezactiveze contul unui utilizator din cauza unor abateri,
dar poate să îl activeze din nou. Altă opțiuni pe care le mai are administratorul asupra
utilizatorului este de a șterge contul sau de a îi modificate date personale ale unui utlizator.
În pagină Add new din modulul User, administratorul poate să adauge alți utlizatori prin
completarea unui formular similar celui completat de un simplu utilizator când își crează un cont
în partea de frontend a aplicației.
Altă statistică din panoul de administrare este cea în care administratorul poate să vadă
fiecare utilizator când s-a autentificat, de pe ce browser, dată și sistemul de operare de pe care s-a
autentificat. Această pagină este Logins din modulul User. Există și posibilitatea că
administratorul să filtreze datele după browser-ul folosit sau după dată autentificări pentru a îi fi
mai ușor să găsească anumite date specifice în cazul anumitor incidente.
În modulul admin, un administrator poate în pagină List. să vadă lista cu toți
administratorii și datele despre ei, cum ar fi username, email, dată la care s-a creat contul. La
32

fiecare admin există și opțiunea de a actualiza date personal și de a șterge contul din baza de date
cu ajutorul butoanelor de Update și Delete.
Administratorul are posibilitatea sa creeze si alti administratori prin intermediul paginii
Add new din modulul admin. In pagina Add new va trebui completat un formular cu username,
email, nume, prenume si cu posibilitatea ca noul administrator sa fie activ sau inactiv prin bifarea
casutei Yes, respectiv No.
In pagina My account, administratorul autentificat poate sa isi vada datele personale,
putand sa modifice parola, numele, prenumele sau email-ul.
La fel ca si in modulul user exista si in modul admin o pagina numita Logins care
prezinta cand administratorii s-au autentificat si de pe ce browser si sistem de operare s-au
autentificat.
Panoul de administrare mai contine statistici in pagina Dashboard. Aceste statistici sunt
sub forma de grafic si prezinta de cate ori s-a autentificat administratorii in ultimele trei lunii. O
alta statistica este cea in care se prezinta care sunt cei mai activi utilizatori tot sub forma unui
grafic.

Concluzii

33

Bibliografie

[1] . ​ https://www.dotkernel.com/docs/what-is-dotkernel/
[2]. ​ https://www.dotkernel.com/docs/hmvc-structure/
[3]. ​ https://www.dotkernel.com/docs/model-view-controller/
[4]. ​ https://www.dotkernel.com/docs/system-requirements/
[5]. ​ http://php.net/manual/en/intro-whatis.php
[6]. ​ https://wiki.php.net/platforms
[7]. ​ https://www.keycdn.com/blog/html-vs-html5/
[8]. ​ https://www.tutorialspoint.com/css/what_is_css.htm
[9]. ​ https://www.tutorialspoint.com/javascript/javascript_overview.htm
[10]. ​ http://www.seguetech.com/ajax-technology/
[11]. ​ https://jquery.com/
[12]. ​ https://www.copterlabs.com/json-what-it-is-how-it-works-how-to-use-it/
[13]. ​ http://getbootstrap.com/
[14]. ​ https://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html
[15]. https://help.ubuntu.com/lts/serverguide/httpd.html
34

Similar Posts