Aplicatie Web Responsive Pentru Administrarea Unei Scoli

UNIVERSITATEA DIN PITEȘTI

FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ

SPECIALIZAREA INFORMATICĂ

Aplicație web-responsive pentru administrarea unei școli

Coordonator științific : Student :

Lector univ. dr. Adrian Turcanu Popescu Eduard Valentin

– 2016 –

PENTRU ÎNCEPUT

Această lucrare este un cuprins ale aspectelor teoretice și practice utilizate pentru conceperea aplicației prezentate.

Ea este structurată în 5 capitole, cu fiecare capitol având la rândul lui mai multe subcapitole, care vor fi prezentate mai jos:

Capitolul 1 – Introducere în care va fi prezentat domeniul din care face parte lucrarea, precum și a introducerii și a descrierii temei propriu-zise și structurarea aplicației.

Capitolul 2 – Tehnologii utilizate în care se va face o introducere la principalele noțiuni și idei care au dus la dezvoltarea Internetului, în care sunt explicate noțiuni ca Internet, aplicații pentru internet, servere web și aplicații web, pagini web și pagini web responsive, limbajele folosite pentru dezvoltarea aplicației. În el se afla prezentarea generală a limbajelor de markup și scripting, HTML, PHP și MySQL, precum și unele descrieri ale principalelor noțiuni legate de aceste limbaje, cum ar fi modul de utilizare al MySQL, conectarea și deconectarea de la un server, descrierea utilizării PHP în cadrul unei pagini HTML, precum și elemente generale de JavaScript

Capitolul 3 – Specificațiile aplicației reprezintă lucrarea și prezentarea generală a aplicației.

Capitolul 4 – Descrierea aplicației reprezintă descrierea lucrării. Aplicația a fost implementată folosind doar limbaje și tehnologii Open Source, precum MySQL, limbajul de server-side scripting PHP, folosește arhitectura WordPress, cât și CSS pentru modificarea stilului paginilor.

Interfața grafică a aplicației a fost creată folosind o temă WordPress modificată, pe care toate paginile site-ului o folosesc pentru ca layoutul să fie similar pe întreg site-ul.

În acest capitol, vor fi prezentate și diferite exemple, precum crearea unei pagini noi pe site folosind interfața de administrator, și diferite screenshots în care se exemplifică utilizarea diferitelor limbaje.

Capitolul 5 – Concluzii reprezintă părerea mea personală despre crearea aplicației, precum și idei privind îmbunătațiri și oportunități de dezvoltare ale site-ului web, prin adăugarea de noi elemente.

CAPITOLUL 1

INTRODUCERE

În zilele noastre, internetul face parte din nevoile noastre zilnice. Apariția calculatoarelor a dus la schimbări importante în traiul nostru zilnic, iar multe dintre activitățile noastre de zi cu zi au fost ușurate de apariția calculatoarelor.

Astăzi, putem găși calculatoare conectate la internet oriunde, de la ghișeul casierei de la magazin, la service-ul auto la care ne-am dus masina la reparat, la cinema, sau chiar în buzunarele noastre sub forma telefoanelor mobile.

Motivul pentru care calculatoarele sunt folosite este datorită faptului că ele ne ușureaza viața și munca, și devîn până și mijloace de entertainment.

La începuturi, în 1980, internetul nu era decât un mijloc de comunicare folosit de diverse universități, iar evoluția lui în ceva folosit zilnic de peste o treime din populatia planetei parea ceva incredibil.

Astăzi, internetul nu numai este parte din viața noastra de zi cu zi, dar reuseste și influenteze și să schimbe alte tehnologii de comunicare, precum televiziunea și telefonia, dand nastere la servicii noi, precum telefonia prin internet, și televiziunea prin internet. Până și ziarele și cărțile au astăzi versiuni online sau au fost transformate în bloguri.

Dar, internetul nu mai este limitat de calculatoare și laptopuri, ci a devenit portabil, prin apariția telefoanelor inteligente și a tabletelor, ceea ce a dus la apariția site-urilor web-responsive.

1.1 Tema proiectului

Prin evoluția explozivă a informaticii, care a dus la atâtea schimbări în viața noastra,este necesar ca orice instituție, fie ea o bancă, un magazin, sau în cazul nostru o școala să se faca conoscută pe internet, pentru a da dovadă de actualitate și a putea fi descoperită de un număr mult mai mare de persoane, față de modurile clasice de prezentare, dar și pentru a se putea face cunoscute și a se putea mandri cu realizarile elevilor sai, cu diferitele parteneriate și proiecte în curs de dezvoltare, dar și prin a oferi o platformă pentru diverse anunțuri și informații pe care elevii școlii, sau parintii lor o pot folosi pentru a se afla la curent cu orice eveniment pe care școala îl poate avea.

Proiectul „Aplicație web-responsive pentru administrarea unei școli” este un exemplu de aplicație web destinat în mod special unei unități de învățământ. Site-ul este structurat în mai multe pagini, structurate în jurul unei pagini principale, și conține tot ce o unitate de învățământ ar putea avea nevoie.

CAPITOLUL 2

TEHNOLOGII UTILIZATE

Calculatorul este astăzi folosit de orice persoana, de la adolescentul care iși rezervă un bilet la un film în cinematograful lui preferat, până la directorul unei companii care trimite un e-mail către o filiala din strainatâte. Aceste lucruri ar parea ca nu au nimic în comun, dar, ambele se folosesc de internet. Deși folosit astăzi de toata lumea, rivalitatea dintre Statele Unite și Uniunea Sovietică a fost de fapt, cauza apariției Internetului.. În 1959, John McCarthy, profesor la Universitatea Stanford, gasește soluția de a conecta mai multe terminale la un singur calculator central: time-sharing. Odata cu apariția calculatoarelor în marile universități, apare și problema interconectarii acestora, o problema pe care cercetatorul Lawrence Roberts sustine o soluție prin comutarea de pachete, în modelul packet switching. În 1979, rețeaua a fost separata în două, una militară, și una comerciala, ceea ce a dus la o creștere exponențială în numărul de calculatoare conectate la internet. O altă schimbare majoră s-a produs în 1993, când a apărut browserul „Mosaic”, bazat pe o interfață grafică și care a accelerat și mai mult creșterea rețelei web (de la 130 de servere în iunie 1339 la 11500 în 1994).

Pentru cercetători, Internetul reprezintă o „bibliotecă infinită”, în care se pot găsi informații din absolut orice domeniu, cat și o platformă de comunicare cu alți cercetători din domeniu, ceea ce duce la un nivel de comunicare și de dezvoltare accelerat, spre deosebire de bibliotecile clasice, unde informatia poate lipși sau poate fi incompleta, iar posibilitatea de a discuta cu alți cercetători din același domeniu permite un nivel de cooperare prin intermediul internetului prin utilizarea de aplicații gratuite, care nu ar fi putut fi posibîl fara acestea.

Aplicațiile Internetului sunt numeroase: de la paginile web, chat, la poșta electronică (e-mail), transferul de date și informații, video, video on demand, telefonie și telefonie cu imagine pe internet, e-commerce, sondări de opinie, medii pentru toate genurile de grafică și muzica, mediu pentru raspandirea stirilor, grupuri de discutii pe teme prestabilite și multe altele.

În Romania, internetul a pătruns relativ încet, și a fost considerat pentru multa vreme drept un lux, dar s-a dezvoltat repede, viteza conexiunii de internet fiind astăzi una dintre cele mai rapide de pe planetă, datorita rețelelor moderne. Cu toate acestea, utilizarea internetului de către firme și companii, sau chiar de către guvern, și menținerea unor site-uri moderne pentru transmiterea de informații este incă o practică nouă și greoaie, dar care a început și se va dezvolta în viitor.

Deși internetul nu este „deținut” de către nimeni, cateva idei de bază sunt folosite pentru dezvoltarea acestuia, de către experții implicati în menținerea și dirijarea rețelei pentru a putea utiliza internetul cat mai ușor și mai sigur cu putință:

Securitate

Apariția comertului on-line a dus la apariția de tehnologii de protejare ale tranzacțiilor din mediul on-line, fie ele tranzacții dintre clienți și vanzatori, tranzacții de capital între banci sau chiar trimiterea de bani rudelor folosind site-uri tip PayPal, dar și crearea unui mediu mai sigur pentru copii care folosesc Web, folosind criterii de evaluare a conținutului unei pagini, și prin setări care se pot aplica browserelor de internet de către parinti, sau asigurând confidentialitatea mesajelor de tip e-mail.

Comunicare

Astăzi, este posibîl ca mai multe persoane, aflate în diferite colțuri ale planetei să parțicipe la conferinte on-line, atât audio cat și video, să editeze simultan fișiere text și să expuna diferite imagini, scheme și proiecte în timp real astfel incăt să fie vazute de către toti parțicipanții.

Accesibiliate

Indiferent că este un proiect, un e-mail sau un site web, utilizatorul îl poate accesa de pe orice sistem conectat la Internet, fie el un calculator, un laptop, o tableta sau telefon mobil, de acașa sau de oriunde de pe planetă, nefiind astfel limitat la folosirea unui singur calculator.

2.1. Pagini și servere Web

