Aplicatie Multifir Pentru Gestionarea Activitatii Unei Sali DE Fitness

APLICAȚIE MULTIFIR PENTRU GESTIONAREA

ACTIVITĂȚII UNEI SĂLI DE FITNESS

Cuprins

1 INTRODUCERE

1.1 SCOPUL

1.2 MOTIVAȚIA

2 PROIECTAREA

2.1 PROIECTAREA SISTEMULUI

2.2 PROIECTAREA ARHITECTURII

2.3 PROIECTAREA MODULULUI

3 TEHNOLOGII UTILIZATE

3.1 PHP

3.2 JAVASCRIPT

3.3 AJAX

3.4 HTML

3.5 CSS

3.6 MYSQL

3.6.1 Conectarea la MySQL

3.6.2 Dezvoltarea aplicațiilor PHP cu baze de date MySQL

3.7 MVC

3.7.1 Rolul componenței Model:

3.7.2 Rolul componenței View:

3.7.3 Rolul părții de Controller

4 TESTARE

4.1 TESTAREA UNITARĂ

4.2 TESTAREA INTEGRĂRII

4.3 TESTAREA DE SISTEM

4.4 TESTARE DE ACCEPTARE A UTILIZATORULUI

5 CERINȚE FUNCȚIONALE

5.1 ANALIZA CERINȚELOR FUNCȚIONALE

5.2 SCHEMA BLOC

5.3 METODA ENTITATE-RELAȚIE

6 SPECIFICAȚII FUNCȚIONALE

6.1.1 ADMINISTRATORI

6.1.2 SĂLI

6.1.3 ACTIVITĂȚI

6.1.4 ANGAJAȚI

6.1.5 CLIENȚI

6.1.6 ABONAMENTE

6.1.7 PROGRAMĂRI

6.1.8 ECHIPAMENTE

6.1.9 OFERTE

6.1.10 PRODUSE

6.1.11 CONTABILITATE

7 CONCLUZII

BIBLIOGRAFIE

REFERINȚE WEB

A. CODUL SURSĂ

B. CD / DVD

LISTA FIGURILOR

FIGURA 1. COMUNICAREA…………………………………………………………………………………………………………………….3

FIGURA 2. INTEROGARE FĂRĂ PARAMETRII, AFIȘARE TABELTĂ………………………………………………………………..14

FIGURA 3. MODELUL RELAȚIONAL AL BAZEI DE DATE……………………………………………………………………………….26

Introducere

Scopul

Aplicația pentru gestionarea activităților într-o sală de fitness este un sistem software care oferă un mod simplu și rapid de a ține evidența activităților unei săli de fitness (fitness, spa, saună, aerobic, solar, pilates, zumba, kangoo jumps, tae bo etc.), a cheltuielilor (achiziționare aparatură, cheltuieli administrative, salarii etc.), dar și a încasărilor (abonamente, tarifele percepute pentru fiecare sedință de masaj, solar, saună, nutriție etc.) aferente acesteia.

Motivația

Principala motivație este aceea de a ușura familiarizarea cu programarea folosind PHP, de a acumula experiență în dezvoltarea de produse software bazate pe această platformă și de a învăța cât mai multe aspecte noi legate de programare, precum și familiarizarea cu medii populare de dezvoltare/administrare a bazelor de date (MySql).

PROIECTAREA

Proiectarea sistemului

Faza în care inginerii de sistem analizează activitatea sistemului se numește proiectarea sistemelor și se face prin studierea documentului cerințelor date de utilizator. Inginerii își dau seama de posibilitățile și tehnicile pe care le pot utiliza pentru a implementa cerințele utilizatorului. Dacă cei care implementează cerințele realizează că există anumite neclaratitati sau posibile probleme informează utilizatorul și se încearcă găsirea unei soluții , iar mai apoi documentul cerințelor este editat.

Documentul cerințelor conține de asemenea și un plan de dezvoltare, organizările sistemului general, structurile meniului, etc. Mai pot fi incluse și scenarii, rapoarte și orice consideră dezvoltatorul că îi este de ajutor pentru implementarea cerințelor. În această faza sunt pregătite și documentele pentru testarea sistemului.

Proiectarea arhitecturii

În această faza sunt realizate modulele, formate deobicei din lista de module, relațiile de interfață, dependetele, diagramele arhitecturii, detaliile legate de design, de testare și de asemenea de integrare.

Proiectarea modulului

În faza de proiectare a modulului sistemul este descompus în mai multe module sau unități mai mici, iar pentru că programatorul să poată începe direct codificarea sunt explicate aceste module.

Acest document de proiectare de nivel scăzut va conține o logică funcțională detaliată a modulului, în pseudocod:

– tabelele bazei de date, cu toate elementele, inclusiv tipul și dimensiunea lor;

– toate detaliile de interfață cu referințe complet API;

– toate problemele de dependență ;

– mesaj de eroare, listări de intrare complete și ieșiri pentru un modul;

tEHNOLOGII UTILIZATE

PHP

PHP: Hypertext Preprocessor este un limbaj de scripting de uz general utilizat pe scară largă, care a fost proiectat inițial pentru dezvoltarea web, pentru a produce pagini web dinamice.

PHP actioneaza in primul rand ca un filtru, ținând de intrare dintr-un fișier sau flux text care conțin și / sau PHP instrucțiuni și ieșiri un alt flux de date; cel mai frecvent de ieșire va fi HTML. Începând cu PHP 4, interpretorul PHP compilează de intrare pentru a produce bytecode pentru prelucrare de Zend Engine, oferind performante imbunatatite fata de predecesorul ei interpret.

Limbajul PHP este un limbaj care poate fi imbinat cu cod HTML, codul PHP fiind interpretat de către un server web cu modul procesor PHP și astfel generându-se HTML-ul paginei web.

Acesta poate să funcționeze, deasemenea, că aplicație de grafică. PHP este disponibil că un procesor de majoritatea serverelor web moderne,dar și că un interpretor de sine stătător pe majoritatea sistemelor de operare.

PHP a fost creat de Rasmus Lerdorf în 1995, inițial că un set simplu de scripturi pentru urmărirea acceselor la rezumatul sau online, apoi a scris o implementare mult mai largă în C, care era capabilă să comnice cu baze de date și dădea posibilitatea să se dezvolte aplicații Web dinamice simple.

Poate fi utilizat, deasemnea pentru scripting în linia de comandă și aplicații GUI.

Instalarea este permisă pe majoritatea serverelor web, pe multe platforme și sisteme de operare și se poate folosi cu mai multe sisteme de gestiunea bazelor de date.

Interpretorul PHP execută doar cod PHP. Orice este în afară delimitatorilor săi nu este prelucrat de PHP. Interpretorul acționează că o componentă adițională, componentă această procesează codul-sursă din pagină, iar rezultatul este transmis înapoi la server, ajungând apoi în browserele utilizatorilor, că în imaginile de mai jos:

Figura.1

Codul PHP este delimitat de restul conținutului prin tagul de început “<php“ și tagul de final “?>. Tot ce este în interiroul acestor etichete este interpretat că fiind cod-sursă (executat de interpretorul PHP).

Pot fi folosite și alte etichete pentru delimitare, cum ar fi : ( [code here] , ), dar acest lucru nu este recomandat.

Variabilele sunt elemente care au o anumită valoare la un moment dat, valoare ce poate fi modificată pe parcursul execuției unui script.

Variabilele sunt diferențiate prin caracterul dolar ($). Formă unei variabile este “$nume”, numele putând fi orice identificator valid ( text care conține litere, cifre și _ , dar fără spații sau alte caractere). La declararea variabilelor se pot folosi ghilimele simple sau duble, ghilimele simple sunt folosite pentru a afișa textul neschimbat, iar ghilimele duble permit compilatorului să citească variabilele ce apar în interiorul textului.

Atribuirea de valori

Se realizează în același mod că și declararea, adică prin intermediul instrucțiunii de atribuire.

Exemplu:

# atribuirea unei valori anume

$variabila = 1;

Ștergerea variabilelor

De regulă nu este necesar ca variabilele să fie șterse după folosire. Totusi, lucrul acesta se poate face in următoarele moduri:

unset( $variabila );

$variabila = null;

Afișarea variabilelor

Afișarea se realizează folosind oricare din instrucțiunile de afișare:

$variabila = "Acesta este un Text";

$randNou = "<br>";

print $variabila;

print $randNou;

// echivalent cu cele doua instructiuni print

echo $variabila, $randNou;

Atunci când se dorește testarea sau depanarea codului PHP, se pot folosi două instrucțiuni de afișare detaliată a conținutului variabilelor :

-instrucțiunea print_r , utilă în cazul vectorilor, deoarece afișează componentele variabilei specificate;

-instrucțiunea var_dump, instrucțiune ce poate fi folosită pentru orice tip de variabilă, specificând tipul de date conținut și lungimea sa;

$var1 = 123;

print "\n print_r: "; print_r($var1); // afiseaza 123

print "\n var_dump: "; var_dump($var1); // afiseaza int(123)

$var2 = "test";

print "\n print_r: "; print_r($var2); // afiseaza test

print "\n var_dump: "; var_dump($var2); // afiseaza string(4) "test"

$var3 = array('aaa', 'bbb', 'ccc');

print "\n print_r: "; print_r($var3); // afiseaza Array ( … )

print "\n var_dump: "; var_dump($var3); // afiseaza array(3) { … }

Expresiile sunt construcții ale limbajului care au o valoare.În PHP expresiile sunt evaluate de la dreapta la stânga. De exemplu în expresia $b = ($a = 1); întâi se evaluează expresia $a=1, iar apoi se efectuează atribuirea $b=…

De menționat că nu doar atribuirile sunt expresii, deasemenea și apelurile de funcții (predefinite sau definite de programator) sunt considerate expresii și ele deoarece returnează o valoare. Generarea unui expresii noi se face utilizând operatori , prin asocierea mai multor expresii.

Valoarea expresiilor se poate modifică în funcție de context. Adică, se modifică tipul de date de care aparține expresia (din strîng în logic, din numeric în strîng, etc).

Limbajul PHP este asemănător cu multe limbaje de nivel înalt care urmează sintaxa limbajului C.

PHP are sute de funcții de baza. Există funcții predefinite (prinț, empty , etc.) specfice acestui limbaj, care pot fi folosite în orice moment fără să fie necesară vreo acțiune specială și funcții definite de utilizator, funcții care practic sunt scrise de utilizator. funcțiile sunt folosite pentru reutilizarea codului, pentru modularizare și pentru menținerea ușoară a codului.

JAVASCRIPT

Javascript este un limbaj de programare orientat pe obiecte, folosit deobicei pentru introducerea functionalitatilor în paginile web, browserul fiind cel care rulează codul Javascript.

În cadrul limbajului Javascript pot fi definite variabile, care pot fi scalare sau compuse, se pot folosi intructiuni(de test, de atribuire, de ciclare, de control), se pot utiliza obiecte care conțin metode(funcții) predefinte sau scrise de programator.

Javascript poate fi introdus în interiorul paginilor HTML. Marcarea codului Javascript se face cu ajutorul marcatorului astfel:

<script type="text/javascript">

Codul javascript

</script>

O altă metodă de folosire a scripturilor Javascript, este cea de utilizare a scripturilor externe.

Exemplu de adresare a unui fișier JS extern (fișierul extern este exemplu.js, codul javascript este stocat aici și se poate folosi în cadrul paginii):

<html>

<head>

<title>

Exemplu

</title>

<script type="text/javascript" src=exemplu.js>

</script>

</head>

<body>

Conținut

</body>

</html>

AJAX

De menționat este că Ajax (Asynchronous JavaScript And XML) nu este un limbaj de programare ci un atu în realizarea unei pagini web prin folosirea vechilor limbaje pentru a crea aplicații web mai rapid, mai bune și mai user-friendly.

AJAX-ul folosete mai multe standarde:

-XML: folosit pentru a transferară datele între server și client;

-DOM: folosit pentru a manipula și accesa codul;

-Javascript: folosit pentru a răspunde la evenimente și a interacționa cu browser-ul;

-CSS: folosit pentru a prezența informațiile;

-HTML: folosit pentru a structurară semantic informațiile;

AJAX nu este o tehnologie ci un grup de tehnologii, nucleul sau reprezentându-l XMLHttpRequest folosit pentru a schimbă date asincron cu server-ul web. AJAX este suportat de majoritatea browserelor , Mozilla Firefox, Internet Explorer, Opera, Safari.

Comunicarea cu serverul prin intermediul AJAX este liberă pentru că nu mai este nevoie să se încarce o nouă pagină, reducându-se astfel timpul de așteptare.

HTML

HTML (Hypertext markup Language) este un limbaj de marcare cu ajutorul căruia se crează pagini web care se pot afișa într-un browser. Scopul HTML nu este de descriere a semnaticii documentului ci de prezentare e informațiilor.

HTML este printre primele elemente fundamentale ale WWW (World Wide Web) și dee între server și client;

-DOM: folosit pentru a manipula și accesa codul;

-Javascript: folosit pentru a răspunde la evenimente și a interacționa cu browser-ul;

-CSS: folosit pentru a prezența informațiile;

-HTML: folosit pentru a structurară semantic informațiile;

AJAX nu este o tehnologie ci un grup de tehnologii, nucleul sau reprezentându-l XMLHttpRequest folosit pentru a schimbă date asincron cu server-ul web. AJAX este suportat de majoritatea browserelor , Mozilla Firefox, Internet Explorer, Opera, Safari.

Comunicarea cu serverul prin intermediul AJAX este liberă pentru că nu mai este nevoie să se încarce o nouă pagină, reducându-se astfel timpul de așteptare.

HTML

HTML (Hypertext markup Language) este un limbaj de marcare cu ajutorul căruia se crează pagini web care se pot afișa într-un browser. Scopul HTML nu este de descriere a semnaticii documentului ci de prezentare e informațiilor.

HTML este printre primele elemente fundamentale ale WWW (World Wide Web) și descrie formatul în care sunt văzute și distribuite documentele pe web.

HTML a fost dezvoltat de Tim Berners-Lee și a fost văzut că o posibilitate pentru fizicieni să schimbe între ei informații folosind Internetul.

HTML utilizează un software de redare specializat, numit agent utilizator HTML, exemplul cel mai bun pentru un astfel de sofware este browserul web. HTML furnizează mijloacele prin care conținutul unui document poate fi adnotat cu diverse tipuri de metadate și indicații de redare.

HTML este codul ce stă la baza paginilor web, pagini formate din etichete sau tag-uri care au extensia .html/.htm. Deobicei aceste tag-uri sunt pereche, una de deschidere &lt;eticheta&gt; și una de închidere eticheta&gt;, există și cazuri când nu se închid, atunci folosindu-re eticheta &lt;eticheta/&gt;, browser-ul fiind cel care interpretează aceste etichete și afișează rezultatul pe ecran. HTML-ul nu este un limbaj care face diferența între literele mari și mici, deci nu este un limbaj case-sensitiv.

Un document HTML este delimitat de etichetele și conține:

1.Antetul documentului: delimitat de perechea de etichete și ; cuprinde informații generale despre proiect, titlul, autorul documentului etc. Singurul lucru vizibil în pagină este titlul aplicației care apare în bară de titlu a browserului. Etichetele pentru titlu <title> Titlu</titlle>.

2.Corpul documentului: delimitat de etichetele și conține textul în sine al documentului, adică tot ce este vizibil pentru un user al paginii create. Pagină pricipala o reprezintă fișierul index.html/index.htm. La vizitarea unui domeniu această pagină este setată să fie afișată automat. De exemplu la vizitarea domeniului www.exemplu.ro este afișată pagină www.exemplu.ro/index.html.

CSS

CSS este un acronim provenind din Cascading Style Sheets, care înseamnă "foi de stil în cascadă". Site-urile au devenit pe zi ce trece din ce în mai complexe, lucru datorat dezvoltării internetului, iar cerințele privind grafică și elementele devenind din ce în ce mai pretențioase, iar astefl proiectarea paginilor web a devenit o sarcina mai dificilă și mai complexă.

CSS este destinat pentru a permite separarea conținutului documentului de prezentarea documentului, incluzând elemente precum aspectu, culori și fonturi.

Separarea această este benefică pentru îmbunătățirea accesibilității conținutului, pentru control în specificațiile caracteristicilor de prezentare, etc.

Prin modificarea unui singur fișier se poate modifică formă în care sunt afișate toate paginile unui website, lucru posibil de la versiunea 4.0 a HTML-ului când toate atributele personalizate au fost scoase și salvate într-un fișier cu extensia ".css".

Sintaxa pentru CSS este una simplă și folosește o serie de cuvinte în limba engleză pentru specificarea numelor de proprietăți de stil diferite.

O foaie de stil are un set de reguli. Fiecare regulă sau set de reguli are unul sau mai multe selectoare și un bloc de declarație. Declarația-bloc este formată dintr-o lista de declarații în paranteze. Fiecare declarație este formată dintr-o proprietate, două puncte ":", o valoare și un punct și virgulă ";".

Foaia de stil se poate insera în trei moduri:

-Foaia externă de stil;

-Foaia internă de stil;

-Stil inline;

Foaia externă de stil este ideală atunci când stilul se aplică mai multor pagini, iar cu ajutorul ei se poate modifică apectul întregului site.

Foaia internă de stil este folosită atunci când un singur document are un stil anume. Foaia internă de stil se definește folosind tagul în secțiunea head a pagini HTML.