Internetul constă în pagini cu informații de pe gazde (host-uri) care rulează un software de tip server web. Un server web este un program care furnizează pagini web la cerere, și le pune la dispoziția solicitănților prin HTTP.

LAMP este un acronim pentru o platformă de găzduire a site-urilor web formată din componente open source. Acronimul este dat de inițialele aplicațiilor folosite:

Linux – Sistem de operare

Apache – Server HTTP

MySQL – Baza de date

PHP/Perl/Python – limbaj de programare pentru a crea site-uri dinamice

O pagină web este o resursă aflată în spațiul web, de obicei în format HTML sau XHTML, având hyperlinks (hiperlegături) care fac navigarea simplă, cu un click, de la o pagină sau secțiune de pagină la altă. Ea se numeste așa deoarece ea se poate afișa pe un monitor sau ecran de calculator și se aseamănă oarecum cu o pagină de ziar.

2.2. Pagini web statice și dinamice, pagini web responsive

Paginile web sunt de trei tipuri: tipul static, sau mai bine spus tipul clasic de pagină web, care este livrată către utilizator exact așa cum este stocată, ca și conținut web în sistemul de fișiere al serverului web, în timp ce o pagină web dinamica este generata de o aplicație web care este condusă de software de tip server-side sau de către client-side scripting. Paginile web de tip dinamic ajuta browserul (și prin el clientul) să îmbunătățească pagina de web prin datele introduse de către utilizator la server.

Designul web responsive este o abordare a web designului care vizează crearea de site-uri care oferă o vizionare optima prin navigare printr-un minim de redimensionare și panoramare intr-o gama largă de dispozitive (de la desktopuri și laptopuri la telefoane mobile și tablete).

Un site web responsive adaptează aspectul la mediul de vizionare prin utilizarea grilelor bazate pe proporții, a imaginilor flexibile și a interogărilor media CSS3. Conceptul de grilă fluida solicită ca elementul de dimensionare a paginii să fie specificat mai degrabă în unități relative, de tip procentaj, decât în unități absolute, cum ar fi pixelii sau punctele. De asemenea, imaginile flexibile sunt dimensionate în unități relative, pentru a le împiedica afișarea în afara elementului în care sunt conținute. Paginile web responsive folosesc diferite stiluri CSS bazate pe caracteristicile dispozitivului pe care site-ul este afișat.

Designul web responsive a devenit din ce în ce mai important, deoarece cantitatea de trafic mobil de internet reprezintă în prezent mai mult de jumătate din traficul total de internet. În anul 2015, compania Google a început să stimuleze ratingurile site-urilor care sunt „mobile-friendly” în cazul în care căutarea este făcută de pe un dispozitiv mobil, având ca efect penalizarea site-urilor care nu sunt responsive.

2.3. HTML, Javascript și CSS

2.3.1 HTML

HTML (HyperText Markup Language), este un limbaj de marcare standard pentru crearea paginilor web ce pot fi afișate intr-un browser. Scopul HTML este mai mult de prezentare a informațiilor, decât descrierea semanticii documentului.

El stă la baza paginilor web și este format din diferite etichete (tag-uri), și care sunt folosite pentru a forma, în mare, forma paginii web.

HTML folosește un format text ușor de înțeles și editat de către oameni, prin simpla folosire a unui editor de text.

2.3.2. Javascript

Javascript este un limbaj de programare orientat pe obiecte, folosit mai ales pentru introducerea unor funcționalitati în paginile web, codul Javascript fiind rulat de către browser.

Utilizarea cea mai des intalnita a Javascript este scriptarea paginilor web. Programatorii pot îngloba în paginile HTML script-uri pentru diverse activitați cum ar fi crearea de meniuri, efecte animate dar și pentru a verifica datele introduse de utilizatori.

O tehnica de construire a paginilor web tot mai intalnita în ultimul timp este AJAX (Asynchronous JavaScript and XML), care constă în executarea de cereri HTTP în fundal, fara a reincărca toata pagină web, și actualizarea numai anumitor porțiuni a paginii prin manipularea DOM-ului paginii. Tehnica AJAX permite construirea de interfate web cu timp de raspuns mic.

2.3.3. CSS

CSS (Cascading Style Sheets) este un limbaj folosit pentru a descrie prezentarea unui document scris într-un limbaj de marcare. CSS are o sintaxă simplă, care folosește cuvinte cheie în limba engleză pentru a specifica numele proprietăților stilului. Stilul poate fi inclus in codul HTML prin folosirea elementului <style> sau prin intermediul unui fișier extern.

CSS este limbajul folosit pentru prezentarea paginilor web, inclusiv fonturi, culori și formate (layout-uri). Ea permite adaptarea prezentarii la diferite tipuri de dispozitive, cum ar fi ecrane mari și mici, și imprimante. CSS este independent de HTML și poate fi folosit cu orice limbaj de marcare bazat pe XML. Separarea HTML de CSS face ca menținerea site-urilor să fie mai ușoară precum și menținerea stilurilor pe mai multe pagini, cat și adaptarea paginilor la diferite medii. Acestă se mai numeste și separarea structurii (sau a conținutului) de prezentare.

2.4. Limbajul PHP

PHP este un limbaj de server-side scripting de uz general, cu cod-sursă deschis (open source), utilizat pe scară largă și care este potrivit în special pentru dezvoltarea aplicațiilor web, dar și care poate fi utilizat și ca un limbaj de programare de uz general, și poate fi integrat în HTML. În locul unor mulțimi de comenzi pentru a afișa HTML, paginile PHP conțin HTML cu cod-sursă încorporat, care realizează „ceva”. Codul sursă PHP este încorporat între niste instructiuni de procesare de început și de sfârșit speciale <?php și ?>, care permit intrarea și ieșirea din „Modul PHP”.

Diferența majoră între PHP și JavaScript de partea clientului este executarea codului, care este executat pe server, și nu client-side, generând HTML care este apoi trimis către client. Clientul va primi rezultatele rulării acelui script, fara a putea cunoaște codul-sursă a site-ului.

PHP se diferențiază de restul limbajelor de scripting prin simplitate, fiind ușor de folosit de începători, dar și prin existența multor facilitati avansate pentru programatorii profesionisti.

PHP poate fi utilizat pe toate sistemele de operare majore, inclusiv Linux, multe variante Unix, Microsoft Windows, Mac OS X, RISC OS și altele. PHP de asemenea susține majoritatea serverelor web existente în prezent. Acestea includ servere ca și Apache, IIS, precum și multe altele. De asemenea sunt suportate și serverele ce pot utiliza binarul PHP FastCGI, cum ar fi nginx. PHP fișieronează ca modul sau ca procesor CGI.

Un exemplu de script simplu de php:

<!DOCTYPE HTML>
<html>
    <head>
        <title>Titlu</title>
    </head>
    <body>

        <?php
        echo "Sunt un script scris PHP!";
        ?>

    </body>
</html>

Există trei domenii principale în care sunt utilizate scripturile PHP:

Scripting de partea serverului (server-side).

Acesta este cel mai tradițional și principalul domeniu al PHP. Pentru ca acesta să funcționeze este nevoie de trei lucruri: un analizator PHP (în calitate de CGI, sau modul pentru server), un server web și un navigator web. Serverul web trebuie să aibă o instalare PHP conectată la el. Ieșirile PHP pot fi accesate utilizând navigatorul web, vizualizând pagina PHP prin server.

Scripting în linia de comandă.

Un script PHP poate rula și fără un server sau fără un navigator web. Este necesar doar analizatorul PHP pentru a fi utilizat în modul acesta. El este ideal pentru scripturi executate în mod regulat cu cron (pe Unix sau Linux) sau cu Task Scheduler (pe Windows).

Scrierea aplicațiilor de birou.

Deși PHP nu este cel mai potrivit limbaj pentru a creea o aplicație de birou cu o interfață grafică, se poate utiliza PHP-GTK pentru a scrie asemenea aplicații. Aplicațiile scrise în acest mod vor rula pe mai multe platforme.

2.4.1. Sintaxa de bază

Atunci când PHP parsează un fișier, el se uită după tag-urile de deschidere și închidere, acestea fiind <?php și ?>, care indică când PHP trebuie sa înceapă și să termine interpretarea codului dintre ele. Această manieră permite ca PHP să fie încorporat în tot felul de documente, pentru că orice este în afara perechii de tag-uri de deschidere și închidere este ignorat de către PHP. Acest fapt permite fișierelor PHP să aibă un conținut mixt.

Astfel, PHP poate fi încorporat în documente HTML, de exemplu pentru a putea crea șabloane, precum:

<p>Acestă parte va fi ignorată de PHP și afișată în browser.</p>
<?php echo 'În timp ce acesta va fi interpretată.'; ?>
<p>Acesta va fi de asemenea ignorată de către PHP și afișată în browser.</p>

Când PHP întâlnește tagul de inchidere, pur și simplu ignoră și incepe să afișeze tot ce găsește (excepție fiind trecerea la o line nouă ce urmează imediat dupa acesta) până da de alt tag de deschidere, doar daca nu este în mijlocul unei declarații conditionale, caz în care interpretorul va afla rezultatul condiționalului inainte de a lua o decizie privind peste ce să sară.