Stilul inline amestecă conținutul cu prezentarea, motiv pentru care pierde mult din avantajele foilor de stiluri. Recomandat este să se utilezez cât mai rar această metodă.

Selectoarii se pot aplică la toate elementele de un anumit tip, sau doar la elementele care se potrivesc cu un atribut, unele elemebte pot fi compensate,

în funcție de felul în care sunt imbricate în cadrul obiectului document model.

Selectorii sunt de mai multe feluri, cei mai importanți sunt:

-selector element, aplică proprietățile tuturor elementelor de acest tip;

ex: h5 {

color:blue;

};// toate elementele h5 din pagina vor avea culoarea albastră;

-selector class, utilizat pentru specificarea stilului unui grup de elemente. Astfel se poate seta un stil particular pentru toate elementele HTML ce fac parte din acceași clasa.

Selectorul class folosește atributul HTML class și este definit cu ".".

-selector id, utilizat pentru specificarea stilului unui singur element. Selectorul id folosește atributul id al unui element HTML, și este definit cu "#".

O altă formă de specificații folosite în CSS sunt pseudo-clasele, utilizate pentru a identifica elemente de marcare și, uneori, acțiuni specifice de utilizator la care se aplică un anumit bloc-declarație. Pseudo-clasa selectează elementel întregi, precum link-ul, iar pseudo-elementul face o selecție care constă din elementepartiale, precum prima linie.

MYSQL

MySql este produs de compania suedeză MySql și reprezintă un sistem de gestiune a bazelor de date. La ora actuală este cel popular sistem de gestiune al bazelor de date(SGBD).

Cu MySql se pot construi aplicații în orice limbaj chiar dacă este foarte des folosit împreună cu limbajul PHP. Scrierea aplicațiilor se poate face în mai multe limbaje de programare cu ajutorul mai multor scheme API disponibile pentru MySql :C, C++, C#, Java, Perl, PHP, Python , etc.

Interfață de tip ODBC (MyODBC) permite altor limbaje de programare care folosesc această interfață să interacționeze cu bazele de date MySql, precum API sau Visual Basic. Pentru sprijinirea acestor limbaje de programare, unele companii produc componenete de tip COM/COM+ sau .NET (Windows), prin intermediul acestora respectivele limbaje pot folosi acest SGBD mult mai simplu decât prin intermediul ODBC.

PHP-ul este deseori combinat cu MySql și din acet motiv este denumit Duo-ul Dinamic, fiind totodată și foarte popular. MySql are comenzi foarte ușoare, de exemplu pentru comandă de ieșire se folosește "exit" sau "quit",de aceea este considerat că fiind foarte ușor de învățat, în comparație cu alte aplicații.

Pentru administrarea bazelor de date MySql se poate folosi modul linie de comandă sau o interfață grafică MySQL Administrator și MySQL Query Browser, interfață ce poate fi descărcată de pe Internet. Aplicația scrisă în PHP, phpMyAdmin , este un alt instrument de management al bazelor de date.

Platformele pe care poate fi rulat MySql sunt: Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NȚ/2000/XP/Vista, AIX, FreeBSD, GNU/Linux.

Unele din operațiile cele mai utilizate într-un SGBD sunt:

– conectarea la server;

– afișarea unor baze de date existente;

– alegerea bazei de date cu care se doreste sa se lucreze;

– afișarea tabeleor conținute într-o baza de date;

– crearea unei baze de date;

– crearea tabelelor din interiorul unei baze de date și precizarea câmpurilor conținute în acele

tabele;

– popularea tabelelor cu date;

– inserarea, regăsirea, modificarea sau ștergerea datelor din tabele;

– efectuarea unor interogări asupra datelor cuprinse în tabele;

– deconectarea de la serverul de baze de date.

Conectarea la MySQL

Conectarea la serverul MySQL se face cu o comandă de tastată la prompter-ul sistemului de operare, în directorul mysql\bin, de genul:

mysql –h hostname –u username –p

-hostname reprezintă numele sau adresa IP a calculatorului pe care rulează serverul MySQL. Atunci candprogramul client rulează pe același calculator cu și programul server, opțiunea –h hostname poate fi eliminată. Nu există nici o legătură între numele user-ului de conectare la serverul (Linux sau Windows) pe care este instalat MySQL-ul și numele de user MySQL.

-username reprezintă numele user-ului.

-opțiunea –p cere user-ului care se conectează să introducă parolă

După instalare, este creat un user implicit necesar pentru conectare fără nume și fără parolă. În acest caz conectarea (de pe host-ul local) se face folosind comandă ‘mysql’ fără parametrii (pentru Linux) sau folsind comandă mysql.exe (pentru Windows).

În cazul conectării reușite, programul client MySQL va afișa prompter-ul corespunzător liniei de comandă:

mysql>gt;

La apariția acestei linii de comandă, serverul MySQL este pregătit pentru a primi comenzi.

Serverul MySQL-ul utilizează o prima baza de date, numită ‘mysql’, pentru stocarea numelor user-ilor, parolelor corespunzătoare acestora și drepturilor lor (în diverse tabele, asupra cărora se va reveni). Ștergerea bazei de date (operație care nu este recomandată) poate duce la erori în funcționarea server-ului.

A două baza de date (test) este un exemplu de baza, care se crează implicit în urmă instalării ,fiind, după cum îi spune și numele, o baza de date de testare.

În continuare se vor prezența câteva din comenziile importante în crearea și utilizarea unei de de date folosind MySql.

Comanda „create database”

Cu comanda "create datebase " se crează o bază de date care va servi la memorarea datelor.

Exemplu:

mysql>create database avion;

Comanda „use”

Pentru selectarea unei baze de date sau pentru lucrul cu aceasta, se folosește instrucțiunea use urmată de numele bazei de date respective.

Comanda „create table”

După crearea bazei de date și selectarea ei se trece la crearea tabelelor bazei de date. Instrucțiunea create table are sintaxa:

mysql>create table nume_tabe(

mysql>nume_col1 tip atribute,

mysql>nume_col2 tip atribute,

mysql>primary_key(nume_col1)

mysql>);

Atributele câmpurilor unui tabel

• unsigned –aceste atribut precizează că nu se admit valori negative.

• not null – acest atribut precizează că la efectuarea unei înregistrări, câmpul trebuie neapărat sa fie completat cu o valoare potrivită, deci nu se admite valoarea nulă.

• auto_increment – acest atribut este un atribut special in MySQL și funcționează dupa cum urmeaza: la efectuarea unei înregistrari în tabel, dacă nu este precizata valoarea acestui câmp, MySQL generează automat un numar unic, mai mare cu o unitate decât valoarea maximă de pe coloana respectivă în acel moment (de obicei, pentru câmpuri cu numere întregi). MySQL impune ca o coloană cu atributul auto_increment să aibă o valoare unică.

• primary_key- acest atribut arată ca acea coloană din tabel este indexată pentru căutari rapide și că fiecare valoare din acel câmp trebuie să fie unică.

Comanda “alter”

Cu această comandă se modifică definiția unei tabele .

Modificarea numelui unui tabel:

mysql>alter table nume_vechi rename nume_nou;

Adăugarea unei coloane:

mysql>alter table nume_tabel add column nume_coloana tip atribute;

Comanda “insert”

Cu comanda "insert" se adaugă înregistrări (linii) într-un tabel din baza de date curentă. Sintaxa comenzii este:

mysql>insert into nume_tabel(col1, col2,…) values (val1,val2,…);

Valorile de tip text se pun între ghilimele simple.

Comanda “update”

Cu această comandă se realizează modificarea valorilor unor câmpuri dintr-un tabel. Sintaxa ei este:

mysql> update nume_tabel set col1=val1,col2=val2…where col1=value;

Chiar dacă condiția din clauza where poate fi complexă, de cele mai multe ori ea este de forma cheie_primara=valoare.

Comanda “select”

Această comandă este cea mai complexă comandă din limbajul SQL și este destinată regăsirii unor anumite informații.

Când se dorește selectarea tuturor înregistrărilor dintr-o tabelă, sintaxa comenzii este:

mysql>select * from nume_tabel;

Dacă se dorește selectarea doar a unor înregistrări dintr-un tabel, care îndeplinesc o anumită condiție, sintaxa comenzii este:

mysql>select * from nume_tabel where nume_camp=100;

Comanda “delete”

Această comandă este utilizată pentru a șterge unul sau mai multe articole existente, dintr-un tabel. Sintaxa este următoarea:

mysql>delete from nume_tabel where nume_camp=100;

Pentru a șterge toate articolele existente dintr-un tabel, sintaxa comenzii este;

mysql>delete from nume_tabel;

Comanda “drop”

Cu această comandă se permite suprimarea unui tabel din baza de date curentă sau distrugerea întregii baze de date. Sintaxa comenzii este:

mysql>drop table nume_tabel;

mysql>drop database nume_bază;

Comanda “show”

Această comandă este folosistă pentru listarea bazelor de date existente, a tabelelor din baza de date curentă sau listarea câmpurilor unui tabel. Sintaxa ei este:

mysql>show databases;

mysql>show tables;

Dezvoltarea aplicațiilor PHP cu baze de date MySQL

Operarea în PHP cu baze MySQL este foarte asemănătoare cu cea cu bazele de date InterBase (deosebirile apar doar prin funcțiile diferite utilizate).

Există câteva funcții PHP noi, ce permit operarea cu baze de date MySQL:

– mysql_connect – permite conectarea la un server MySQL

– mysql_select_db – permite selecția bazei de date MySQL

– myql_query – interogarea efectivă a tabelei MySQL (ca parametru putându-se practic folosi orice string reprezentând o comandă MySQL validă)

– mysql_fetch_row – returnează un șir de valori (corespunzând unei linii din tabela interogată), iar când nu mai sunt alte linii – returnează FALSE

– mysql_close – închide conexiunea cu serverul MySQL

Exemplul următor reprezintă una din cele mai simple modalități de interogare neparametrizate a unei tabele MySQL, cu o afișare formatată a rezultatelor sub formă tabelară:

MVC

MVC (Model View Controller) a apărut că o necesitate pentru transpunerea metodelor tradiționale pentru gestionare a datelor în mediul virtual, mai exact pentru ușurarea modului de lucru al utilizatorilor respectând aceleași principii, diferența constând în instrumentele folosite. Principiile de baza ale conceptului sunt relativ ușor de înțeles, în schimb detalierile sunt destul de complexe , ceea ce a produs lansarea mai multor dezbateri și întâlnirea mai multor implementări contradictorii.

MVC este o arhitectură software, considerată acum un model arhitectural folosit în ingineria software, principiul care stă la baza acestui concept este împărțirea responsabilităților.

Modelul lucrează doar cu starea de aplicație și cu logică ei, în schimb nu va conta cum este reprezentată sau cum se va reprezenta starea aplicației de către utilizator sau cum interacționează cu aplicația. Partea de View se ocupă cu crearea interfeței utilizator ținând cont de datele și schimbările stărilor acestora , primite de la model. Pentru această aplicație singurul lucru care contează este reprezentarea cât mai corectă a stării curente a modelului și nu cum se realizează procesul de input. La final, controller-ul este cel care se ocupă cu translatarea acțiunilor prestate de utilizator în update-uri, nefiin deloc important la ce vor folosi aceste update-uri.

Corespondență este următoarea:

Introducere → Procesare → Rezultat

Controller → Model → View

Figura.2

Modelul este folosit la organizarea informației și pentru a anunță când această se modifică. Conține numai date și și funcționalități ce sunt legate printr-un scop comun. Pentru a modela date din două grupuri care nu sunt legate se vor crea două modele diferite.

Scopul în sine al unui model este de a realiza o aproximare în mediul informațional al unor procese sau sisteme din lumea reală. El trebuie să stabilească cum funcționează acel sistem și nu să se limiteze la capturarea stării unui proces ori sistem, iar folosirea modelării din lumea reală la definirea propriilor sisteme să fie foarte ușoară.

View-ul are responsabilitatea legării elemenetelor grafice unui element hardware. De regulă un view are corespondență unu-la-unu cu suprafață unui display. Un view se leagă de un model și arată conținutul lui pe un display, iar atunci când modelul se va modifică , în mod automat view-ul va redesena automat partea afectată a imaginii pentru a vizualiza schimbările respective. Un model poate conține mai multe modele de view și fiecare poate redă bucăți din model pe display-uri diferite.

La baza unei aplicații stă separarea codului în 3 componente MVC care va aduce următoarele beneficii:

-Permite mai multe reprezentări ale aceleiași informații (model);

– Permite interfetelor utilizator să poată fi ușor adăugate, înlăturate sau modificate, în

ambele faze, faza de compilare sau/și faza de execuție;

– Permite o ușoară modificare a răspunsurilor la "input"-urile utilizatorului (controller) atât în

timpul compilării cât și în timpul execuției;

– Promovează reutilizarea;

– Permite mai multor dezvoltatori să actualizeze simultan interfață, logică sau "input"-ul unei

aplicații fără să fie afectat celălalt cod sursă

– Ajută dezvoltatorii să se orienteze doar pe un singur aspect al aplicației;

Totuși, conceptul MVC nu se pretează la toate aplicațiile, în ciuda beneficiilor indicate mai sus ci se adresează mai mult de mare anvergură decât aplicațiilor mici.

Responsabilitățile în cadrul unui astfel de model sunt împărțite, după cum s-a văzut și mai sus în trei componente:

– componentă model;

-componentă view;

-componentă controller;

Rolul componenței Model:

Această componentă înmagazinează datele sub formă de proprietăți și pune la dispoziție metode care permit extragerea și fixarea datelor. Metodele sunt adaptate cerințelor aplicației și trebuie să fie cunoscute părților de control și de vedere.

Aceste date din cadrul părții de model se pot modifică extern de către o clasa externă sau intern. Atunci când modelul observă schimbări importante a propriei stări, trebuie să instinteze toate vederile înregistrate.

Modelul este, defapt, cel care implementează partea logică a triadei MVC, furnizând totodată și servicii de validare a datelor și ale utilității specifice aplicației.

Rolul componenței View:

Partea de View crează interfață utilizator iar apoi trebuie să o țină la curent cu toate acțiunile sau modificările. Atunci când modelul suferă modificări, vederea trebuie să își actualizeze interfață astfel încât să arate această modificare, deci în concluzie vederea trebuie să urmărească stările modelului.

Vederea nu trebuie să procesez singură nici o intrare ci trebuie să transmită mai departe toate evenimentele legate de intrările de informații.

Partea de vedere poate cere informații părții de model despre starea să cu scopul de a află ce schimbări s-au produs.

În model partea de vedere nu va face modificări niciodată, dar poate să extragă informații. Comunicarea este de tip push-pull, ori partea d evedre extrage starea modelului, ori partea de model împinge starea către vedere în timul unei schimbări majore a stării proprii.

Rolul părții de Controller

Din partea părții de vedere se anunță evenimente că urmare a modificărilor realizate de utilizator, evenimente care sunt transpuse apoi în modificări pentru model. Există și cazuri speciale când controllerul poate să inducă modificări părții de vedere prin apelare de metode din cadrul vederii. Modificările suferite sunt transmise direct vederii în cazul în care nu au nici un efect asupra modelului ci sunt doar de cosmetizare.

TESTARE

Testarea unitară

Prin testarea unitară se testează unități individuale de cod sursă pentru a determina dacă sunt apte pentru a se utiliza. Unitatea este cea mai mică parte care se poate testa a unei cereri și poate fi o funcție sau o procedura individuală. De obicei unitățile de teste sunt create de programatoru sau uneori de testeri. În acoperirea de testare scopul este acela de a se verifică codul de logică internă prin testarea fiecărei ramuri.

Pentru ușurarea acestui proces sunt folosite instrumente statice de analiză, în cazul în care variațiile de date de intrare sunt transmise către funcția de testare pentru fiecare caz posibil de execuție.

Testarea integrării

În testarea integrării module separate se vor testa împreună pentru a fi expuse defectele din interfețe și cele din interacțiunea dintre componentele integrate. Grupuri mai mari de componente software testate corespunzător sunt integrate și testate până când software-ulfunctioneaza că un sistem.

Testarea de sistem

După ce testarea de integrării este finalizată se trece la testarea sistemului. Această testare verifică dacă produsul de testare integrată îndeplinește cerințele specificate. Motivele pentru care este necesară testarea de sistem, deși sunt realizate testele de componente și cele de integrare sunt următoarele:

Motivele testarii de sistem

În nivelurile inferioare de testare, testarea a fost făcută împotriva specificațiile tehnice, adică, din punct de vedere tehnic al producătorului de software. Testerea este valida dacă cerințele sunt îndeplinite complet și în mod corespunzător. Sistemul de testare se uită la sistemul văzut din perspectiva clientului și utilizatorului viitor.

Un exemplu ar fi următorul: clientul (cel care a comandat și plătit pentru sistem) și utilizatorul (cel care utilizează sistemul) se pot află în diferite grupuri de persoane sau organizații cu propriile lor interese și cerințe specifice ale sistemului.

Majoritatea funcțiilor și caracteristicilor sunt rezultate ale sistemului de interacțiune a tuturor componentelor sistemului, deci, acestea sunt vizibile numai la nivelul întregului sistem și pot fi observate și testate doar acolo.

Testare de acceptare a utilizatorului

Testele de acceptare sunt fazele de testare utilizate pentru a determina dacă un sistem îndeplinește cerințele specificate în faza de analiză a cerințelor. Testul de design de acceptare este derivat din documentul cerințelor. Faza de testare de acceptare este faza utilizată de către client pentru a determina dacă să accepte sau nu sistemul.