<?php if ($expression == true): ?>
 Afișeaza dacă expresia este adevărată
<?php else: ?>
 Afișeaza dacă expresia nu este adevărată
<?php endif; ?>

În exemplul de mai sus, PHP va sări peste blocurile unde condționalul nu este îndeplinit, chiar dacă ele se află în afara tag-urilor PHP.

PHP sare peste ele conform condițiilor, deoarece interpretatorul PHP va sări peste blocurile condiției neîndeplinite.

În cazul afișării blocurilor mari de text, în general se recomandă ieșirea din parsatorul PHP, deoarece este mai eficientă decât trimiterea întregului text printr-o comandă echo sau print.

Precum în C sau Perl, PHP necesită ca instrucțiunile să fie terminate cu punct și virgulă. Tag-ul de închidere al unui bloc de cod PHP implică automat punct și virgula. Tag-ul de închidere pentru bloc va include și trecerea la linia nouă imediat urmatoare, daca aceasta există.

Exemplu:

<?php
     echo 'Acesta este un test';
?>

<?php echo 'Acesta este alt test' ?>

<?php echo 'Nu am inclus un tag de închidere';

2.4.2. Tipuri de date

PHP suportă opt tipuri de date:

Patru tipuri scalare:

Boolean (pentru expresii de tip adevarat / fals)

Integer (numere inregi)

Float/Double (numere cu virgulă mobila)

String (șiruri de caractere)

Două tipuri compuse:

Array

Obiect

Două tipuri speciale:

Resource

NULL

Tipul unei variabile nu trebuie stabilit de programator, ci este decis la rulare de PHP, după contextul în care acea variabilă va fi utilizată.

2.4.3. Variabile

Variabilele în PHP sunt reprezentate de un semn dolar ($) urmate de numele variabilei respective. Numele unei variabile este case-sensitive.

În mod implicit, variabilele sunt atribuite de către valoare. Astă înseamnă ca atunci când se atribuie o expresie unei variabile, întreaga valoare a expresiei originale este copiată într-o variabilă de destinație. Acest lucru înseamnă, că, de exemplu, după atribuirea valorii unei variabile la alta, schimbarea uneia dintre aceste variabile nu va avea nici un efect asupra celeilalte.

PHP mai oferă și alt mod de atribuire a valorilor, atribuirea prin referință. Acest lucru înseamnă ca noua variabilă pur și simplu face referință la (devine un alias pentru) variabila originală. Modificarile aduse la noua variabilă afecteaza originalul și vice-versa. Pentru a atribui prin referință, se atașează un ampersand (&) la începutul variabilei care va fi atribuită, numită și variabilă sursă.

PHP oferă un număr mare de variabile predefinite pentru orice script pe care îl rulează. Cu toate acestea, multe dintre aceste variabile nu pot fi documentate complet deoarece acestea depind de mai mluți factori, precum serverul pe care rulează sau versiunea și configurarea acestuia. Unele dintre aceste variabile nu sunt disponibile atunci când PHP este rulat în mod command-line (pe linie de comandă).

2.4.4. Variabile predefinite și superglobale

$GLOBALS – Face referință la toate variabilele disponibile în scope-ul (domeniul) global.

$_SERVER – Reprezintă variabilele setate de către serverul web sau legate direct de mediul de execuție al scriptului.

$_GET – Reprezintă variabilele oferite scriptului direct prin HTTP GET. Analog, dar depreciat, $HTTP_GET_VARS are același efect, dar nu este o variabilă superglobală.

$_POST – Reprezintă variabilele oferite scriptului direct prin HTTP POST. Analog, varianta depreciată $HTTP_POST_VARS are același efect, dar nu este o variabilă superglobală.

$_COOKIE – Variabilele oferite prin intermediul HTTP cookies.Varianta depreciată $HTTP_COOKIE_VARS are același efect, dar nu este o superglobală.

$_FILES – Variabilele oferite scriptului prin HTTP File Upload. Varianta depreciată $HTTP_POST_FILES are același efect, dar nu este superglobală.

$_REQUEST – Variabilele oferite prin internediul HTTP Request. Ea conține în mod normal $_GET, $_POST și S_COOKIE.

$_SESSION – Conține variabilele asociate unei sesiuni disponibile scriptului curent. Varianta depreciată $HTTP_SESSION_VARS nu este o superglobală, dar are același efect.

$_ENV – Conține variabilele oferite scriptului de către mediul folosit. Variabila $HTTP_ENV_VARS este depreciată, are același efect, și nu este o superglobală.

$php_errormsg – Este o variabilă care conține textul ultimului mesaj de eroare generat de PHP. Ea este disponibilă doar dacă opțiunea track_errors de configurare este activată.

$http_response_header – Este o variabilă similară cu funcția get_headers(). Când se folosește HTTP wrapper, $http_response_header va fi populată cu HTTP response headers.

$argc – Conține numărul de argumente date scriptului curent când se rulează din linia de comandă.

$argv – Conține mulțimea tuturor argumentelor date scriptului când se rulează din linia de comandă.

2.4.5. Formulare PHP

GET și POST

Atât GET cat și POST creează o matrice (de exemplu: array(key => value, key2 => value2, key3 => value3, …)). Această matrice deține perechi cheie/ valoare, unde cheile sunt numele controalelor de formular și valorile sunt datele de intrare date de către utilizator.

Ele sunt tratate ca $_GET și $_POST. Acestea sunt superglobale, ceea ce înseamnă că sunt intotdeauna accesibile, indiferent de domeniu, și pot fi accesate din orice funcție, fișier sau clasă.

Informațiile trimise dintr-un formular cu metoda GET sunt vizibile pentru toată lumea (toate numele variabilelor și valorile lor sunt afișate în adresa URL). GET, are de asemenea limite privind cantitatea de informații pe care le poate trimite (aproximativ 2000 de caractere). Așadar, GET poate fi utilizat pentru trimiterea de date nesensibile.

În schimb, informațiile trimise dintr-un formular cu metoda POST sunt învizibile pentru alții, deoarece toate numele / valorile sunt încorporate în corpul cererii HTTP, și nu are limite privind cantitatea de informații trimisă. POST sprijină o funcționalitate mai avansată decât metoda GET, având și suport pentru intrări binare cu mai multe părți în timp ce încarcă fișiere pe server. Variabilele nu sunt afișate în URL, spre deosebire de GET.

2.5. Baze de Date

O bază de date este un instrument folosit pentru colectarea și organizarea informațiilor legate de un subiect anume, cu un scop bine definit.

În informatică, termenul “bază de date” a apărut începând cu anii 1960, atunci când companiile care incercau să gasească o modalitate mai ieftină de a stoca date au avut opțiunea de a folosi sisteme informatice, spre deosebire de sistemele clasice de stocare.

Acest concept a fost dezvoltat în decursul anilor, ajungându-se în final la trei tipuri de baze de date:

Baze de date rețea

Baze de date relaționale

Baze de date orientate pe obiecte

2.5.1. Clasificarea bazelor de date

Clasificarea bazelor de date se poate face bazată pe diferite criterii:

Clasificare bazată pe modelul de date

Modelul relațional (Relational model)

Acest model se bazează pe noțiunea de relație (din matematică) și are o reprezentare ușor de inteles și de manipulat, reprezentat printr-un tabel bidimensional, format din linii și coloane, în care fiecare linie din tabel reprezintă o entitate care este compusă din mulțimea valorilor atributelor entitații respective, în timp ce fiecare coloană a tabelului corespunde unui atribut.

Modelul de date orientat pe obiecte (Object Model)

El se bazează pe limbaje de programare orientate obiect cu capacități de persistență, în care datele sunt independente de timpul de viață al programelor care le creează sau accesează, prin memorare pe disc.

Este aplicabil în programare, proiectarea hardware, a interfațelor, a bazelor de date, etc.

Modelul de date tip obiect-relație (Object-Relational Model)

Reprezintă extinderea modelului relațional cu caracteristici ale modelului obiect, extindere care este necesară pentru realizarea de baze de date care definesc și prelucrează tipuri de date complexe.

În esență, el păstrează structurarea datelor în relații, dar adaugă posibilitatea de definire a noi tipuri de date pentru domeniile de valori ale atributelor.

Se mai află în funcțiune și baze de date cu modele de date mai vechi:

Modelul de date ierarhic (Hierarhical Model)

Reprezentat printr-o structură ierarhică de inregistrări de date conectate prin legături. Acest model a fost primul tip folosit pentru dezvoltarea bazelor de date.

Modelul de date rețea (Network Model)

Folosește o structură tip graf pentru definirea schemei conceptuale a bazei de date, unde nodurile grafului sunt tipuri de entități, iar muchiile grafului reprezintă în mod explicit asocierile.

Dezavantajul major este acela că fiecare interogare trebuie să fie prevăzută incă din faza de proiectare.

Clasificare dupa numărul de utilizatori

Majoritatea bazelor de date sunt sisteme multiutilizator, adica permit accesul concurent a mai multor utilizatori la aceași bază de date. Există insă și sisteme monoutilizator, care suportă accesul doar al unui utilizator (la un moment dat).