Testele de acceptare ajută pentru determinarea dacă un sistem îndeplinește criteriile de acceptare sau nu. Un alt scop pentru testele de acceptare este pentru a verifică sistemul sau dacă acesta se modifică în funcție de nevoile originale.

Cerințe Funcționale

Interfața administrator – reprezintă interfața administrator a platformei prin intermediul căreia va fi posibilă gestiunea a uneia sau mai multor sali de fitness. Interfața trebuie să fie accesibilă doar unor persoane autorizate (trebuie făcută verificarea după nume și parolă pentru a acorda acces la interfață). Parola din modulul de login va fi ascunsă și criptată cu SHA512. Administratorul va putea adăuga , modifica, elimina, informatii legate de sali, activitati, angajati, clienti, abonamente, programari, oferte si produse.

Interfața de administrator trebuie să permita gestionarea cu ușurință a informatiilor din platforma. Pentru a simplifica munca administratorului, la baza acestei interfețe trebuie implementate principii vizuale ale administrării sectiunii de contabilitate prin introducerea unor diagrame ce vor afisa incasarile lunare cat si cheltuielile.

În ceea ce privește baza de date, se prezintă o proiectare primară a tabelelor:

Administratori: în care vor fi înscrise datele privind administratorii fiecărei săli de fitness;

Sali: în care vor fi înscrise toate datele referitoare fiecarei sali de fitness ex: nume, adresa,

activitati, program.

Activități: fitness, aerobic, saună, spa, pilates, zumba, kangoo, cardio etc.

Angajați: în care vor fi înscrise toate datele referitoare la angajați;

Clienți: sunt înscrise datele privind clienții;

Abonamente: tipul fiecărui abonament, prețul etc.;

Programari: fiecare activitate se va desfășura la o anumita oră, cu un anumit

antrenor/nutriționist/terapeut/maseur.

Echipamente: lista echipamentelor;

Oferte;

Produse: vor fi înscrise produsele alimentare comercializate în fiecare sală (apă, răcoritoare, produse bio etc.);

Încasări: încasările provenite din abonamente, produse vandute etc.;

Cheltuieli: achiziționare echipamente, salarii etc.

Analiza cerințelor funcționale

A. Panoul de Autentificare

Panoul de autentificare este format din trei elemente: utilizator, parola și buton de autentificare. Campurile sunt securizate folosind filtre aflanumerice modificate să accepte caractere speciale cum ar fi underline și punct.

Utilizatorul va avea maxim 40 de caractere, parola va fi criptata utilizând cifrul SHA512 și va fi stocată sub aceasta formă în baza de date ca și cookie time de 30 de zile.

Dimensiuni panou logare:

latime: 360px;

inaltime: 314px;

pozitionare: centrata;

Cromatica:

culoare principala: albastru;

culoare secundara: gri;

fundal: gri inchis;

B. Interfata Admin Fitness Pro

Interfața grafică va fi repsonsive (disponibila atat pe tabelete cat si pe mobile) si va fi compusa din 3 elemente:

Antetul – va fi afisat in partea superioara pe toata latimea interfetei pe un fundal albastru unde se va regasi numele sistemului de gestiune ”Admin Fitness Pro” cat si un button de ascundere a meniului principal ce contine toate functionalitatile aplicatiei.

Meniul principal– va fi pozitionat in partea stanga a interfetei sub forma verticala si va contine toate butoanele cu categoriile si subcategoriile aplicatiei de gestiune cat si poza de avatar a administratorului precedata de un simbol grafic(cerc verde) ce indica faptul ca administratorul este online .

Continutul dinamic al aplicatiei – va fi pozitionat in partea dreapta a meniului vertical si va contine: titlu reprezentand titlul categoriei din care face parte, tabel in care se vor afisa informatii preluate din baza de date, camp de cautare pentru a facilita operatiunea de gestiune, paginare cat si butoanele specifice de gestiune (adauga, sterge, editeaza, istoric) aflate in ultima coloana a tabelului.

Dimensiuni interfata grafica:

latime: variabila

inaltime: variabila depinde de continut;

Antetul

latime: variabila ;

inaltime: 50px;

pozitionare fixa: sus;

culoare – albastru # 3c8dbc;

Meniul principal

Dimensiune:

latime: 220px;

inaltime: variabila;

pozitionare fixa: stanga;

Cromatica:

fundal: gri #f4f4f4;

Butoane:

fundal – gri #f4f4f4 cu un rollover de culoare gri deschis #f4f4f4 ;

simbol grafic reprezentand categoria din care face parte;

Butoanele meniului vor contine doisprezece tipuri de informatii referitoare la cele afisate.

Administratori;

Sali;

Activitati ;

Angajati ;

Clienti ;

Abonamente ;

Programari ;

Echipamente ;

Oferte ;

Produse ;

Contabilitate ;

Iesire;

Conținutul dinamic al aplicatiei

Dimensiuni:

latime: variabila

inaltime: variabila;

pozitionare: centrala;

Cromatica:

fundal: alb

text: negru;

Schema bloc

A) Elemente critice:

admin.php

sala.php

activitati.php

angajati.php

clienti.php

abonamente.php

programari.php

echipamante.php

oferte.php

produse.php

cheltuieli.php

incasari.php

B) Core:

dbconfig.php

head.php

header.php

footer.php

C) App

admin.php

admin_add.php

admin_edit.php

sala.php

sala_add.php

sala_edit.php

activitati.php

activitati_add.php

activitati_edit.php

angajati.php

angajati_add.php

angajati_edit.php

clienti.php

client_add.php

client_add_abona.php

client_edit.php

abonamente.php

abonamente_add.php

abonamente_edit.php

programari.php

programari_add.php

programari_edit.php

echipamente.php

echipamente_add.php

echipamente_edit.php

oferte.php

oferte_add.php

oferte_edit.php

produse.php

produse_add.php

produse_edit.php

incasari.php

incasari_add.php

chart_produse.php

cheltuieli.php

Metoda Entitate-relație