Clasificare după numărul de statii pe care este stocată baza de date

Există două categorii de sisteme de baze de date: tipul centralizat și tipul distribuite.

Un sistem de baze centralizat (Centralized Database System) stochează datele și sistemul de gestiun pe un singur calculator.

Un sistem de baze distribuit (Distributed Database System) poate avea datele, cat și sistemul de gestiune distribuite pe mai multe calculatoare interconectate printr-o rețea.

2.5.2. Proiectarea bazelor de date

Proiectarea unei baze de date constă în proiectarea logica și fizică a acesteia. O proiectare bună a unei baze de date, este, una care:

Împarte informațiile în tabele pe baza subiectelor, pentru a reduce datele care sunt redundante.

Furnizează programului informațiile necesare pentru a asocia informațiile din tabele dupa necesități.

Asistă și asigură acuratețea și integritatea infromatiilor.

Adaptează necesitățiile de procesare a datelor și cele de raportare.

Procesul de proiectare constă în urmatorii pași:

Determinarea scopului bazei de date

Găsirea și organizarea informațiilor necesare

Împarțirea informațiilor în tabele

Transformarea elementelor de informații în coloane

Specificarea cheilor primare

Configurarea relațiilor din tabe

Rafinarea proiectării

Aplicarea regulilor de normalizare

2.6. Limbajul SQL

SQL (Structured Query Language), apărut în 1970, este un limbaj de programare specific pentru manipularea datelor în sistemele de baze de date relaționale (RDBMS), iar la origine este un limbaj bazat pe algebra relațională. Acesta are ca scop inserarea datelor, a interogărilor, actualizare și ștergere, modificarea și crearea schemelor, precum și controlul accesului la date.

El a devenit un standard în domeniu (ANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea, modificarea și manipularea datelor de către SGBD-uri (Sistemele de Gestiune a Bazelor de Date) relaționale.

2.6.1. Elementele limbajului

Clauze (elementele constitutive ale declarațiilor și a interogărilor)

Expresii (care pot produce fie valor scalare, sau tabele compuse din rânduri și coloane de date)

Predicate (folosite pentru a limita efectele declarațiilor și a interogărilor sau pentru a schimba fluxul programului)

Interogări (care preiau datele pe baza unor criterii specifice, și sunt un element important al SQL)

Declarații (care pot avea un efect persistent asupra schemei și a datelor, sau pot controla tranzacțiile, fluxul de program, conexiuni, sesiune sau diagnostice).

2.6.2. Setul de comenzi SQL

SELECT – cea mai utilizată comandă; este folosită pentru obținerea datelor din baza de date;

INSERT – care se folosește la introducerea de noi rânduri;

UPDATE – folosită pentru editarea unui rând existent;

DELETE – pentru ștergerea rândurilor nedorite din tabel;

CREATE – folosit pentru crearea de tabele, expuneri sau indecsi;

ALTER – modifica un tabel;

DROP – șterge un tabel;

GRANT – dă dreptul de acces pentru bazele de date;

REVOKE – inlătura dreptul de acces la baza de date;

2.6.3. Operatori și funcții SQL

Operatorii SQL sunt reprezentați de unul sau mai multe caractere speciale (+,=, -, etc) sau prin cuvinte cheie (AND, OR, NOT, UNION).

Ei sunt clasificați în:

Operatori binari: au nevoie de doi operanzi;

Operatori unari: se aplică unui singur operand și pot fi de tip prefix sau postfix;

Operatori aritmetici: +,-,=, <> (!=);

Operatori logici: NOT, AND, OR

În general, o expresie SQL este formată din operanzi, operatori și paranteze. Operatorii sunt, de obicei, nume de coloane sau constante.

Funcțiile SQL se clasifică în:

Funcții pentru gestiunea șirurilor de caractere: LOWER, UPPER, INITCAP, CONCAT, SUBSTR, LENGTH, INSTR, REPLACE, TRIM, LPAD, etc;

Funcții aritmetice: ABS, ACOS, ASIN, ATAN, CEIL, COS, EXP, FLOOR, GREATEST, LEAST, LN, LOG, MOD, POWER, ROUND, SIN, SQRT, TRUNC, etc;

Funcții pentru gestiunea datelor calendaristice: SYSDATE, ROUND, TRUNC, MONTHS_BETWEEN, ADD_MONTHS, LAST_DAY, CURRENT_DATE, etc;

Funcții de conversie: TO_CHAR, TO_NUMBER, TO_DATE, NVL, COALESCE, DECODE, NULLIF, ASCII, CHR, UID, USER, etc;

2.7. MYSQL

MySQL (My Structured Query Language) este un sistem de gestiune a bazelor de date, produs de compania suedeză MySQL AB și distribuit sub licență generală GNU. El este cel mai popular SGBD de tip open-source la ora actuală, fiind o componentă cheie a LAMP (Linux, Apache, MySQL, PHP/Python/Perl).

Deși folosit cel mai des împreună cu limbajul de programare PHP, MySQL se poate folosi pentru a construi aplicații în orice limbaj major.Sunt disponibile multe scheme de tip API pentru MySQL care permit scrierea aplicațiilor în foarte multe limbaje de programare care pot fi folosite pentru accesarea bazelor de date MySQL cum ar fi: C,C++, C#, Java, Perl, PHP, Python, etc., fiecare dintre acestea folosing un API specific. Există și o interfață de tip ODBC, numită MyODBC, ce permite altor limbaje de programare ce folosesc această interfață interacțiunea cu bazele de date MySQL, de exemplu ASP sau Visual Basic. În sprijinul acestor limbaje de programare, unele companii produc componente precum COM/COM+ sau .NET (Windows), pentru ca respectivele limbaje să poată folosi acest SGBD mult mai ușor decât prin intermediul unui sistem ODBC.

2.7.1. Caracteristici ale MySQL

Este un SGBD relațional, în care datele sunt organizate în tabele. Între tabele sunt stabilite relații și constrangeri de integritate.

Este un sistem tip client-server. Serverul de baze de date este separate logic și chiar fizic (pe calculatoare diferite) de programele client care asigură interfața operațiilor cu baza de date.

Serverul MySQL suportă o paletă largă de programe client, scrise în diferite limbaje de programare.

Este distribuit în format Open Source. Astfel, acesta poate fi descarcat și folosit gratuit de pe Internet.

Este rapid.

Este fiabil, asigurând o bună protecție a datelor prin mecanisme specifice.

Asigură suport pentru multe limbaje de programare.

Este multiplatformă, suportă multiple sisteme de operare, cum ar fi: Linux, Windows, Unix, Max OSX, Solaris, etc.

2.7.2. Tipuri de date folosite de MySQL

Tipurile de date folosite de MySQL pot fi general împarțite in: numerice, logice, date calendaristice, timp, șiruri de caractere și date binare mari (BLOB – binary large object). Din motive de implementare, fiecare sistem SGBD implementează propriile subtipuri ale tipurilor de baza. Această situație poate cauza uneori probleme de compatibilitate la trecerea bazelor de date de pe un sistem pe altul.

2.8. WordPress

WordPress este o platformă de tip open source pentru publicarea blogurilor. Platforma WordPress este scrisă în limbajul PHP, și folosește pentru gestionarea bazelor de date sistemul MySQL. El dispune numeroase șabloane, care sunt scrise în limbajele HTML și CSS. Avantajele majore oferite de WordPress sunt simplitatea și numeroasele plugin-uri create de către comunitate care pot modifica funcționalităti din interiorul WordPress-ului, transformându-l în aproape orice tip de site web.

WordPress este în momentul de față, printre cele mai sigure și puternice CMS-uri la ora actuală, și folosește un sistem de tip “web template” (șablon web) care utilizează un procesor de șabloane.

Utilizatorii lui pot instala și comuta între teme. Temele permit utilizatorilor să schimbe aspectul și funcționalitatea unui site WordPress fără a altera conținutul sau sănătatea site-ului. Fiecare site WordPress necesită ca cel puțin o temă să fie prezentă, și proiectată respectând standardele lui, cu PHP structurat, HTML valid și CSS. Temele pot fi instalate fie direct folosind instrumentul de administrare “Appearance” din tabloul de comandă sau folderele tematice pot fi incărcate pe un server prin FTP. Codul PHP, HTML și CSS găsit în teme poate fi editat, sau chiar și adăugat pentru a oferi caracteristici avansate.

Temele WordPress se împart, în general, în două categorii : teme gratuite și teme premium. Toate temele gratuite sunt listate în directorul WordPress de teme, în timp ce temele premium pot fi cumpărate folosind piețe sau direct de la dezvoltatorii individuali WordPress. Utilizatorii pot crea și dezvolta teme personalizate, în cazul în care au abilitatea și cunoștințele necesare pentru a face acest lucru.

Arhitectura de plug-in a WordPress permite utilizatorilor să extinda caracteristicile și funcționalitatea unui blog sau a unui site web. WordPress are peste 40501 de plug-in-uri disponibile, fiecare oferind funcții personalizate și caracteristici care permit utilizatorilor să iși adapteze site-urile lor la nevoie speciale ale acestora. Acestea variază de la sisteme de management al conținutului la optimizarea sistemului de căutare, pâna la adăugarea de wiget-uri și a bărilor de navigare.

De asemenea, WordPress oferă și un motor de căutare prietenos, o structură de permalink curată și stabilă și sprijin pentru etichetarea de postări și de articole. Sunt incluse și filtre automate, oferind formatare standardizată și opțiuni de stilizare a textului folosit în articole (de exemplu, convertirea citatelor normale la citate inteligente).

WordPress sprijină, de asemenea, standardele Trackback și Pingback pentru afișarea de link-uri către alte site-uri care sunt legate de o postare sau de un articol.

Postările tip blog WordPress pot fi editate în HTML, folosind editorul vizual, sau folosind unul dintre plug-in-urile care oferă o varietate de caracteristici de editare personalizate.

WordPress este folosit astăzi de 59.6% din toate site-urile web al căror sistem de management al conținutului este cunoscut.

El este folosit de site-uri universitare din străinatate:

MIT

Harvard Law School

University of Berlin

University of Melbourne

University of Florida

University of California – Berkeley

Cornell University

Precum și de diferite site-uri școlare din Romania:

Colegiul Național “Zinca Golescu” – Pitești

Colegiul Național “I.C. Brătianu” – Pitești

2.9. Serverul Apache

Serverul HTTP Apache este cel mai folosit software pentru servere web din lume. Inițial bazat pe NCSA HTTPd server, dezvoltarea Apache a început la începutul anului 1995, după ce lucrarile la codul sursă NCSĂ s-au oprit. Apache a jucat un rol cheie în creșterea inițială a World Wide Web, depașind rapid NCSA HTTPd ca serverul HTTP dominant, și a ramas cel mai popular tip de server HTTP din aprilie 1996. În 2009, Apache a devenit primul software de tip web server care servește mai mult de 100 de milioane de site-uri web.

Apache este dezvoltat și întreținut de o comunitate deschisă de dezvoltatori, care lucrează sub numele de Apache Software Foundation. Deși utilizat cel mai frecvent pe un sistem tip Unix (Linux, de obicei), software-ul este disponibil pentru o gamă largă de sisteme de operare în afară de Unix, inclusive eComStation, Microsoft Windows, NetWare, OpenVMS, OS /2, și TPF. Eliberat sub licența Apache, el este un software gratuit și open-source.

Incepând cu noiembrie 2015, Apache a fost estimat ca servind 50% din toate site-urile active și 37% din serverele de top din toate domeniile.

2.9.1. Caracteristici

Apache suportă o varietate de caracteristici, multe implementate ca module compilate care extind funcționalitatea de bază. Acestea pot varia de la suport server-side pentru limbaje de programare la scheme de autentificare. Anumite interfețe comune de limbaj suportă Perl, Python, Tcl și PHP. Modulele de autentificare populare includ mod_access, mod_auth, mod_digest și mod_auth_digest, succesorul lui mod_digest. Câteva alte caracteristici includ SSL (Secure Sockets Layer) și TLS (Transport Layer Security) prin mod_ssl, un modul proxy (mod_proxy), un modul pentru rescrierea adresei url, fișiere log personalizate, și suport pentru filtrare.

Modele populare de compresie folosite pe serverul Apache includ modulul de extensie extern mod_gzip, implementat pentru a ajuta la reducerea dimensiunii unei pagini web oferite folosind HTTP. Logurile Apache pot fi analizate printr-un browser web folosind scripturi gratuite, cum ar fi AWStats / W3Perl sau Visitors.

Virtual Hosting permite ca o instalare Apache să deservescă mai multe site-uri web diferite. De exemplu, o singură instalare Apache poate servi în același timp site-uri pecum www.site-exemplu.com, www.site-exemplu.org, test.test-server.exemplu.dev etc.

Apache suportă și mesaje de eroare care pot fi configurate, baze de date bazate pe autentificare DBMS și negocierea conținutului. Este de altfel sustinut și de mai multe interfețe grafice (GUI).

Apache suportă autentificarea cu parolă sau cu certificat digital de autentificare, și, deoarece este de tip open source, oricine poate adapta serverul pentru nevoi specifice, și există o largă bibliotecă publică cu add-on-uri pentru Apache.

Caracteristicile serverului HTTP și ale proxy-ului

Module dinamice care pot fi incărcate;

Multiple module de prelucrare a cererilor (MPM), inclusiv pe baza de evenimente sau asincrone, stiva (threaded), și prefork;

Ușor scalabil – poate să se ocupe cu ușurință de mai mult de 10000 de conexiuni simultane

Manipulează fișiere statice, fișiere index, auto indexare și negociează conținut

Sprijină .htacess

Suport TLS/SSL cu SNI și OCSP stapling, prin intermediul OpenSSL

Compatibil cu IPv6

Suport HTTP/2

Oferă compresie și decompresie tip gzip

Rescriere URL

Cere limitarea ratei de procesare

Optimizarea lățimii de bandă

Include-uri de tip Server Side

Geolocație bazată pe adresă IP

Urmărirea sesiunii și a utilizatorilor

WebDAV

Scriptare în Perl, PHP și Lua integrată

Suport CGI

Interpretator pentru expresii generice

Vizualizări statut în format real-time

Sprijin pentru XML

În loc de a implementa o singura arhitectură, Apache oferă o varietate de module multiprocesor (MPM), care permit Apache să ruleze intr-un mod bazat pe procese, hibrid (procese și thread-uri) sau bazat pe evenimente, pentru a se potrivi mai bine la cerințele fiecărei infrasturcturi specifice. Acest lucru implică faptul că alegerea corectă a MPM precum și configurarea corectă este importantă.

Însa, pentru livrarea de pagini statice, Apache 2.2 a fost considerat semnificativ mai lent decât Nginx și varnish, iar pentru rezolvarea acestei probleme, dezvoltatorii Apache au creat MPM Event, care amestecă utilizarea a mai multor procese și threaduri per proces intru-o buclă de evenimente asincrone. Această arhitectură, și modul în care a fost implementată în versiunea Apache 2.4, promite performanțe echivalente sau chiar puțin mai bune decât serverele web bazate pe evenimente.

CAPITOLUL 3

SPECIFICAȚIILE APLICAȚIEI

Cuvinte de început

Inițial, dezvoltarea site-ului a fost gândită în Bootstrap, dar, dupa o gândire indelungată asupra elementelor necesare construcției complete a site-ului, am decis refacerea lui folosind arhitectura WordPress, și astfel, în loc de folosirea unui CMS (Content Management System) construit de la zero, care prezenta diverse vulnerabilități de securitate și o construcție care nu este foarte intuitivă, am folosit CMS-ul oferit de WordPress, unul dintre cele mai puternice CMS-uri la ora actuala.

3.1. Introducere

Odata cu evoluția Internetului și dezvoltarea continua a dispozitivelor care pot afișa pagini de Internet, putem afirma ca a apărut și nevoia de prezentare și menținerea unei imagini moderne a institutiilor școlare pe Internet.

Scopul acestei lucrări a fost realizarea unui site nou, responsive pentru Școala Gimnazială „Mihai Eminescu” – Pitești, care să se conforme noilor cerințe care se impun site-urilor moderne, și care poate fi vizualizat cu ușurință de pe orice platformă, fie ea clasică (calculator), sau modernă (telefon mobil, tabletă).

Cerințele noului site pot fi definite astfel:

Design nou, modern, responsive, cu un aspect potrivit profilului site-ului;

Navigare ușoară;

Incărcare rapidă a paginilor;

Compatibil cu majoritatea navigatoarelor web, a sistemelor de operare sau a dispozitivelor folosite de către utilizatori;

Informativ și util, oferind informații generale despre școală, precum și diferite informații despre performațele obținute de studenti și parteneriatele în curs;

Ușor de menținut și de actualizat;

Adăugarea de noi funcționalitati ale site-ului față de versiunea anterioară, cum ar fi galeria, formularul de contact și harta.

3.2. Modul de funcționare al site-ului

Pentru a descrie modul de funcționare al site-ului vom enumera tehnologiile folosite de acesta și cerințele software pentru serverul web. Siteul folosește cele mai noi tehnologii open source disponibile, precum și diferite dependințe.

Cerințe tehnice pentru server:

Aplicația web mihaieminescupitesti.ro are urmatoarele cerințe:

PHP 5.5.9

Apache2

MySQL

Ubuntu 14.04 (sau orice versiune de Linux, dar comenzile folosite vor fi diferite)

WordPress

Tehnologii folosite de site:

HTML 5.0, care poate fi ușor editat din panoul de administrare WordPress

CSS pentru interfața site-ului

JavaScript pentru elementele interactive

PHP pentru generarea paginilor

MySQL pentru baza de date

WordPress este editorul de articole folosit în modulul de administrare. El utilizează diferite plugin-uri pentru editarea și modificarea formatului site-ului, astfel oferind un număr aproape infinit de opțiuni care pot fi adaugate site-ului live.

Editorul WordPress din partea de administrare este capabil de editare What You See Is What You Get (WYSIWYG) și suportă atât text cat și cod HTML.

3.3. Prezentarea generală a site-ului

Site-ul Școlii Generale „Mihai Eminescu” din Pitesti este împarțit în secțiuni, fiecare pagină continând elemente de interes pentru vizitatori. Acestea sunt:

Pagina principala în care sunt enumerate link-uri către anunțurile de interes general, un scurt istoric, link-uri către parteneriatele și proiectele în curs, cat și un formular de contact și o hartă.

Despre noi care este împarțita în subpaginile

Istoric, care conține pagina de istoric a școlii, oferind detalii despre apariția școlii.

Baza Didactico-Materială

Performațe, în care sunt enumerate diversele premii și mențiuni obținute de către elevii școlii.

Activitați unde sunt prezentate diversele proiecte în curs de dezvoltare în intermediul școlii.

Promovare

Galerie

Această structură a fost stabilită în ideea că va face navigarea cat mai ușoară pentru utilizatorii site-ului, pastrând totuși un aspect plăcut.

Navigarea site-ului este intuitivă și ușor de folosit indiferent de dispozitivul folosit, fie el telefon mobil, tabletă sau computer.

Legăturile de la o pagină la alta păstrează un aspect ușor de inteles, intuitiv, de forma index.php/pagină, pentru a face cat mai ușoară navigarea și a ușura indexarea site-ului pentru motoarele de căutare (cum ar fi Google, Yahoo, etc).

Exemple de pagini:

Mihaieminescupitesti.ro/index.php/Galerie

Mihaieminescupitesti.ro/index.php/Performațe

3.3.1. Plugin-uri

Deoarece site-ul a fost creat în Worpress, o mare parte din funcționalitatile sale este administrată de către „plug-ins”, oferind astfel oportunitați de dezvoltare continuă a site-ului, și usurând astfel numărul de lucruri pe care un administrator trebuie să le facă pentru a mentine site-ul „la zi” cu cele mai noi elemente care apar pe Internet.

Un plug-in este o parte de software care conține un grup de funcții care pot fi adăugate site-urilor care folosesc platforma WordPress, ce pot extinde sau adăuga noi caracteristici. Ele sunt scrise în limbajul PHP și create astfel incăt să se integreze perfect în WordPress. Majoritatea sunt în format Open Source, și testate zilnic de mii de utilizatori.

O zicală foarte conoscută în comunitatea WordPress este „There’s a plug-in for that”, care în traducere înseamnă „Există un plug-in pentru asta”.

O enumerare a pluginurilor instalate:

Better Font Awesome

Adaugă pictograme vectoriale scalabile, care pot fi personalizate (culoare, dimensiuni, umbre)

WP Migrate DB

Permite exportarea bazei de date în format MySQL

NextGEN Gallery

Apărut în 2007, este cel mai folosit tip de galerie WordPress, cu 1.5 milioane de descărcări pe an, și oferă o multitudine de opțiuni pentru administrarea galeriilor de imagini.

SiteOrigin Widgets Bundle

Oferă o colecție de widgets, precum widgeturi pentru adăugare de harți, butoane sau imagini.

3.3.2 XAMPP

Aplicația a fost inițial dezvoltata local, folosind un server virtual utilizând aplicația XAMPP, iar mai tarziu, mutata pe un server live, la adresa ci.sonacamp.com (Mulțumiri lui Kenny Liu pentru permisiunea de a folosi serverul lui pentru hosting).

XAMPP este un pachet de aplicații care constituie infrastructura necesară gazduirii unui site web: Server de web Apache, server pentru baze de date MySQL (în versiunile mai noi XAMPP folosește MariaDB, o „clonă” a MySQL, care este condusă de dezvoltatorii principali ai MySQL, pentru a rămâne în format Open Source, deoarece MySQL a fost cumpărat de compania Oracle), precum și interpretoare pentru scripturi scrise în limbajul PHP/PERL.

XAMPP este practic un instrument eficient de testare pentru dezvoltatorii de pagini web, care odată instalat pe calculatorul propriu, va simula comportamentul unui server web, permițând testarea aplicațiilor scrise fără ca acestea să se afle pe site-ul „live” al companiei.

Pentru a inițializa serverul virtual, nu este necesar decât instalarea pachetului XAMPP, și selectarea butonului „start” pentru fiecare modul de care avem nevoie (în cazul nostru, serverul Apache și serverul MySQL).

Fig. 3.1 Panoul de control XAMPP

Pentru oprirea serverului, din orice motive, nu este necesar decât apăsarea butoanelor „Stop” pentru fiecare modul în parte.

Verificarea funcționalitatii XAMPP se poate realiza tastănd în browser adresa aplicației care se ocupă de administrarea serverului de baze de date MySQL, și anume http://localhost/phpmyadmin/. Simpla tastare a http://localhost/ inainte de a adăuga fișierele site-ului în interiorul folderului în care se află instalat XAMPP va rezulta în afișarea în browser a unei blank page.

Putem insă schimba adresa folosită de XAMPP astfel incăt în loc de localhost, putem face să apară un nume setat de noi, folosindu-ne de două fișiere: hosts, aflat în

C://Windows/system32/drivers/etc/ și fișierul httpd-vhosts.conf, aflat în folderul apache/conf/extra al instalarii XAMPP. (în cazul meu D:\site\xampp\apache\conf\extra)

Modificarile aduse sunt simple, prin adaugarea unor linii care practic „maschează” localhost cu numele dat de către utilizator, în cazul de față „mihaieminescupitesti.dev”

Fig 3.2 Modificarea fișierului httpd-vhosts.conf

Fig 3.3 Modificarea fișierului hosts

Odată aduse modificările, la introducerea adresei localhost în browser, el va face redirectionarea instantanee la numele introdus.

3.3.3. Adăugarea WordPress

Pentru a putea folosi WordPress, el trebuie mai întai instalat pe serverul virtual folosit. Instalarea WordPress se face ușor, prin crearea unui nou folder în folderul „htdocs” din instalarea XAMPP. Odata creat noul folder, se descarcă software-ul WordPress (https://wordpress.org/download/) și se dezarhivează. Redenumim apoi folderul pentru a ne ușura munca (în cazul meu, folderul se numeste WP). Continuăm apoi prin accesarea aplicației care se ocupă de baza de date MySQL (http://localhost/phpmyadmin/) și crearea unei noi baze de date cu același nume ca și folderul în care am instalat modulul WordPress.

În momentul acesta, la accesarea localhost/wordpress/, vom vedea urmatoarea imagine:

Fig 3.4 Conectare WordPress la baza de date

Odată apasat butonul Submit, după completarea formularului, WordPress va afișa noi detalii despre informațiile necesare, precum numele site-ului care urmează a fi creat, numele de administrator, parola, precum și o adresă de e-mail.

Dupa ce s-au introdus și aceste date, instalarea WordPress pe server este completă, și putem incepe editarea și crearea de noi pagini, cat și introducerea de conținut nou.

Structura bazei de date

Baza de date folosită de WordPress este formată din cel puțin 12 tabele (WordPress generează tabele în funcție de nevoile fiecărui site, iar numărul acestora diferă in funcție de versiunea WordPress, precum si de diferitele plug-in-uri instalate), generate automat la instalarea WordPress, care asigură funcționarea corecta a site-ului. În continuare, vom prezenta structura tabelelor precum și informații generale despre fiecare.

Fig 3.5. ERD-ul tabelelor folosite de WordPress

Descrierea tabelelor este următoarea:

wp_commentmeta – face ca fiecare metadata atașat fiecarui comentariu adaugăt pe site să fie stocat în wp_commentmeta

wp_comments – salvează comentarile din WordPress

wp_links – mentine informații despre link-urile introduse în optiunea „links” din cadrul WordPress

wp_options – stochează setările setate în panoul Settings din modulul Administration

wp_postmeta – salvează metadata al fiecărui post de pe site

wp_posts – salvează fiecare postare a WordPress, precum și paginile site-ului precum și elementele meniului de navigare

wp_terms – stochează categoriile pentru postari cat și pentru link-uri ale site-ului

wp_term_taxonomy – tabelul stochează modul de grupare (categorie, link sau etichetă) pentru intrarile din tabelul wp_terms

wp_usermeta – fiecare utilizator al site-ului detine informații despre el numite metadata, acest tabel conține aceste informații

wp_users – lista utilizatorilor este stocată în acest tabel

CAPITOLUL 4

DESCRIEREA APLICAȚIEI

4.1. Interfața de administrator WordPress

Fiind o platformă de creare de blog-uri, cat și un CMS, WordPress dispune, în mod standard de o interfață pentru adminstator, care poate fi accesată prin accesarea paginii mihaieminescupitesti.dev/wp-login.php.

Fig 4.1 Ecranul de log-în al administratorului

Odată ce ne-am conectat la WordPress folosind contul de administrator și parola setate anterior, putem incepe editarea site-ului, precum și adaugarea de plugins pentru a imbunătăți funcționalitatea acestuia.

4.2. Prezentarea panoului de administrare

Panoul administrativ WordPress, sau „Dashboard”, este un CMS cu o funcționalitate greu de egalat.

El este compus din mai multe parți:

Posts – permite publicarea rapidă de postări tip blog;

Features;

Media – oferă administrarea ușoară a imaginilor și clipurilor video stochate pe server, precum și modificarea lor;

Pages – conține toate paginile create pe server în formatul WordPress, și oferă opțiuni de editare, ștergere și copiere;

Comments – afișeaza toate comentariile postate de utilizatori pe site, dacă acestea sunt activate;

Services – Afișeaza serviciile oferite de site (daca este cazul) ;

Employees – Afișeaza angajații companiei pe website, impreună cu adresele lor de contact (e-mail, Facebook, Twitter) ;

Clients – Lista de clienți ai companiei (daca este cazul, se poate lăsa blank)

Plugins – Panoul de comandă pentru funcționalitatile instalate;

Tools – Oferă diferite unelte de management, precum exportarea bazei de date, etc.

Users – setări pentru utilizatori;

Gallery – setări ale galeriei de imagine;

Settings – Setări ale modului administrativ;

Appearance – Editează tot ce este legat de cum arată siteul. La rândul ei, este compusă din mai multe sub-pagini, precum:

Themes

Customize

Widgets

Menus

Header

Backgound

Editor

Panoul de administrare folosește AJAX (Asynchronous JavaScript and XML). AJAX este o tehnică de programare pentru crearea de aplicații web interactive. Intenția care a dus la dezvoltarea lui este de a face paginile web să devina mai rapide și deci, mai acceptate, prin schimbul în funal al unor cantitati mici de date cu serverul, astfel incăt să nu fie nevoie ca pagină să fie reincărcata la fiecare actiune a utilizatorului.

El este utilizat, de exemplu, la adaugarea și ștergerea elementelor din liste, precum și la auto-salvarea ecranelor de editare a elementelor paginii.

4.3. Folosirea interfeței de administrator

4.3.1. Crearea unei noi pagini

Crearea unei noi pagini sau editarea în WordPress este simplă. Pur și simplu se selectează „Pages” în meniul de administrator, se selectează „Add New”, și se scrie codul HTML al paginii, exemplificat mai jos:

Fig 4.2 Editarea unei pagini în WordPress

Însă, nu este neaparat necesară folosirea HTML pentru crearea de pagini, fiind posibilă și crearea lor folosind plugin-uri adăugate instalării WordPress.

Editorul WordPress este unul foarte puternic, care poate folosi widget-uri, HTML sau chiar PHP pentru crearea de pagini, oferă opțiuni de live edit, și care poate chiar să ofere detalii live despre structura paginii vizualizată de pe un alt dispozitiv, cum ar fi telefoanele mobile sau tabletele.

4.3.2. Stilul paginilor

Tema folosită de toate paginile este rezultatul folosirii unei teme gratuite WordPress, care a fost apoi modificată pentru a deveni o temă care să aiba legatura cu funcția site-ului. Tema rezultată utilizează culorile școlii, culori care au fost specificate în prealabil.

O temă de WordPress modificată poarta numele de „Child Theme”, deoarece deși părți din ea sunt schimbate față de tema de baza, ea păstrează totuși anumite funcționalitati.

Tema principală care a fost folosită poarta numele de Sydney, și este o temă în format Open Source.

Modificările aduse temei se află în fișierul style.css, aflat în directorul sydney-child.

Fig 4.3 Style.css

4.3.3. Structura paginii principale

Pagina principală a site-ului este formată din cinci parți:

Carusel. Caruseul este, practic un slideshow format din mai multe imagini, care prezintă vizual diferite activitați și imagini ale școlii;

Anunțuri de interes general. Partea această conține link-uri către cele mai noi anunțuri importante facute de către conducerea școlii;

Istoric. Un scurt istoric al școlii, care poate fi citit în întregime pe pagina cu același nume;

Parteneriate și proiecte. Această parte este formată la rândul ei din mai multe părți;

Contact. Partea de contact este la rândul ei separată în trei parți. O hartă care arata locația școlii, un formular de contact și informații generale, precum numărul de telefon, adresă și e-mailul administratorului.

Astfel, deși păstrează un format relativ simplu, pagină principala are un aspect modern, dar și funcțional, similar cu stilul paginilor altor școli și licee, ele fiind o sursă de inspirație și un standard de calitate în dezvoltarea aplicației.

Fig 4.4 Carusel pe ecran tip tabletă

Fig 4.5 Secțiunea parteneriate si proiecte

4.3.4. Administrarea plug-in-urilor folosite pe site

Administrarea pluginurilor pe site se face simplu, din panoul de administrator, secțiunea plugins. În acestă secțiune, există opțiuni de căutare, adăugare, editare, activare și dezactivare a plug-in-urilor. După cum am menționat și mai sus, plug-in-urile WordPress sunt destinate adăugarii de funcționalități site-ului.

Activarea, dezactivarea, editare și instalarea sau ștergerea de pluginuri se face ușor, prin simplu click pe comanda pe care dorim să o folosim.

Fig 4.6 Panoul de instalare de pluginuri

Exemplu: editarea pluginului „font-awesome”, duce către fișierul plugin.php aflat în folderul font-awesome aflat pe server, și permite editarea direct din panoul de administrator a fișierului.

Fig 4.7 Editarea unui plug-in din panoul de administrator

Similar, funcția de editare este disponibilă și pentru temele folosite pe site, precum și pentru orice alt plug-in instalat, fapt care ușurează și mai mult munca administratorului de site, deoarece îi permite acestuia să acceseze orice fișier din codul sursă al serverului, folosind direct interfața de administrator, și oferindu-i opțiunea de a edita fișierele de pe orice calculator, cât timp acesta se conectează la contul lui de WordPress.

Astfel, conținutul site-ului este unul dinamic, iar noi funcționalități pot fi adăugate zilnic, precum forumuri, adăugarea de conectivitate la site-uri tip Facebook, Twitter, Google+ sau YouTube, fapt ce permite ca site-ul să poată evolua în timp dupa nevoile utilizatorului, iar evoluția ei să fie ușor de facut și menținut.

Este important de menționat ca plug-in-urile instalate caută și anunță noi versiuni ale lor, dar cer instalarea manuală, fapt care asigură ca site-ul folosește intotdeauna cele mai noi versiuni ale aplicațiilor instalate pe el, astfel oferind un plus de securitate, prin rezolvarea constantă a problemelor de securitate pe care plug-in-urile le pot avea.

Un alt fapt important de menționat este că nu numai plug-in-urile WordPress sunt constant actualizate, ci și WordPress în întregime, fapt ce adauga un alt nivel de securitate pentru site, și cu fiecare actualizare, sunt adăugate elemente noi de funcționalitate ale WordPress, fapt ce oferă administratorilor o multitudine de opțiuni în optimizarea site-ului.

4.3.5. Meniul Settings

Meniul Settings este format din mai multe submeniuri, enumerate și explicate mai jos:

Submeniul General din panul de control al WordPress conține setări generale ale site-ului, precum titlul, URL-ul WordPress, URL-ul site-ului (în caz că se dorește ca pagin principala a site-ului să fie diferită de directorul de instalare a WordPress), adresa de e-mail a administratorului, precum și diferite setări legate de oră, dată, și limba folosita pe site, cât și în interfața de administrator.

Writing oferă diferite opțiuni de postare a conținutului pe site, precum tipul default (normal) de categorie de postare, formatul acesteia, opțiuni de postare via e-mail, precum și setări pentru servicii de update care sunt notificate atunci când o noua postare apare pe site.

Reading conține setări legate de pagina principală, articole precum și vizibilitatea site-ului în motoarele de căutare.

Discussion conține setări legate de notificări către alte bloguri, setări legate de comentarii, precum și opțiuni legate de moderarea comentarilor adăugate pe site sau trimiterea de e-mailuri către administrator la adăugarea de comentarii noi, sau avatarele folosite de către utilizatorii site-ului.

Media se ocupa cu dimensiunile maxime ale imaginilor adăugate în libraria media a site-ului, cat și de organizarea în foldere a acestora.

Permalinks este ultima categorie din meniul Settings, și conține setări legate de legaturile site-ului, precum și optiunea de a introduce structuri custom pentru categorii și etichetele URL-urilor.

4.3.6. Meniul Appearance

Acest meniu se comportă diferit față de meniurile prezentate anterior, în sensul că oferă un preview live a paginii principale care este editată în timp ce oferă o bară cu setările disponibile, fapt ce face ca editarea să fie mult mai ușoră, deoarece putem observa imediat orice schimbare adusă paginii.

Fig 4.8 Structura meniului Appearance

După cum se poate vedea și în imaginea de mai sus, el este structurat în mai multe parți, fiecare parte având legatură la una sau mai multe elemente vizuale ale paginii, care variază de la dimensiunea și textul folosit, la culori, tipul de meniu folosit, detalii și opțiuni legate de header-ul (antetul) paginii, opțiuni de blog, precum și alte opțiuni care vor fi descrise în continuare:

General conține setări legate de padding, mai exact top și bottom padding (padding este spațiul dintre conținutul paginii și header / footer).

Site title/tagline/logo modifica titlul, motto-ul paginii precum și logo-ul folosit ca iconiță de browser pentru site.

Header area conține diverse opțiuni legate de antetul site-ului, precum tipul de antet folosit pe pagină principala și pe cele secundare, viteza caruselului din antet, precum și setări pentru imaginile adaugate în el, setări pentru imagini statice folosite ca și antet, și stilul meniului (Static sau sticky, centrat sau inline).

Blog options conține opțiuni legate de bloguri, precum tipul de conținut postat pe pagini, lungimea maxima a unei postări, dar și diferite setări legate de metataguri.

Fonts este partea care se ocupă exclusiv de tipul de fonturi folosit pe site, precum și de fiecare mărime a rubricilor (headings).

Footer conține toate setările legate de subsolul paginii.

Colors conține setări care au legătură directă cu ce culori folosim pentru fiecare parte a site-ului (de exemplu culoarea primară a site-ului, culoarea fundalului, culoarea meniurilor și a submeniurilor, culoarea titlului site-ului, etc).

Background Image oferă opțiunea utilizării unei imagini de fundal.

Theme Info oferă informații și documentații despre tema folosită de către site.

Menus oferă diferite opțiuni legate de poziționarea meniului principal în

pagină, cat și selectarea meniului principal și secundar (dacă este cazul).

Widgets administrează toate elementele de tip widget instalate în partea de subsol (daca există).

Static Front Page conține setări despre ce dorim să se afle pe prima pagină a site-ului, o pagină principală de tip static sau cele mai noi postări făcute în site.

În afară de numărul impresionant de setări ale meniului Appearance, există și opțiunea de a edita în mod direct fișierul style.css din tema folosită, prin selectarea opțiunii Editor din acest meniu, ceea ce ne oferă un plus de flexibilitate în modificarea temei pe care dorim să o folosim.

Fig 4.9 Folosirea editorului de stil

Dupa cum se poate observa în imaginea de mai sus, fișierul de stil este un fișier de tip .css, deci, ca atare, trebuie respectate normele de scriere .css pentru a aduce modificări acestui fișier.

Odata finalizată editarea fișierului prin panoul de administrator, salvarea se face în mod simplu, prin click pe butonul „update file”, iar WordPress va modifica fișierul salvat pe server și va reincărca pagina cu noile setări de stil, fapt ce scutește timp, prin eliminarea nevoii de acces direct la folderul styles aflat pe server.

4.4. Adăugarea unei hărți

Adăugarea unei harți pe pagina principală se face simplu, folosind plugin-ul pentru hărți Google adaugat la instalarea WordPress, prin simpla căutare a adresei în plug-in.

Fig 4.10 Editarea hărții din interfața de administrator

Odata setate opțiunile dorite pentru harta pe care o vom introduce, aceasta va aparea pe site în zona indicată de către utilizator în setări, și se va integra perfect cu restul structurii paginii, mentinând astfel aspectul plăcut.

(Notă: incepând din 22 Iunie 2016, Google și-a retras suportul pentru hărțile Google integrate în site-urile web care nu conțin o cheie API Google.)

4.5. Crearea unei galerii de imagini

Începem crearea unei galerii de imagini prin crearea unei pagini noi, numită Galerie, din interfața de administrator a WordPress. Odata ce noua pagină a fost creată, facem upload (ucrăm) pe server imaginile pe care le vom folosi în respectiva galerie.

Pentru a adăuga fișiere media pe server, fie ele poze sau video, folosim butonul Media din interfața de administrator, selectăm Add New, și adăugăm manual (sau intr-un fișier .zip) imaginile / clipurile video în cauză.

În momentul de față, avem două opțiuni:

crearea unei galerii clasice, folosind WordPress fără a fi nevoie de o altă instalare;

folosirea unui plug-in special pentru galerii, care adaugă elemente de funcționalitate, dar și elemente de stil.

Am ales instalarea unui plug-in care să se ocupe de galeria site-ului, și anume, versiunea Open Source (gratuită) a Gallery Pro, deoarece partea de aspect este una importanta în dezvoltarea acestui site.

Începem lucrul la galeria de imagini prin navigarea la panoul Gallery Pro, selectarea butonului Add New Gallery, și crearea unei noi galerii în interfață pluginului.

Opțiunile disponibile galeriilor create în Gallery Pro sunt:

Afișarea titlului galeriei;

Afișarea de etichete în imagini;

Afișarea de descriere a imaginii;

Tipul de deschidere în momentul în care se dă click;

tipul de layout folosit în galerie;

Tipul de font folosit;

Tipul de animație folosit la hover;

Culorile folosite pentru fundal, etichete, descriere, butoane;

Numele butonului de zoom;

Loc pentru introducerea de CSS custom, în caz ca este necesar.

Fig 4.11 Introducerea de imagini în panoul de administrator

Odată ce am selectat imaginile pe care le vom folosi pentru a popula galeria, vom publica pagina pe site, astfel rezultând:

Fig 4.12 Afișarea unei imagini în galerie

Se poate observa ca în afară de butonul de zoom, nu a fost adaugat nici un comentariu la imaginea introdusă, dar acest lucru se poate face ușor, din interfața panoului de administrator, la momentul creării noii galerii.

Ștergerea galeriei se poate face la fel de ușor, prin navigarea în panoul Gallery Pro, selectarea galeriei create anterior și folosirea butonului „Trash”.

Odata ștearsa galeria, ea poate fi refăcută, sau eliminată complet, caz în care se recomandă de asemenea ștergerea paginii create, numită Galerie.

4.6. Formulare de contact

Secțiunea de contact este plasată de două ori pe site, si poate fi accesată fie prin scroll pe pagina principală până in zona de contact, sau pe pagina de conctact cu același nume, situată in bara de navigare.

Formularul de contact constă în trei secțiuni, care trebuie completate pentru a-l putea trimite.

Secțiunile sunt:

Nume

E-mail

Mesaj

Mai trebuie menționat că ambele formulare funcționează, mesajele trimise fiind primite în interfața de administrator, cât si pe e-mail (doar dacă opțiunea este activă).

Fig 4.11 Formular de contact

CAPITOLUL 5

CONCLUZII

5.1. Concluzii

Odată cu creșterea importanței Internetului in zilele de azi, cât și din cauza dezvoltării in fiecare zi de tehnologii care fac Internetul mai accesibil pentru toți, a devenit necesară prezența online a platformelor de invățământ si nu numai. Deoarece vârsta la care persoanele învață sa foloseasca calculatorul, și, implicit, să navigheze pe Internet este în continuă scădere, apare nevoia școliilor să-și faca simțită prezența pe World Wide Web. Și nu in orice mod. Un site web ușor de navigat și vizualizat, indiferent de platforma folosită, care denotă nivelul de profesionalism al școlii, și un loc unde școala să se poate mândri cu rezultatele obținute de elevii săi este cel mai bun prim pas pe care o școala il poate face in secolul 21.

La baza site-ului “Aplicație web-responsive pentru administrarea unei școli, stă Platforma WordPress, care prin milioanele de moduri de configurare, o comunitate mare de dezvoltatori care creează neobosiți pluginuri, teme și widgeturi, ofera utilizatorilor platformei WordPress o multitudine de opțiuni de configurare și creare a site-ului lor, încat crearea și menținerea site-ului la curent cu cele mai noi tehnologii si chiar trend-uri devine dintr-un chin, o plăcere.

5.2. Oportunitați de dezvoltare

Versiunea curentă a site-ului nu trebuie considerată drept versiunea finală, deoarece ea este abia primul pas făcut catre o aplicație care să indeplinească toate nevoille și dorințele administratorilor, și care ar putea fi îmbunătățită in versiunile sale ulterioare, prin adăugarea de noi facilități. cum ar putea fi:

Adăugarea unui catalog accesibil de pe site

Adăugarea unui orar, disponibil pe site,

Adăugarea plug-in-urilor de upload / download pe site, oferind astfel elevilor capacitatea de a-și descărca cursurile și temele de acasă;

Adăugarea de subtipuri de utilizator (momentan, site-ul este configurat doar pentru admin) și oferirea de permisiuni bazate pe rank-ul lor;

Adăugarea unui forum de discuții în interiorul site-ului;

Integrarea site-ului cu paginile existente de Social Media (Facebook, Youtube, Twitter, Google+);

Acestea reprezintând doar câteva idei care ar putea fi implementate in următoarele versiuni a site-ului, de către administrator.

Bibliografie

http://php.net/manual/ro/language.basic-syntax.phpmode.php

https://en.wikipedia.org/wiki/MySQL

http://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html

http://www.ibm.com/support/knowledgecenter/SSPK3V_6.3.0/kc_gen/com.ibm.swg.im.soliddb.doc_SQLGuide-toc-gen1.html

https://en.wikipedia.org/wiki/SQL

https://en.wikipedia.org/wiki/Apache_HTTP_Server

http://httpd.apache.org/ABOUT_APACHE.html

https://en.wikipedia.org/wiki/XAMPP

http://dalibor.dvorski.net/downloads/docs/InstallingConfiguringDevelopingWithXAMPP.pdf

https://en.wikipedia.org/wiki/WordPress

About

https://en.wikipedia.org/wiki/Cascading_Style_Sheets

CSS: The Definitive Guide, 3rd Edition ,Visual Presentation for the Web/ Eric A. Meyer

Flanagan, David (2011). JavaScript: The Definitive Guide (6th ed.).

https://en.wikipedia.org/wiki/JavaScript

Similar Posts