Metoda Entitate-relație (ER), modelarea este o metodă simplă și clară de a exprima proiectarea bazei de date. Modelarea ER nu este nou[, a fost propusă pentru prima dată de Chen în 1976, dar aceasta a apărut ca paradigmă de modelare dominantă pentru baze de date în ultimii 10 sau 12 ani. 
Diagrame ER nu sunt complicate, caracteristicile includ:

Dreptunghiuri:
Reprezintă entități;Fiecare entitate este etichetată cu un titlu semnificativ.

Diamante:
Reprezintă relațiile dintre entități; o relație este etichetată cu un titlu descriptiv care reprezintă modul în care entitățile interacționează. 

Elipse:
Reprezintă atribute care descriu o entitate. 

Linii:
Conectează entităție;. Liniile pot fi adnotate cu un M și un M, cu un M și un 1 sau un

M și un 1. Adnotările indică cardinalitatea relației. Liniile conectează atributele entităților, aceste lini nu sunt etichetate.

Baza de date MySQL are 12 de tabele :

Abonamente

Activitati

Admin

Administrator

Angajati

Cheltuieli

Clienti

Echipamente

Incasari

Leg_Clienti_Abonamente

Leg_Sali_Activitati

Oferte

Produse

Programari

Sali

FIGURA 3. MODELUL RELAȚIONAL AL BAZEI DE DATE

Specificații Funcționale

Această aplicație este dezvoltată in PHP cu baze de date MySQL, iar interfata grafica este realizata in HTML5 , CSS3 si JavaScript cu ajutorul framework-ului Bootstrap. Are un design unitar, modern și intuitiv fiind realizat folosind ultimele tehnologii în materie. Această aplicație are și un design “responsive” fiind compatibilă cu orice dispozitiv mobil și orice rezoluție.

Accesul se face prin intermediul unei panel dedicat pe baza introducerii unui nume-utilizator și a unei parole valide.

Structurarea informației este în mod arborescent, cu categorii și subcategorii, fiind formată în cea mai mare parte din tabele împărțite în pagini create automat în funcție de numărul selectat de afișări pe pagină. Pe fiecare pagină afișată există posibilitatea folosirii unui motor de căutare intern care facilitează filtrarea conținutului.

<script>
$(function() {

$("button#button").click(function(){
$.ajax({
type: "POST",
url: "login_admin_site.php",
data: $('form.login').serialize(),
success: function(data){
if(data == "error_msg")
{
$("#msg").html('Numele sau parola nu corespund.')
}
else if (data == "obligatoriu")
{
$("#msg").html('Va rugam completati numele si parola')
}
else if ( data !=0 )
{
window.location='admin.php?categ=arata';
}
},
error: function(){
alert("failure");
}
});
});
});
</script>

<?php
session_start();//se creaza sesiunea

include ('core/dbconfig.php'); // se include conectarea la baza de date
$password=$_POST['password']; // se preia valoarea trimisa de formular pentru parola si email
$usernume=$_POST['username'];
$hash = hash('sha512', $password); // se cripteaza parola

if ($password=='' or $usernume=='')
{
echo 'obligatoriu';
}
else
{
$stmt = $dbh->prepare("SELECT * FROM Admin where Username= :username and Password= :hashed");
$stmt->bindParam(':username', $usernume);
$stmt->bindParam(':hashed', $hash);
$stmt->execute();
if ($row = $stmt->fetch())
{
$_SESSION['admin_site']=$row['ID_Admin'];
echo''.$_SESSION['admin_site'].'';
}
else
{
echo 'error_msg';
}
}
?>

Sistemul de gestiune Admin Fitness Pro

Interfata de gestiune are unsprezece categorii principale:

Administratori

Sali

Activitati

Angajati

Clienti

Abdomene

Programari

Echipamente

Oferte

Produse

Contabilitate

6.1.1 Administratori

Categoria “Administratori” cuprinde două subcategorii:

Vizualizează

Adaugă

Vizualizează

Reprezintă tabelul complet cu toti administratorii adaugati și cuprinde:

ID CNP (număr de indentificare unic)

Nume

Prenume

Adresa (adresa fiecarui administrator)

Telefon (telefonul fiecarui administrator)

Sala (reprezinta sala de fitness asociata fiecarui administrator)

Operații (editează informațiile despre administratori sau Șterge)

Operatiunea Editeaza Administratori

Este operațiunea prin care se poate edita orice informatie a administratorului aferent.

Operațiunea șterge

Este operațiunea prin care se șterge administratorul.

Adaugă administratori

Este operațiunea prin care se pot adăuga administratori în sistem și cuprinde următoarele câmpuri:

CNP Administrator (câmp pentru inserarea codului numeric personal al administratorului)

Nume

Prenume

Adresa (adresa administratorului)

Telefon (telefonul administratorului)

Sali (sala la care va administra)

Butonul Adaugă (finalizarea operațiunii)

6.1.2 Săli

Categoria “Săli” cuprinde două subcategorii:

Vizualizează

Adaugă

Vizualizează

Reprezintă tabelul complet cu toate sălile de fitness din sistem și cuprinde:

ID Sală (număr de indentificare unic)

Nume Sala

Lista Activități (activitatile specifice fiecarei Sali ex:Aerobic, Khai-Bo, Zumba etc.)

Adresa (adresa fiecarei săli)

Program (intervalul orar cu zilele si orele in care sala este deschisa)

Operații (editează informatiile despre săli sau Șterge)

Operatiunea Editeaza Săli

Este operațiunea prin care se poate edita informatiile aferente fiecarei săli.

Operațiunea șterge

Este operațiunea prin care se șterge sala de fitness.

Adaugă săli

Este operațiunea prin care se pot adăuga săli de fitness în sistem și cuprinde următoarele câmpuri:

Nume Sala

Lista Activități (se pot selecta una sau mai multe activitati bifand checkboxul aferent fiecarei sali)

Adresa (adresa fiecarei săli)

Program (intervalul orar cu zilele si orele in care sala este deschisa)

Operații (editează informatiile despre săli sau Șterge)

Butonul Adaugă (finalizarea operațiunii)

6.1.3 Activități

Categoria “Activități” cuprinde două subcategorii:

Vizualizează

Adaugă

Vizualizează

Reprezintă tabelul complet cu toate activitățile din sistem și cuprinde:

ID Activitate (număr de indentificare unic)

Nume Activitate

Angajat (numele angajatului care se ocupa de activitatea specifica)

Durata (durata fiecarei activitati)

Preț (prețul pe fiecare sedință exprimat in lei)

Operații (editează informatiile despre săli sau Șterge)

Operatiunea Editeaza Activitati

Este operațiunea prin care se poate edita informatiile aferente fiecarei activitati.

Operațiunea șterge

Este operațiunea prin care se șterge activitatea aferenta fiecarui ID.

Adaugă activități

Este operațiunea prin care se pot adăuga activități fizice în sistem și cuprinde următoarele câmpuri:

Nume Activitate

Angajat (numele angajatului care se ocupa de activitatea specifica)

Durata (durata fiecarei activitati)

Preț (prețul pe fiecare sedință exprimat in lei)

Butonul Adaugă (finalizarea operațiunii)

6.1.4 Angajați

Categoria “Angajați” cuprinde două subcategorii:

Vizualizează

Adaugă

Vizualizează

Reprezintă tabelul complet cu toți angajații din sistem și cuprinde:

ID Angajat (număr de indentificare unic)

Nume

Prenume

Adresa

Funcție (fiecare angajat introdus in sistem detine o functie ex director, antrenor, terapeut, etc)

Salariu (salariul lunar al fiecaarui angajat exprimat in lei)

Sala (sala de fitness la care este angajat)

Telefon

Program

Interval Orar

Operații (editează angajat, șterge angajat, adaugă sau editează program anagajat )

Operatiunea editează anagajați

Este operațiunea prin care se poate edita informatiile aferente fiecarui angajat.

Operațiunea șterge

Este operațiunea prin care se șterge angajatul din sistem.

Operațiunea adauga/editeaza program

Este operațiunea prin care se poate adauga sau edita programul fiecarui angajat cu intervalul orar.

<?php
include('../core/dbconfig.php');

$dbh->exec("SET NAMES 'utf8';");

$id=$_POST['ID_Angajat'];
$program=$_POST['Program'];
$ora=$_POST['Ora'];

$stmt = $dbh->prepare("UPDATE Angajati SET program_angajat=:Program, interval_orar=:Ora WHERE id_angajat=:ID_Angajat");

$stmt->bindParam(':ID_Angajat', $id);
$stmt->bindParam(':Program', $program);
$stmt->bindParam(':Ora', $ora);

$stmt->execute();

echo 'Programul a fost adaugat cu succes!';

?>

Adaugă angajați

Este operațiunea prin care se pot adăuga angajați în sistem și cuprinde următoarele câmpuri:

Nume

Prenume

Adresa

Funcție (fiecare angajat introdus in sistem detine o functie ex director, antrenor, terapeut, etc)

Salariu (salariul lunar al fiecaarui angajat exprimat in lei)

Sala (sala de fitness la care este angajat)

Telefon

Butonul Adaugă (finalizarea operațiunii)

6.1.5 Clienți

Categoria “Clienți” cuprinde două subcategorii:

Adaugă

Activi

Inactivi

Adaugă clienți

Este operațiunea prin care se pot adăuga clienți în sistem și cuprinde următoarele câmpuri:

Nume

Prenume

Adresa

Telefon

Abonamente

Data inceput

Data final

Butonul Adaugă (finalizarea operațiunii)

In sistemul de gestiune “Admin Fitness Pro” clienții sunt impartiti in doua categorii:

activi – reprezinta clientii care au abonamentul valabil, adica data actuala a serverului este mai mica decat data de sfarsit a abonamentului.

Inactivi – reprezinta clientii care au abonamentul expirat, adica data actuala a serverului este mai mare decat data de sfarsit a abonamentului.

Clienți Activi

Reprezintă tabelul complet cu toți clientii activi din sistem și cuprinde:

ID Client (număr de indentificare unic)

Nume

Prenume

Adresa

Telefon

Sala (sala de fitness la care are abonamentul)

Valabilitate(intervalul calendaristic cu valabilitatea abonamentului)

Stare (activ- abonamentul este valabil)

Operații (editează client, șterge client, adaugă abonament si vizualizeaza istoric abonamente )

$valabilitate2=$row['sfarsit_abonament']; // data de sfarsit a abonamentului
$data = date("Y-m-d");// data actuala a serverului

if( $data < $valabilitate2)// daca data actuala a serverului este mai mica decat data de sfarsit a abonamentului afiseaza clientii activi
{

echo'…… ’;}

Operatiunea editează

Este operațiunea prin care se poate edita informatiile aferente fiecarui client.

Operațiunea șterge

Este operațiunea prin care se șterge clientul din sistem.

Operațiunea adaugă abonament

Este operațiunea care faciliteaza gestionarea clientilor, de exemplu, un client introdus deja in sistem care vrea sa-si prelungeasca abonamnetul sau sa cumpere un alt tip de abonament este cautat prin intermediul casutei de cautare si ii este adaugat un nou abonament cu o noua data de inceput si o noua data de final.

Operațiunea istoric

Aceasta operatie reprezinta istoricul fiecarui client cu toate tipurile de abonament cumparate cat si data la care a activat, creeandu-se astfel o transparenta totala a activitatii fiecarui client.

Clienți Inactivi

Reprezintă tabelul complet cu toți clientii inactivi din sistem și cuprinde:

ID Client (număr de indentificare unic)

Nume

Prenume

Adresa

Telefon

Sala (sala de fitness la care are abonamentul)

Valabilitate(intervalul calendaristic cu valabilitatea abonamentului)

Stare (inactiv- abonamentul nu mai este valabil)

Operații (editează client, șterge client, adaugă abonament si vizualizeaza istoric abonamente )

$valabilitate2=$row['sfarsit_abonament']; // data de sfarsit a abonamentului
$data = date("Y-m-d");// data actuala a serverului

if( $data > $valabilitate2)// daca data actuala a serverului este mai mare decat data de sfarsit a abonamentului afiseaza clientii inactivi
{

echo'…… ’;}

Clientii inactivi prezinta aceleasi functionalitati ca si cei activi, cu precizarea ca cei inactivi isi pot schimba starea automat trecand la cei activi prin adaugarea unui nou abonament cu o data de sfarsit mai mare decat data actuala a serverului.

6.1.6 Abonamente

Categoria “Abonamente” cuprinde două subcategorii:

Adaugă

Vizualizează

Adaugă

Este operațiunea prin care se pot adăuga abonamente în sistem și cuprinde următoarele câmpuri:

Tip Abonament

Pret ABonament

Sala

Butonul Adaugă (finalizarea operațiunii)

<?php
include('../core/dbconfig.php');
$dbh->exec("SET NAMES 'utf8';");

$tip=$_POST['Tip'];
$pret=$_POST['Pret'];
$sala=$_POST['Sala'];

$stmt = $dbh->prepare("INSERT INTO Abonamente (tip_abonament, pret_abonament, id_sala ) VALUES (:Tip, :Pret, :Sala )");

$stmt->bindParam(':Tip', $tip);
$stmt->bindParam(':Pret', $pret);
$stmt->bindParam(':Sala', $sala);
$stmt->execute();

echo 'Abonamentul – ' . $tip. ' – a fost adaugat cu succes!';
?>

Vizualizează

Reprezintă tabelul complet cu toți angajații din sistem și cuprinde:

ID Angajat (număr de indentificare unic)

Nume

Prenume

Adresa

Funcție (fiecare angajat introdus in sistem detine o functie ex director, antrenor, terapeut, etc)

Salariu (salariul lunar al fiecaarui angajat exprimat in lei)

Sala (sala de fitness la care este angajat)

Telefon

Program

Interval Orar

Operații (editează angajat, șterge angajat, adaugă sau editează program anagajat )

Operatiunea editează anagajați

Este operațiunea prin care se poate edita informatiile aferente fiecarui angajat.

Operațiunea șterge

Este operațiunea prin care se șterge angajatul din sistem.

Operațiunea adauga/editeaza program

Este operațiunea prin care se poate adauga sau edita programul fiecarui angajat cu intervalul orar.

6.1.7 Programari

Categoria “Programari” cuprinde două subcategorii:

Adaugă

Vizualizează

Adaugă

Este operațiunea prin care se pot adăuga programări în sistem și cuprinde următoarele câmpuri:

Clienti (Alege client este reprezentat printr-un select cu toti clientii din sistem)

Sali (Alege sala este reprezentat printr-un select cu toate salile din sistem)

Activitati (Alege activitate este reprezentat printr-un select cu toate activitatile din sistem)

Data

Ora

Butonul Adaugă (finalizarea operațiunii)

Vizualizează

Reprezintă tabelul complet cu toate programarile din sistem și cuprinde:

ID Programari (număr de indentificare unic)

Client (numele si prenumele clientului)

Sala (sala de fitness la care este programat)

Activitate

Data

Ora

Operații (editează, șterge )

Operatiunea editează programari

Este operațiunea prin care se pot edita toate informatiile aferente fiecarei programari.

Operațiunea șterge

Este operațiunea prin care se șterge programarea din sistem.

6.1.8 Echipamente

Categoria “Echipamente” cuprinde două subcategorii:

Adaugă

Vizualizează

Adaugă

Este operațiunea prin care se pot adăuga echipamente în sistemul de gestiune”Fitness Pro” și cuprinde următoarele câmpuri:

Denumire aparat

Sali (Alege sala este reprezentat printr-un select cu toate salile din sistem)

Pret

Butonul Adaugă (finalizarea operațiunii)

Vizualizează

Reprezintă tabelul complet cu toate echipamentele din sistem și cuprinde urmatoarele campuri:

ID Aparat (număr de indentificare unic)

Denumire Aparat

Nume sală

Preț

Operații (editează, șterge )

Operatiunea editează echipamente

Este operațiunea prin care se pot edita informatiile aferente fiecarui echipament.

Operațiunea șterge

Este operațiunea prin care se șterge un echipament din sistem.

6.1.9 Oferte

Categoria “Oferte” cuprinde două subcategorii:

Adaugă

Vizualizează

Adaugă

Este operațiunea prin care se pot adăuga oferte în sistemul de gestiune ”Fitness Pro” și cuprinde următoarele câmpuri:

Denumire ofertă

Sali (Alege sala este reprezentat printr-un select cu toate salile din sistem)

Data început

Dată final

Pret

Butonul Adaugă (finalizarea operațiunii)

Vizualizează

Reprezintă tabelul complet cu toate ofertele din sistem și cuprinde urmatoarele campuri:

ID Oferta (număr de indentificare unic)

Denumire Oferta

Nume sală

Perioada

Preț

Stare

Operații (editează, șterge )

Fiecare oferta din sistemul de gestiune “Admin Fitness Pro” poate prezenta trei stari diferite:

Activa – reprezinta ofertele in care data actuala serverului se incadreaza intre data de inceput si data de final a ofertei

$data = date("Y-m-d");//data actuala a severului

$inceput=$row['inceput_oferta']; //data inceput oferta
$expira=$row['expira_oferta']; //data scarsit oferta

if ( $inceput<=$data and $data<=$expira) {

$data = '<i class="fa fa-check" style="color:green; font-size:16px;"></i> Activa';
echo'<td>' . $data . '</td>';
}

In asteptare – reprezinta abonamentele care au perioada de inceput a ofertei mai mare decat data actuala a serverului

elseif ( $inceput>$data or $expira>$data) {
$data='<i class="fa fa-spinner fa-spin" style="color:darkblue; font-size:16px;"></i> In asteptare';
echo'<td>' . $data . '</td>';
}

Expirat – reprezinta abonamentele care au dat de final mai mica decat data actuala serverului

elseif ($data>$expira) {

$data='<i class="fa fa-close" style="color:red; font-size:16px;"></i> Expirat';
echo'<td>' . $data . '</td>';
}

Operatiunea editează oferte

Este operațiunea prin care se pot edita ofertele din sistem.

Operațiunea șterge

Este operațiunea prin care se șterg ofertele din sistem.

6.1.10 Produse

Categoria “Produse” cuprinde două subcategorii:

Adaugă

Vizualizează

Adaugă

Este operațiunea prin care se pot adăuga produse în sistemul de gestiune ”Fitness Pro” și cuprinde următoarele câmpuri:

Denumire produs

Pret

Cantitate

Sali (Alege sala este reprezentat printr-un select cu toate salile din sistem)

Butonul Adaugă (finalizarea operațiunii)

Vizualizează

Reprezintă tabelul complet cu toate produsele din sistem și cuprinde urmatoarele campuri:

ID Produs (număr de indentificare unic)

Denumire Produs

Preț

Cantitate

Sală

Operații (editează, șterge )

Operatiunea editează produse

Este operațiunea prin care se pot edita informatiile aferente fiecarui produs.

Operațiunea șterge

Este operațiunea prin care se șterge un produs din sistem.

6.1.11 Contabilitate

Categoria “Contabilitate” cuprinde patru subcategorii:

Adaugă Încasări

Încasări

Încasări Sală

Cheltuieli

Adaugă Încasări

Este operațiunea prin care se pot adăuga încasări din produsele aflate in sistemul de gestiune ”Fitness Pro” și cuprinde următoarele câmpuri:

Tip Încasare

Clienți

Clienți (Alege Client este reprezentat printr-un select cu toți clienții din sistem)

Produse (Alege Produs este reprezentat printr-un select cu toate produsele din sistem)

Butonul Adaugă (finalizarea operațiunii)

După ce s-a efectuat o incasare a unu anumit produs, cantitatea acelui produs din sectiunea „Produse ” va scadea automat.

Încasări

Reprezintă una dintre cele mai importante secțiuni din sistemul de gestiune deoarece au fost implementate principii vizuale de gestiune sub forma unor diagrame pentru a facilita evidenta veniturilor.

Prima diagrama reprezinta totalul incasarilor din abonamente si produse pe fiecare luna sub forma unei linii sinusoidale de culoarea albastră.

Secțiunea încasări abonamente este reprezentata atat grafic cat si printr-un tabel unde se regasesc urmatoarele campuri:

Nume client

Tip abonament

Preț abonament

Total sumă

Partea grafica ne indica valoarea totala a banilor incasati pe fiecare luna.

Secțiunea cele mai vandute 3 produse este reprezentat atat grafic cat si printr-un tabel unde se regasesc urmatoarele campuri:

Nume produs

Pret Produs

Total sumă

Pentru o buna gestiune a produselor si pentru realimentarea corecta a stocurilor sau pentru efectuarea unor eventuale oferte pe produs am implentat o diagrama de tip “donut chart”, o diagrama ce contine ”cele mai vandute trei produse” si care se actualizeaza automat atunci cand un produs este vandut. Sub aspectul unor arce de cerc, diagrama ne furnizeaza o informatie vizuala privind cele trei produse reprezentate de cate o culoare (rosu, alabstru, verde) dar si informatia despre numele produsului si cantitatea vanduta.

Încasări pe fiecare sală

Pentru a usura gestionarea veniturilor inviduale pe fiecare sala de fitness din acest sistem, a fost implementat un infografic ce are la baza colectarea de informatii legate de suma totala a produselor, suma totala a abonamentelor cat si suma totala provenita din adunarea celor doua sume. Informatiile sunt prelucrate si dispuse grafic sub forma unor blocuri, fiecare bloc avand o culoare distincta, si anume:

Rosu (# f56954) reprezinta suma totala a abonamentelor

Albastru (#54bef5) reprezinta suma totala a produselor

Verde (#00a65) prezinta suma totala provenita din cele doua sume enumerate mai sus

Aceasta secțiunea este reprezentata si printr-un tabel unde se regasesc urmatoarele campuri:

Nume Sala

Total Abonamente

Total Produse

Total

Cheltuieli

Sectiunea de cheltuieli face parte din modulul de ”Contabilitate” si are ca scop realizarea unor rapoarte privind sumele investite in echipamente dar si a sumelor privind salariile angajatilor.

Pentru a avea o transparenta totala a sumelor cheltuite am implementat o diagrama ce ne indica suma totala a cheltuielilor pe fiecare luna. Aceasta diagrama este dispusa pe axa x0y, avand pe axa “x”- suma totala a cheltuielilor provenite din salariile angajatiilor cat si a echipamenteloor cumparate, iar pe axa “y” fiind dispuse lunile si anii.

Aceasta secțiunea este reprezentata prin doua tabele unde se regasesc urmatoarele informatii:

1.Tabelul Cheltuieli Angajati

Angajati (numele si prenume angajatului)

Salariu

Salariu Total

2.Tabelul Echipamente cumparate

Denumire echipament

Pret

Total suma

Ieșire

Operațiunea “iesire” deloghează studentul autentificat prin distrugerea sesiunii create la autentificare.

Concluzii

Bibliografie

[ADĂ07] – Adăscăliței, A., Instruire asistată de calculator: didactică informatică, Polirom,

2007

[CRI05] – Cristea, V., Iosif, G., Marhan, A., Niculescu, C., Trăusan-Matu, S., Udrea, O., Sisteme inteligente de instruire pe web, Editura Politehnica Press, Bucuresti, 2005

[MOI08] – Moise, G., Contribuții la modelarea și conducerea proceselor de instruire online,utilizând tehnici de inteligență artificială, Universitatea Petrol-Gaze din Ploiesti, 2008

Referințe web

-http://etutoriale.ro/articles/16/1/Despre-PHP/

-http://php.punctsivirgula.ro/serverside/

-http://ro.wikipedia.org/wiki/PHP

-http://ro.wikipedia.org/wiki/JavaScript

-http://etutoriale.ro/articles/1771/1/Tutorial-complet-JavaScript/

-http://www.pamdesign.ro/articole-utile/despre-web/ce-este-ajax/

-http://ro.wikipedia.org/wiki/Ajax_(programare)

-http://www.attagency.ro/blog/general/tot-ce-este-minim-necesar-de-stiut-despre-ajax.html

-http://ro.wikipedia.org/wiki/HyperText_Markup_Language

-http://www.ecursuri.ro/cursuri-online/html-pe-intelesul-tuturor

-http://www.marplo.net/curs_css/introducere.html

-http://www.ecursuri.ro/cursuri-online/introducere-in-mysql.html

-http://www.cursuri-online.info/php_mysql/

-http://vsh.ro/tutorial/341/comenzi-mysql/

-http://www.tutorialeonline.net/ro/article/programarea-in-stilul-mvc

-http://www.referatele.com/referate/noi/informatica/conceptul-de-design-82272414.php

-http://www.scribd.com/doc/21981545/Administrarea-bazelor-de-date-MySQL

Bibliografie

[ADĂ07] – Adăscăliței, A., Instruire asistată de calculator: didactică informatică, Polirom,

2007

[CRI05] – Cristea, V., Iosif, G., Marhan, A., Niculescu, C., Trăusan-Matu, S., Udrea, O., Sisteme inteligente de instruire pe web, Editura Politehnica Press, Bucuresti, 2005

[MOI08] – Moise, G., Contribuții la modelarea și conducerea proceselor de instruire online,utilizând tehnici de inteligență artificială, Universitatea Petrol-Gaze din Ploiesti, 2008

Similar Posts

  • Realizarea Aplicatiilor Web Utilizand Limbajul Java

    CUPRINS: Capitoulul 1: Introducere 1.1. Noțiuni introductive despre aplicații web…………………………………………………………..5 1.2. Obiective……………………………………………………………………………………………………..7 Capitolul 2: Generalități Java 2.1. Introducere și generalități ale limbajului Java………………………………………………….8 2.2. Evoluția limbajului Java……….…………….…………..…………………………………9 2.3. Java și conceptele programarii orientate pe obiecte…………………………………………11 2.4. Elemente Java folosite în dezvoltarea aplicației…….………………………………..15 Capitolul 3: Pregătirea mediului de lucru 3.1. Instalare Java Development Kit(JDK)……………………………………………………………..29 3.2. Instalare…

  • Ergonomia Informatica In Biblioteca

    ERGONOMIA INFORMATICĂ ÎN BIBLIOTECĂ Cuprins Argument CAPITOLUL 1 – ERGONOMIA – COMPONENTĂ A MANAGEMENTULUI RESURSELOR UMANE 1.1. Ergonomia – domeniu științific interdisciplinar 1.1.1. Definirea și conținutul ergonomiei 1.1.2. Legile ergonomiei 1.1.3. Obiectivele ergonomiei 1. 2. Proiectarea ergonomică a locurilor de muncă 1.2.1. Ergonomia locurilor de muncă în bibliotecă 1.2.2. Necesitatea organizării ergonomice a muncii în…

  • Capitolul 2. Studiu Bibliografic

    Capitolul 2. Studiu Bibliografic 2.1 Automate programabile( PLC-uri) 2.1.1 Istoric și Descriere În intervalul anilor 1950-1960, în domeniul automatizărilor industriale, logica de tip combinational și secvențial era implementată cu ajutorul releelor electromagnetice. Dacă era vorba despre automatizări industriale cu grad ridicat de complexitate, rezultau dulapuri de automatizare foarte mari, cu multe relee la care cablarea…

  • Pagini Web In Html

    Pagini WEB în HTML PLANUL LUCRĂRII  ARGUMENT   CAPITOLUL 1. REȚELE DE CALCULATOR ȘI INTERNET CAPITOLUL 2. INTRODUCERE ÎN LIMBAJUL HTML 2.1. Structura unui document HTML 2.2 Etichete (tag-uri) și atribute HTML 2.3 Formatarea textului 2.4 Despre culori 2.5 Imagini și elemente multimedia 2.6 Cadre ( frames) 2.7 Legăturile (referințele) 2.8 Liste 2.9 Tabele 2.10 Formulare…

  • .o Metoda DE Ridicare LA Putere A Matricelor

    CUPRINS Capitolul 1 CONSIDERATII METODICE ASUPRA PROCEDEELOR DE RIDICARE LA PUTERE A UNEI MATRICE(METODE CLASICE) Capitolul 2 POLINOM CARACTERISTIC Capitolul 3 RIDICAREA LA PUTERE A MATRICILOR DE ORDINUL 2 Capitolul 4 APLICATII LA RIDICAREA LA PUTERE A MATRICELOR Capitolul 5 SET DE PROBLEME REPREZENTATIVE IN TEMATICA PREZENTATA INTRODUCERE Lucrarea de fata isi propune sa prezinte…

  • Interfata de Comenzi Vocale

    Introducere Reþele Neurale Noþiuni generale Unitãþile de procesare (neuronii) Conexiunile dintre unitãþi Activãri ºi reguli de calcul al ieºirilor Terminologie Topologii de reþea Antrenarea reþelelor neurale Clasificarea metodelor de antrenare Modificarea caracteristicilor conexiunilor Adaline ºi Perceptron. Scurtã istorie Adaline (ADAptive LINear Element=element liniar adaptiv) Perceptronul Back–Propagation (propagarea înapoi) Reþele feed-forward cu mai multe straturi Regula…