Aplicatie Web Pentru Gestiunea Programarilor Online Intr Un Salon de Infrumusetare
Lucrare de licență
Aplicație web pentru gestiunea
programărilor online într-un
salon de înfrumusețare
CUPRINS
INTRODUCERE
CAPITOLUL 1
DESCRIEREA APLICAȚIEI ȘI A TEHNOLOGIILOR SOFTWARE FOLOSITE
1.1 DESCRIEREA APLICAȚIEI
1.2 TEHNOLOGIILE SOFTWARE
1.2.1 PHP
1.2.1.1 COMPARAȚIE PHP vs ASP 6
1.2.2 TEHNOLOGIA MySQL
1.2.3 HTML
1.2.4 CSS
1.2.5 TEHNOLOGIA APACHE
1.2.6 AJAX 8
1.2.7 JAVASCRIPT
1.3 CONCEPTE GENERALE DE WEB, APLICAȚII WEB
CAPITOLUL 2
ANALIZA APLICAȚIEI
2.1 DURATA DE REALIZARE A PROIECTULUI
2.2 IDENTIFICAREA ȘI DESCRIEREA PROBLEMEI
2.3 MOTIVAȚIE
2.4 CONTEXT
2.5 DELIMITAREA SISTEMULUI DE CONTEXTUL SĂU
2.6 ACTIVITĂȚI ȘI PROCESE
2.7 CERINȚE DE SISTEM
2.7.1 SURSE DE CERINȚE
2.7.2 ELICITAȚIA CERINȚELOR
2.7.3 FORMULAREA CERINȚELOR
2.7.4 MODELUL DE DEZVOLTARE
CAPITOLUL 3
PROIECTAREA APLICAȚIEI
3.1 PROIECTAREA LOGICĂ
3.3 BAZA INFORMAȚIONALĂ ȘI STRUCTURA FIZICĂ A DATELOR 33
3.3.2 PROIECTAREA BAZEI DE DATE
CAPITOLUL 4
IMPLEMENTAREA APLICAȚIEI
4.1 ADĂUGAREA UNEI PROGRAMĂRI
4.1.1 VIZUALIZAREA PROGRAMĂRILOR EXISTENTE/PROGRAMARE NOUĂ
4.1.3 ALEGEREA UNEI DATE
4.1.4 FUNCȚIA DE DESENARE A CALENDARULUI
4.1.5 ALEGEREA OREI DORITE
4.2 ANULAREA UNEI PROGRAMĂRI
4.3 MODIFICAREA INFORMAȚIILOR PERSONALE
CAPITOLUL 5
TESTAREA
CONCLUZII
GLOSAR
BIBLIOGRAFIE
LISTA FIGURILOR ȘI TABELELOR
Figure 1 Diagrama Gantt 10
Figure 2 Diagrama Obiectivelor 13
Figure 3 Diagrama Fish-Bone 14
Figure 4 Diagrama de activități 17
Figure 5 Diagrama cazurilor de utilizare 20
Figure 6 Diagrama de secvențe 25
Figure 7 Modelul Cascadă (Rochkind, 2013) 28
Figure 8 Diagrama Flux de Date 30
Figure 9 Diagrama Arhitecturii pe trei nivele 31
Figure 10 Diagrama de componente 32
Figure 11 Diagrama ER 34
Figure 12 Baza de date – modelul fizic 35
Figure 13 Programări existente/Programare nouă 37
Figure 14 Alegere angajat/serviciu 38
Figure 15 Alegerea date 39
Figure 16 Funcția calendar 41
Figure 17 Alegerea orei pt programare 42
Figure 18 Afișarea orelor disponibile 43
Figure 19 Confirmarea programării 44
Figure 20 Anularea programare 44
Figure 21 Modificare informații personale 46
Figure 22 Interfața grafică 46
Figure 23 Erori de formatare 49
Table 1 Descrierea detaliată a cazurilor de utilizare 22
Table 2 Scenariu 1 de utilizare 23
Table 3 Scenariu 2 de utilizare 24
INTRODUCERE
Internetul este în al treilea stadiu de dezvoltare, iar dinamic și interactiv sunt atributele esențiale ale oricărei aplicații Web de succes. Aplicațiile Web reprezintă atât prezentul, cât și viitorul. Acestea funcționează pe baza unei arhitecturi client/server.
Aplicațiile realizate cu PHP și MySQL utilizează un singur client și anume browser-ul web. Limbajul de bază al browser-ului web este HTML. Acest limbaj dispune de o serie de tag-uri care descriu modul în care va arăta o pagină web. Majoritatea prelucrărilor efectuate de aplicațiile web au loc pe server. O aplicație specifică numită server web, va asigura comunicarea cu browser-ul. Un server de baze de date relaționale stochează informațiile pe care le va accesa aplicația.
În final mai este nevoie de un limbaj care să intermedieze interogările ce apar între serverul web și serverul de baze de date. Acest limbaj va mai fi utilizat și pentru a executa anumite operații asupra informațiilor care vin dinspre și spre serverul web. (STANCA, A Compared Aproach: ASP versus PHP, 2006)
Această lucrare are la bază analiza unei aplicații web pentru gestiunea programărilor online într-un salon de înfrumusețare. Am ales această tematică întrucât piața produselor software din România nu oferă la momentul actual numeroase astfel de aplicații.
Această aplicație este gândită pentru clienții salonului, aceștia având propriul control asupra efectuării unei programări, clienții pot să vadă zilele libere pentru o programare, să își aleagă ora dorită, să vadă un istoric al programărilor sau să își anuleze o programare; totul prin intermediul acestei aplicații, nefiind nevoie de un telefon la salon sau chiar deplasarea personală.
Prin intermediul acestui sistem administratorul salonului are o evidență mai exactă a programărilor. Acesta poate să vadă clienții salonului, să aibă o evidență a angajațiilor și a programărilor fiecăruia, în modul acesta administratorul poate vedea care sunt angajații preferați de clienți. Administratorul are dreptul să adauge/modifice serviciile, să adauge un angajat și tot ce ține de gestiunea salonului.
Secretara va putea sa vadă toate programările făcute pe site pentru a anunța angajații ce programări au în ziua respectivă și de asemenea să adauge o nouă programare pentru clienții care nu doresc să își facă o programare online, ci sună sau se prezintă personal la salon.
Beneficiarii principali ai acestei aplicații sunt toți potențialii clienți care doresc să benefieze de serviciile salonului. În principiu grupul țintă este format din femei, deși în ultima perioadă s-a demonstrat că și barbații au început să folosească tot mai des serviciile unui salon de înfrumusețare.
Categoria de vârstă vizată este intervalul 10-60 ani. Acest interval poate varia deoarece s-a observat tendința fetelor de a păși într-un astfel de salon de la o vârstă destul de mică și nu doar asta, o persoana are nevoie de anumite servicii la orice vârstă, cum ar fi un tuns.
Administratorul salonului poate fi de asemenea un beneficiar al acestei aplicații, întrucât acesta datorită aplicației poate să vizualizeze anumite rapoarte, să vadă programările dintr-o lună și multe altele care îl pot ajuta să știe care este situația salonului în orice moment.
Inovativitatea în cazul acestei aplicații este faptul că poți să te programezi la serviciile dorite doar folosind această aplicație web, nefiind nevoie să te deplasezi la salon sau să telefonezi și dupa cum spuneam nu prea sunt în momentul de față multe saloane care sa îți ofere acest serviciu.
Prezenta lucrare este structurată pe cinci capitole: Primul capitol “Descrierea aplicației și a tehnologiilor software folosite” prezintă pe scurt funcționalitățile aplicației și a tehnologiilor software folosite în realizarea aplicației. Al doilea capitol “Analiza aplicației” prezintă durata de realizare a proiectului, identificarea și descrierea problemei, motivația, delimitarea sistemului de contextual său, activitățile și procesele precum și modelul de dezoltare al aplicației. Cel de-al treilea capitol denumit “Proiectarea aplicației” cuprinde proiectarea logică, baza informațională și structura bazei de date. Capitolul patru “Implementarea aplicației” cuprinde principalii algoritmi folosiți în implementarea aplicației. Capitolul cinci “Testarea” cuprinde metodele de testarea a aplicației, iar în final sunt prezentate concluziile aferente celor cinci capitole, dar și dezvoltările ulterioare.
CAPITOLUL 1
DESCRIEREA APLICAȚIEI ȘI A TEHNOLOGIILOR SOFTWARE FOLOSITE
1.1 DESCRIEREA APLICAȚIEI
Pentru a putea beneficia de toate funcționalitățile acestei aplicații Web, autentificarea este primul pas. Fără autentificare utilizatorii au acces doar la anumite informații cu caracter public, cum ar fi serviciile existente în salon, angajații salonului precum și la informații priviind localizarea salonului. Pentru autentificare, clientii trebuie să acceseze Autentificare/Cont nou. Aici clienții care au deja un cont pot să se logheze în aplicație, iar cei care nu au, își pot crea un cont nou prin introducerea datelor persoanale și anume: username, parola, email, nume, prenume, varsta, data nașterii, sex, adresă și telefon. După crearea contului utilizatorul are acces la toate funcționalitățile aplicației de modificare a informațiilor personale, efectuarea unei programări online, vizulizarea unui istoric al programărilor, precum și anularea unei programări în cazul în care sunt mai mult de 24 de ore până la acea programare.
Prima pagina Home este vizibilă pentru toți utilizatorii pentru a putea informațiile generale cu privire la salon, în această pagină există un meniu orizontal care cuprinde paginile Home, Despre noi, Servicii, Angajați și Contact, un slide-show de imagini și un link cu Autentificare respectiv Cont nou.
Pagina Programează-te online poate fi accesată doar dupa ce clientul s-a autentificat. Aici clientul vede toate programările pe care le-a făcut putând să anuleze o programare, iar prin apasarea linkului “Programare online” se deschide o nouă pagină în care clientul trebuie să își aleagă serviciul dorit, angajatul care dorește să se ocupe de programare, data programării și ora acesteia.
Afișarea zilelor disponibile pentru o programare sunt prezentate sub forma unui tabel, în care zilele disponibile sunt colorate în verde, în timp ce zilele indisponibile sunt în roșu. Acest lucru este valabil și pentru afișarea orelor disponibile pentru o programare.
Pagina Profilul meu poate fi accesată doar după autentificare și arată clientului informațiile personale, acesta având posibilitatea de a-și modifica aceste informații. În această pagină există trei butoane: butonul Edit Profile este pentru modificarea numelui, prenumelui, vârsta, data nașterii, sex sau telefon; butonul Edit Username pentru modificarea username-ului și butonul Edit Parola pentru modificarea parolei.
1.2 TEHNOLOGIILE SOFTWARE
Tehnologiile și instrumentele pe care le-am folosit pentru realizarea acestui proiect sunt următoarele:
Tehnologii hardware:
Laptop Lenovo B590, procesor Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz 2.60GHz
Memoria RAM: 4.00 GB
Sistem de operare: 64-bit
Limbaje de programare:
PHP
JavaScript
HTML
CSS
AJAX
Sisteme de operare:
Windows 7
Tehnologii software:
SQL Server Management Studio
Server Web: Apache server
Server : MySQL
Server side Processing: PHP
Client Side Processing: AJAX, Java Script, Jquery
Editoare cod:
Sublime Text 2
Notepad ++
1.2.1 PHP
PHP (acronim recursiv pentru PHP: Hypertext Preprocessor) este un limbaj de 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 și poate fi integrat în HTML. PHP este un limbaj simplu, dar puternic, proiectat pentru creare de coținut HTML. (Kevin Tatroe, 2013)
PHP este limbajul ideal pentru construirea de pagini web dinamice. Este ușor de învățat, open-source, poate fi rulat pe mai multe platforme si se poate conecta la mai multe tipuri de baze de date. Cel mai important aspect al limbajului este însa posibilitatea de a fi imbricat cu cod HTML. Putem astfel crea pagini HTML statice și din loc în loc, acolo unde este nevoie, să introducem dinamism cu ajutorul PHP. (http://etutoriale.ro/articles/16/1/Despre-PHP/)
Popularitatea de care se bucură acest limbaj de programare se datorează următoarelor caracteristici :
Familiaritatea: sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele mai populare limbaje Perl sau C;
Simplitatea: sintaxa limbajului este destul de liberă. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus într-un document executându-se între marcajele speciale;
Eficiența: PHP-ul se folosește de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, așa cum este web-ul;
Securitate: PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță;
Flexibilitate: fiind apărut din necesitatea dezvoltării web-ului, PHP a fost modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server, etc.;
Gratuitate: este probabil cea mai importantă caracteristică a PHP-ului. Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-ului, eficientizarea și securizarea codului.
1.2.1.1 COMPARAȚIE PHP vs ASP
Am ales să fac această comparație deoarece pentru implementarea acestei aplicații web a trebuit sărează următoarelor caracteristici :
Familiaritatea: sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele mai populare limbaje Perl sau C;
Simplitatea: sintaxa limbajului este destul de liberă. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus într-un document executându-se între marcajele speciale;
Eficiența: PHP-ul se folosește de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, așa cum este web-ul;
Securitate: PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță;
Flexibilitate: fiind apărut din necesitatea dezvoltării web-ului, PHP a fost modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server, etc.;
Gratuitate: este probabil cea mai importantă caracteristică a PHP-ului. Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-ului, eficientizarea și securizarea codului.
1.2.1.1 COMPARAȚIE PHP vs ASP
Am ales să fac această comparație deoarece pentru implementarea acestei aplicații web a trebuit să aleg între aceste două limbaje de programare, respectiv PHP sau ASP.
Avantajele folosirii limbajului de scripting PHP în loc de tehnologia ASP în scopul implmentării unei afaceri virtuale, sunt:
Prețul, deoarece PHP este mai ieftin de implementat decât ASP-ul;
Facilitățile adiționale pe care le oferă PHP în comparație cu ASP;
PHP este un mediu de programare Open-Source. Softurile din această categorie sunt rezultatul unui efort colectiv realizat de comunități de programatori voluntari din întreaga lume care sunt pasionați de tehnologie.
PHP este un mediu foarte flexibil, deoarece poate fi extins și personalizat în funcție de cerințele clienților.
PHP este cel mai popular limbaj de programare web la ora actuală în lume. Acest limbaj este mai popular decât ASP, Cold Fusion, Perl, sau oricare alt limbaj de programare web. PHP este mult mai rapid decât ASP. ASP suportă multiple limbaje de programare, iar această arhitectură este inerent mai lentă și mai consumatoare de memorie decât modelul PHP, deoarece fiecare compilator ASP rulează în propriul lui proces.
PHP este securizat. IIS Server este recunoscut pentru găurile sale de securitate. Din punctul de vedere al programării, PHP este mai eficient decât ASP deoarcere aceași funcționalitate poate fi scrisă cu mai puțin cod sursă în PHP decât în ASP. Acest lucru este posibil pentru că variabilele HTTP GET și POST sunt create automat de către PHP ca variabile globale, asfel se elimină pasul de extragere a lor prin apelarea obiectului Request din ASP.
Se consideră că ASP este o tehnologie bună și utilă dar pe termen lung, PHP se va dovedi superior atât din punct de vedere tehnologic, cât și a popularității sale. (STANCA, A Compared Aproach: ASP versus PHP, 2006)
1.2.2 TEHNOLOGIA MySQL
Majoritatea site-urilor dinamice necesită o bază de date. Baza de date poate conține informații ce vor fi afișate utilizatorilor, sau scopul bazei de date ar putea fi pentru a stoca informații furnizate de către utilizator. În unele aplicații, baza de date oferă informații utlizatorilor, dar și stochează informații noi. (Steven Suehring, 2013)
MySQL este un sistem de gestiune a bazelor de date relațional, fiind cel mai popular SGBD open-source la ora actuală. (http://ro.wikipedia.org/wiki/MySQL)
O bază de date vă permite să stocați, să sortați și să vă regăsiți datele în mod eficient. Serverul MySQL controlează accesul la datele noastre pentru a garanta că mai mulți utilizatori pot lucra simultan cu acestea.
Deci, MySQL este un server multi-user (mai mulți utilizatori) și multi-thread (mai multe fire de execuție). Utilizează SQL (Structured Query Language), limbajul standard de interogare a bazelor de date din întreaga lume. (http://www.cursuri-online.info/php_mysql/CeestePHPsiMySQL.htm)
MySQL nu furnizează suport direct pentru aplicații Web dar se integrează bine cu PHP și ne oferă posibilitatea de a le combina în vederea realizării scopurilor prevăzute.
MySQL nu comunică doar cu PHP și poate fi folosit împreună cu alte limbaje de scripting cum ar fi: ASP, Perl, C++, Delphi, Python, Eiffel, Smalltalk.
Ținând cont de criterii precum performanța, suport, preț în alegerea sistemului de baze de date am ales să folosesc MySQL, fiind un SGBD compatibil MySQL și PHP ambele fiind cunoscute pentru popularitatea lor.
1.2.3 HTML
HTML este prescurtarea de la HyperText Markup Language și reprezintă un limbaj pentru crearea unui document astfel încât să poată fi publicat pe World Wide Web și vizualizat cu ajutorul unui browser (Internet Explorer, Netscape Navigator, Mozila Firefox, Opera, etc.). (CHICU O. , Limbajul HTML)
Un document HTML este un fișier text care folosește numai carcatere ASCII, și poate fi realizat cu orice editor de texte (de exemplu vi, joe, emacs în sistemul de operare UNIX și variantele acestuia, Notepad sub Windows, editorul programului Norton Commander sau editorul Edit sub DOS). (TOMAI, 2013)
1.2.4 CSS
CSS (Cascading Style Sheets) este un standard pentru formatarea elementelor unui document HTML. Stilurile se pot atașa elementelor HTML prin intermediul unor fișiere externe sau în cadrul documentului, prin intermediul <style> și/sau atributul style. (http://ro.wikipedia.org/wiki/Cascading_Style_Sheets)
1.2.5 TEHNOLOGIA APACHE
În spatele Wold Wide Web-lui se găsesc milioane de servere Web. Momentan în 62% dintre serverele de web este folosit Apache. Numele Apache provine din “a patchy server”, și este o dezvoltare a NCSA server-lui.
Câteva dintre avantajele serverului Apache:
Sursa este liberă;
Nu necesită resurse mari;
Ușor configurabil;
Module statice și dinamice;
Suport maxim față de limbajele de script: php, perl, pyton;
Servere de web virtuale;
Suportă Linux, Windows NT, Windows 2000, Novell Netware.
(TOMAI, 2013)
1.2.6 AJAX
Ajax (sau AJAX), prescurtare pentru Asynchronous JavaScript and XML, este o tehnică de programare pentru crearea de aplicații web interactive. Intenția este să facă paginile web să devină mai rapide și deci mai acceptate, prin schimbul în fundal al unor cantități mici de date cu serverul, astfel încât să nu fie nevoie ca pagina să fie reîncărcată la fiecare acțiune a utilizatorului. Aceasta are ca scop creșterea interactivității, vitezei și ușurinței în utilizare a aplicațiilor web.
1.2.7 JAVASCRIPT
JavaScript (JS) este un limbaj de programare orientat obiect bazat pe conceptul prototipurilor. Este folosit mai ales pentru introducerea unor funcționalități în paginile web, codul Javascript din aceste pagini fiind rulat de către browser. Limbajul este binecunoscut pentru folosirea sa în construirea siturilor web, dar este folosit și pentru acesul la obiecte încastrate (embedded objects) în alte aplicații. A fost dezvoltat inițial de către Brendan Eich de la Netscape Communications Corporation sub numele de Mocha, apoi LiveScript, și denumit în final JavaScript.
1.3 CONCEPTE GENERALE DE WEB, APLICAȚII WEB
O aplicație web este o aplicație ce rulează pe un server web și este accesată printr-un browser de un numar nelimitat de clienți. Aplicațiile web pot fi folosite cu ușurintă și de către persoane fără pregătire tehnică de specialitate în domeniul tehnologiilor web.
În ziua de astăzi, o mare parte a siturilor web inglobează aplicații web complexe. Aplicațiile web des întâlnite: forum (platformă open-source phpBB), newsletter, magazin virtual, blog, sistem de management al conținutului CMS, sistem de publicare al știrilor). (http://www.designlabs.ro/aplicatii-web.php)
O aplicație web se diferențiază de un web site prin faptul că oferă posibilitate de reactualizare a conținutului prin intermediul unei interfețe atractive fără a avea nevoie de cunoștințe de programare. Pentru a putea funcționa, este necesară existența unui server web capabil să interpreteze limbaje PHP, ASP, ASP.NET, CGI sau JSp și a unui server de baze de date MySQL, PostgresSQL sau MS SQL. (http://www.finepoint.ro/web-design/aplicatii-web.html)
CAPITOLUL 2
ANALIZA APLICAȚIEI
2.1 DURATA DE REALIZARE A PROIECTULUI
Diagrama GANTT este un instrument folosit în planificarea proiectelor, evenimentelor și a muncii, în general. Urmărește etapele desfășurării unui proiect în funcție de durata acestora.
Realizarea proiectului a fost împărțită în mai multe etape, care a durat începând cu luna februarie 2014 până în iunie 2014, conform modelului de dezvoltare al aplicației.
Pentru a putea prezenta durata de realizare a proiectului am realizat diagrama GANTT.
Figure 1 Diagrama Gantt
2.2 IDENTIFICAREA ȘI DESCRIEREA PROBLEMEI
De această aplicație web poate beneficia orice salon de înfrumusețare care dorește o mai bună colaborare cu clienții săi. Firma care beneficiază de acestă aplicație web nu trebuie sa aibă cunoștințe de programare.
Pentru realizarea aplicației s-au stabilit informațiie care trebuie să existe în cadrul aplicației și care să-i ajute pe utilizatori în momentul în care efectuează o programare prin intermediul acestei aplicații. În prezent, în Romania majoritatea saloanelor nu au implementat un astfel de sistem, probabil din cauza că pe piața produselor software sunt foarte puține astfel de software-uri, iar prețul acestora este destul de ridicat. Din acest motiv, proiectul de dezvoltare este într-o oarecare masură riscant.
Neștiind care va fi comportamentul utilizatorilor față de această aplicație, crește riscul ca aplicația să nu aibă succesul așteptat. Alte eventuale riscuri aduse de aplicație sunt: riscul ca clienții să fie deja obișnuiți să sune la salon pentru o programare considerand o pierdere de timp să-și creeze un cont pe site si să efectueze o programare online, riscul ca beneficiarii sa nu fie multumiți de functionalități sau să dorească anumite functionalități în plus, eventualele reclame negative din partea unor utilizatori nemultumiți ai aplicației. În ciuda riscurilor posibile, pornim de la idea ca impactul aplicației asupra grupului țintă va fi unul pozitiv, întrucat aplicația aduce un plus de inovativitate în acest domeniu.
Aplicația va fi utilizată de numeroase salone, care doresc să își simplifice activitatea privind programările în cadrul salonului.
O parte a obiectivelor acestui proiect sunt:
Implementarea tuturor funcționalităților propuse în cadrul cerințelor
Creșterea numărului de clienți ai salonului
Reducerea timpului de procesare
În acest proiect descompunerea obiectivelor se realizează printr-o descompunere “ȘI”. Descompunerea “ȘI” – descompunerea unui scop de nivel mai înalt G în subscopuri G1, G2, G3 este de tip ȘI dacă toate subscopurile trebuiesc atinse pentru a atinge scopul G. (MOCA, Proiectarea si Managementul Sistemelor Informatice)
Avem obiectivele:
G – Gestiunea programărilor online
G1 – Realizarea unei programări online
G1.1 – Introducerea facilă a username-ului și parolei
G1.2 – Afișarea unui calendar cu programările disponibile
G1.3 – Posibilitatea alegerii serviciului și angajatului dorit
G2 – Colectarea informațiilor despre clienți
G2.1 – Posibilitatea efectuării unei programări doar pe baza unui cont de utilizator
G2.2 – Completarea unui formular cu datele utilizatorului
G3 – Secțiune de administrare
G3.1 – Logarea administratorului
G3.2 – Vizualizare programări
G3.3 – Adăugare/Modificare/Ștergera a serviciilor
Schema de descompunere a obiectivelor avute în vedere de organizație este următoarea :
Figure 2 Diagrama Obiectivelor
2.3 MOTIVAȚIE
Această aplicație propune atăt îmbunătățirea experienței clientului cât și dezvoltarea propriu zisa a salonului care va folosi această aplicație. Clienții pot fi satisfăcuți de faptul că au controlul asupra momentului când doresc să își facă o programare și nu numai atât, prin intermediul acestei aplicații clienții au posibilitatea de a vedea un istoric al programărilor sau posibilitatea de a-și anula o programare fară a fi nevoie să telefoneze la salonul respectiv.
Programările sunt problema centrală dintr-un salon de înfrumusețare, deoarece sunt atâția clienți care doresc să beneficieze de serviciile unui salon de înfrumusețare încât fără o programare în prealabil nu poți fi primit, iar această aplicație vine în ajutorul saloanelor. Nu numai că clienții se pot programa online, dar este o aplicație utila și pentru administratorii de saloane întrucât aceștia au o evidență mai clară asupra programărilor care se efectuează în salon, a cliențiilor și multe altele.
Proiectul va determina apariția unui numar mai mare de clienți ai salonului care vor folosi această aplicație, datorită ușurinței cu care aceștia își pot face o programare și faptul că utilizatorii vor avea acces la diferite informații în plus față de ceilalți clienți.
Utilizarea aplicației nu necesită timp lung de învățare, fapt care denotă ușurința cu care aceasta poate fi manevrată. Interfața aplicației este prietenoasă și destul de intuitivă. Elementele prezentate până acum pot defini atât o versiune finală a programului cât și una orientativă pentru ceea ce ar putea deveni.
Figure 3 Diagrama Fish-Bone
2.4 CONTEXT
Pentru stabilirea contextului în care funcționează aplicația, se foloșeste metodologia fațetelor.
În cadrul fațetei subiect se includ stakeholderii proiectului și informațiile care vehiculează în cadrul proiectului. Persoanele intersate de proiect sunt: clienții unui salon de înfrumusețare și administratorul salonului.
Clienții salonului sunt persoanele care își crează cont pe site pentru a efectua o programare. Administratorul este cel care are acces la toate informațiile și anume, informații legate de clienți, de servicii, de angajați.
Aspectele legate de utilizarea sistemului fac parte din fateța utilizare. Aplicația a fost construită într-un mod cât mai simplu și s-a mers pe ideea de uzabilitate. Utilizatorii site-ului sunt clienții potențiali ai un salon de înfrumusețare. Aceștia îsi crează un cont cu informațiile personale pentru a putea avea acces la secțiunea de programări online. Utilizatorii anonimi au posibilitatea doar de a vedea informațiile cu caracter general, cum ar fi date despre salon, contact, angajații salonului și serviciile disponibile.
Fateța IT cuprinde contextul informatic în care poate funcționa aplicația. Pentru a se putea utiliza aplicația, este necesară existența unui calculator conectat la Internet. Toate browserele de Internet (Internet Explorer, Firefox, Opera, Mozilla, Safari) cu toate versiunile acestora, dar nu mai vechi de 4 ani trebuie sa poată afișa corect conținutul site-ului.
Fațeta dezvoltare cuprinde modelul de dezvoltare al proiectului. Pentru aplicația de față, modelul de dezvoltare utilizat este modelul cascadă. Acest model impune parcurgerea următoarelor etape în vederea implementării unui sistem funcțional, util și care să răspundă nevoilor beneficiarilor direcți:
Analiza și specificarea cerințelor
Proiectarea arhitecturală
Implementarea aplicației
Testarea
Întreținerea sistemul informatic.
2.5 DELIMITAREA SISTEMULUI DE CONTEXTUL SĂU
În contextul în care gestiunea programărilor într-un salon de înfrumusețare se realizează printr-o metodă rudimentară, manuală, aceasta duce la pierderea de resurse importante, așadar apare necesitatea unui sistem informatic care să automatizeze acest proces.
În dezvoltarea sistemului informatic se ține cont de toate procesele care interacționează cu acestea și a căror prezență, existență sau utilizare afectează modalitatea de utilizare a aplicației web.
Aplicabilitatea programului prevede următoarele aspecte: să fie interactiv, să solicite logarea utlizatorului înainte de a încerca să realizeze o programare online, să ofere informații clare și reale privind serviciile disponibile în salon, prețurile aferente fiecărui serviciu și angajații care se pot ocupa de programarea făcută și să aibă o ofertă cât mai variată. Eficiența acestei aplicații ține și de ușurința cu care poate fi manevrată, din aceasta s-a creat o interfață grafică prietenoasă.
Utilizatorii înregistrați (cei care au cont pe această platformă) și vizitatorii (cei care nu au cont) care doar accesează platforma pentru a se informa de ofertele disponibile sunt beneficiarii direcți ai acestui sistem informatic.
Baza de date este cel mai important element al contextului sistemului informatic deoarece aceasta conține toate informațiile cu privire la clienții existenți, a tuturor tipurilor de servicii și a angajaților salonului de înfrumusețare.
2.6 ACTIVITĂȚI ȘI PROCESE
Diagrama de activităti este folosită pentru documentarea fluxurilor de activități. Această diagramă reflectă bine interacțiunile între actori și sistem, în cazul nostru între client și sistemul de programări online.
Clientul este cel care începe activitatea, prin accesarea site-ului în cadrul unui browser, urmând să-și introducă datele necesare pentru logare. Sistemul verifică dacă datele sunt corecte sau nu. În cazul în care sunt corecte utilizatorul intră în contul personal de unde are posibilitatea de a efectua o programare online, alegându-și angajatul care dorește să se ocupe de programarea lui, serviciul, data și ora programării, de asemenea utilizatorul poate să vadă un istoric al programărilor, poate să anuleze o programare sau să-și editeze informațiile personale.
Figure 4 Diagrama de activități
2.7 CERINȚE DE SISTEM
2.7.1 SURSE DE CERINȚE
Sursele de cerințe pentru eleborarea sistemului sunt: actorii (stakeholderii), diagramele asociate sistemului și o analiză a domeniului în care va opera produsul (aplicația web). Stakeholderii au un rol important în definirea cerințelor, unii dintre aceștia fiind principalii actori cărora se adresează aplicația.
Analiza domeniului în care va opera produsul/aplicatia web a fost utliă pentru a stabili dacă există nevoia apariției unei o astfel de aplicații. În urma studiului am constatat că pe piața din România este necesară apariția unei aplicații de acest gen.
2.7.2 ELICITAȚIA CERINȚELOR
Am ales pentru această aplicație web următoarele metode de elicitație a cerințelor: metoda cazurilor de utilizare și metoda interviului.
Metoda interviului
Acest interviu cuprinde un set de întrebări adresate beneficiarilor, pentru a stabili ce așteptări au aceștia cu privire la această aplicație.
Următoarele întrebări le-am adresat potențialilor clienți:
Credeți că ar fi de folos o astfel de aplicație?
Da, cred ca ar fi foarte utilă o astfel de aplicație deoarece în România nu se prea găsește un site în care să te poți programa online la anumite servicii fără să mai fie nevoie de un telefon în prealabil. Totuși am întâlnit anumite saloane care au încercat să ofere clienților posibilitatea de a se programa online, însă acest lucru se face doar pe baza unui formular, în care trebuie să specifici anumite informații cu privire la programarea dorită, urmând ca apoi să fi sunat de cineva din cadrul salonului pentru pentru a stabilii detaliile exacte ale programării. În acest caz eu, aș prefera să sun direct la salon, decât sa folosesc acest formular.
Ați mai interacționat vreodată cu o astfel de aplicație?
Nu, nu am avut ocazia să folosesc o astfel de aplicație, dar mi se pare o idee interesantă pentru persoanele care doresc să se programeze într-un mod mai comod la salonul de înfrumusețare preferat.
Cum ați dori să fie interfața grafică?
Să fie cat mai ușor de folosit, să fie specifică pentru un salon de înfrumusețare, cu animații și diferite poze de exemplu.
Credeti ca ar fi benefică existența unui forum?
Da, ar fi o idee foarte bună existența unui forum deoarece acolo orice client și-ar putea exprima opinia în legatură cu serviciile salonului și acest lucru cred ca ar fi benefic atât pentru client cât și pentru managerul salonului.
Ce ați dori în mod special să existe la o aplicație de acest gen?
Ca un posibil client al acestei aplicații, mi-ar plăcea ca aplicația să imi ofere posibilitatea de a alege angajatul care doresc să se ocupe de programare, în cazul în care am un angajat preferat.
Metoda cazurilor de utilizare
Am ales aceasta metodă pentru a verifica dacă nu am uitat vreo cerință și pentru a identifica ce interfață trebuie să ofere sistemul.
Cazurile de utilizare ale sistemului implică acțiunile a trei actori: clientul, secretara și administratorul salonului. Pe viitor se dorește introducerea unui al treilea actor, acesta fiind angajatul.
O aplicație PHP/MySQL este concepută pentru a fi utilizată, de obicei de către oameni, dar, uneori și de alte sisteme. Un caz de utilizare cuprinde o descriere detaliată a interacțiunii între actor și sistem. Informațiile colectate din aceste cazuri de utilizare ne ajută să avem o imagine completa a modului în care sistemul ar trebui să fie utilizat. (Rochkind, 2013)
Figure 5 Diagrama cazurilor de utilizare
Descrierea detaliată a actorilor și a cazurilor de utilizare:
Clientul:
Persoana care accesează aplicația web și care se înregistrează înainte de a efectua o programare online. Clientul își creează un cont, prin completarea unui formular în care trebuie să-și introducă anumite date personale cum ar fi: nume, prenume, adresa, telefon, email, un username și o parolă.
Dupa ce se înregistrează, acesta poate să se logheze cu username-ul și parola aferentă contului său personal. După ce s-a logat cu success, clientul poate naviga în site, poate să efectueze o programare online doar alegându-și angajatul care dorește sa se ocupe de programare, serviciul dorit, data la care dorește să se programeze și ora dorită, de asemenea acesta poate să vizualizeze un istoric al programărilor, unde va fi și ultima programare făcută putând să o anuleze în cazul în care dorește, mai poate să acceseze secțiunea angajați unde sunt diferite date despre fiecare angajat al salonului și ce tipuri de servicii prestează aceștia.
Astfel, clientul participă la următoarele cazuri de utilizare:
Înregistrare
Logare
Efectuarea unei programări online
Vizualizarea programărilor
Administratorul:
Persoana care efectuează operații asupra bazei de date. Are cel mai mare nivel de acces la baza de date. Acesta se va autentifica în aplicație prin intermediul unui username și a unei parole. Dupa logare acesta are acces la zona destinată clienților, unde poate să vizualizeze toti clienții, să vizualizeze programările online, are posibilitatea de adăuga/modifica sau șterge un angajat, un serviciu și orice ține de gestiunea programărilor dintr-un salon.
Astfel, administratorul participă la urmatoarele cazuri de utilizare:
Logare
Generare rapoarte de programări
Adăugare/modificare/ștergere angajat,serviciu,client
Vizualizare clienți
Secretara:
Secretara este un angajat al salonului care are anumite responsabilități în plus față de angajații obisnuiți. Aceasta după ce se va loga în cadrul aplicației web va avea posibilitatea de a vedea toate programările existente, putând să realizeze o nouă programare. Va avea și secțiunea în care își poate modifica informațiile personale.
Astfel, secretara participă la următoarele cazuri de utilizare:
Înregistrare
Logare
Efectuare programare online
Gestiune detalii cont
Vizualizare programări
Table 1 Descrierea detaliată a cazurilor de utilizare
Table 2 Scenariu 1 de utilizare
Table 3 Scenariu 2 de utilizare
Figure 6 Diagrama de secvențe
2.7.3 FORMULAREA CERINȚELOR
Cerințele funcționale, la nivel general (din perspectiva utilizatorului) sunt următoarele:
Sistemul trebuie să permită utilizatorilor să se logheze în funcție de tipul de utilizator: administrator, client sau secretară;
Sistemul trebuie să permită utilizatorilor să-și creeze un cont, înainte de a se loga în aplicație;
Sistemul trebuie să permită utilizatorilor să-și modifice informațiile personale după ce aceștia s-au logat în aplicația web;
Utilizatorii-clienți trebuie sa aiba posibilitatea de a vedea angajații salonului, pentru a afla date despre aceștia și ce servicii prestează fiecare;
Utilizatorii-clienți trebuie să aiba acces la un istoric al programărilor făcute, cu posibilitatea de a anula o programare în cazul în care sunt mai mult de 24 de ore până la acea programare;
Utilizatorii-clienți trebuie să aibă posibilitatea de a efectua o programare online, alegându-și serviciul dorit, angajatul, data și ora;
Cerințele funcționale, detaliate (din perspectiva sistemului) sunt următoarele:
Sistemul trebuie să afișeze pagini personalizate pentru fiecare utilizator în parte;
Să permită accesul concurent pe site; mai mulți utlizatori pot accesa paginile site-ului în același timp;
Să colecteze informații despre utilizatori, prin utilizarea de formulare și să le introducă în baza de date;
Să permită fiecărui client să realizeze o programare online;
Să permită clientului vizualizarea unui istoric al programărilor;
Să permită clientului anularea unei programări;
Să trimită automat email clientului înainte cu 2 ore de a avea programarea.
Cerințele calitative, care sunt importante pentru utilizatori, sunt următoarele:
Dependența de internet; Aplicația web nu pot fi utilizată decât pe un calculator care are acces la internet. Accesarea site-ului se face prin deschiderea browserului și tastarea adresei în bara de adrese
Siguranța e asigurată de tipurile de useri, respectiv client, administrator sau secretară. În funcție de user-ul care se loghează se va afișa o pagina personalizată, fiecare având anumite drepturi. De exemplu doar administratorul poate adăuga, modifica sau șterge diferite date legat de aplicație
Utilizabilitatea: aplicația este ușor de folosit, în sensul că meniul este foarte clar, aplicația nu este încărcată cu informații care să deruteze clientul. Totuși pentru clienții care nu se descurcă în aplicație, este disponibilă o pagină de help, unde se va explica modul de utilizare al aplicației.
Eficiența: sistemul este eficient, fiind utilizat cu efort minim din partea utilizatorului. Astfel, aceștia nu trebuie să dea foarte multe click-uri pentru a obține rezultatul dorit.
Cerințele calitative, care sunt importante pentru dezvoltatori, sunt:
Portabilitate: pentru verificare, aplicația va fi testată pe următoarele browsere: Google Chrome, Mozzilla Firefox, Opera și Internet Explorer. Aplicația afișează același conținut indiferent de tipul de browser folosit.
Mentenabilitatea: acest sistem informatic poate pe viitor să fie dezvoltat cu ușurință, întrucât nu necesită înlocuirea unui număr mare de funcționalități.
Testabilitatea: pentru dezvoltări viitoare este important ca sistemul să fie ușor de tesat, să permită testarea pe părti a aplicației, pentru verificarea anumitor funcționalități, precum și testarea în totalitate, cu verificarea tuturor funcționalităților.
2.7.4 MODELUL DE DEZVOLTARE
Modelul de dezvoltare ales pentru acest sistem este Modelul Cascadă. Am ales acest model deoarece dezvoltarea aplicației s-a realizat treptat, fiecare etapă cu succes presupune începutul alteia.
Avantajul cel mai important al acestui model este împărțirea unei sarcini complexe în mai mulți pași mici fiind mai ușor de administrat.
Etapele acestui model sunt:
Analiza și specificarea cerințelor
Proiectarea arhitecturală
Implementarea aplicației
Testarea
Întreținerea sistemul informatic
Pentru realizarea acestei aplicații a fost necesară existența unui programator, analist și al unui tester. Analistul s-a ocupat de arhitectura aplicației și de specificarea cerințelor, acesta este mediatorul între utilizator și programator.
Figure 7 Modelul Cascadă (Rochkind, 2013)
CAPITOLUL 3
PROIECTAREA APLICAȚIEI
3.1 PROIECTAREA LOGICĂ
Datele se prelucrează centralizat, toți utilizatorii aplicației vor introduce datele într-o singură bază de date, ale cărei resurse vor fi distribuite în mod concurențial. Aceasta este cea mai bună modalitate de prelucrare a datelor întrucât prelucrarea și stocarea datelor se realizează la nivelul unei singure locații de memorie.
Am ales această modalitate de stocare a datelor deoarece baza de date va avea un număr redus de înregistrări și are o complexitate mai redusă, dar în același timp se face mai usor controlul securității și integrității datelor.
Avantajele centralizării sunt reprezentate de :
Controlul efectiv asupra utilizării și dezvoltării software-ului;
Controlul asupra securității și integrității datelor;
Partajarea resurselor hard, soft și a datelor între utilizatori;
Eliminarea riscului incompatibilității hard și soft în cadrul sistemului ;
Promovarea cu ușurință a standardelor (tehnice, de proiectare, procedural etc) la nivelul întregului sistem;
Asigurarea serviciilor solictate de către utilizatori prin puterea de calcul a sistemului central.
Dezavantajele cetralizării sunt reprezentate de următoarele aspecte:
“căderea” sistemului de calcul blochează toți utilizatorii;
Alterarea datelor și a programelor, voită sau accidental, afectează toți utilizatorii;
Sistemul se poate doveni lent și inflexibil la nevoile utilizatorilor, adesea fiind insufficient adaptat nevoilor locale sau de grup ale utilizatorilor;
Poate realiza un timp mare de răspuns în cazul unor solicitări simultane ale mai multor utilizatori. (STĂNICĂ, 2009)
Descrierea proiectării logice se va face cu ajutorul diagramei de flux de date.
Figure 8 Diagrama Flux de Date
3.2 ARHITECTURA SISTEMULUI
Arhitectura sistemului este arhitectura de tip client-server pe trei nivele (Three-tier): nivel prezentare, nivel logic și nivelul de date.
Nivelul prezentare este cel mai de sus nivel al aplicației și reprezintă interfața cu utilizatorii. Interfața sistemului este prietenoasă, compusă din formulare care colectează și validează datele utilizatoriilor aplicației.
Nivelul logic face legăturile dintre nivelul prezentare și nivelul de date, procesează comenzi, ia decizii și realizează calcule. Acest nivel reprezintă serverul aplicației, serverul Web Apache în cazul acestui sistem.
Nivelul de date este reprezentat de baza de date relațională. Acet nivel conține serverele de baze de date. Informația este stocată și extrasă de aici cu ajutorul limbajului SQL.
Am ales aceasta arhitectură deoarece oferă numeroase avantaje, precum:
Au o securitate mai bună;
Performanțele pot fi îmbunătățite ușor, deoarece o mai bună proiectare a server-ului poate duce la o mai bună coordonare a utilizatorilor care doresc servicii în același timp și, de aici, performanțe mai bune;
Raportul calitate/preț este mai bun;
Figure 9 Diagrama Arhitecturii pe trei nivele
Diagrama pe componente
Sistemul a fost împărțit în cinci componente, fiecare având funcționalitățile bine conturate.
Securitate – se ocupă de toate acțiunile care țin de securizarea informațiilor care vehiculează în cadrul sistemului. Nu permite accesul neautorizat la informații, menținând confidețialitatea acestora prin operațiunea de criptare. Componenta securitate este utlizată de toate celelalte componente
Baza de date – conține toate operațiile efectuate asupra bazei de date și care presupun conectarea la aceasta. Printre operații se numără: introducerea unor înregistrări noi, modificarea sau ștergerea acestora din baza de date. Este utilizată de celelalte componente din sistem
Clienți – componenta externă, ce curpinde acțiunile întreprinse de client
Intrare/Ieșire – grupează operațiile de citire și afișare informații, cuprinde interfața cu utilizatorul. Citește informațiile din formulare sau alte modalități de receptare a inputului utilizatorului, urmând să le trimită altei componente, pentru a fi prelucrate. Acestă componentă nu poate să ia singură decizii, ci doar să afișeze informațiile provenite de la alte componente.
Programări – componenta care se ocupă cu detaliile legate de programările întreprinse de componenta Clienți. Reține informațiile legate de programări și permite ștergerea unei programări.
Gestiune Clienți – rulează pe partea de server și se ocupă de gestiunea componentei Clienți
Gestiune Programări – rulează pe server și gestionează componenta Programări
Figure 10 Diagrama de componente
3.3 BAZA INFORMAȚIONALĂ ȘI STRUCTURA FIZICĂ A DATELOR
Baza informațională cuprinde datele de intrare și de ieșire pentru componentele sistemului.
Pentru componenta Intrări/Ieșiri datele de intrare sunt reprezentate de informațiile completate de utilizatorii sistemului prin intermediul formularelor, iar datele de ieșire fiind reprezentate de informațiile afișate utilizatorilor.
Componenta Clienți are ca date de intrare toate detaliile utilizatoriilor cu rolul de Client.
Componenta Securitate are ca date de intrare informațiile cu caracter confidențial introduse de utilizatori, iar datele de ieșire fiind criptarea acelor date.
Componenta Baza de date are ca date de intrare cererile făcute către baza de date, iar datele de ieșire fiind raspunsurile la cereri.
Componenta Programări are ca date de intrare informațiile introduse de către clienți în formularele specifice realizării unei programări, iar ca date de ieșire sunt detaliile finale ale programări făcute.
Datele folosite în cadrul aplicației web au fost stocate într-o bază de date formată din mai multe tabele care conține informații despre clienți, angajați, servicii, programări.
Diagrama Enitate-Relație prezintă enitățile și relațiile dintre ele. Diagrama va avea următoarea structură:
Figure 11 Diagrama ER
3.3.2 PROIECTAREA BAZEI DE DATE
Baza de date a acestei aplicații este creată cu ajutorul limbajului SQL, și este gestiontă de XAMPP prin MySQL (PHPMyAdmin). Aceasta conține 9 tabele și anume:
Programări
Clienți
Înregistrări
Servicii
Servicii_Categorii
Angajați
Notification_System
Admin
Servicii_Angajați
Structura bazei de date este următoarea:
Figure 12 Baza de date – modelul fizic
CAPITOLUL 4
IMPLEMENTAREA APLICAȚIEI
Implementarea aplicației constă în modul de îndeplinire a cerințelor și aplicarea logicii aplicației. În această etapă, cerințele descrise în partea de analiză și proiectare sunt transpuse în cod sursă. Pentru implementarea aplicației, la nivelul interfeței grafice s-a folosit limbajul HTML, pentru implementarea funcționalităților limbajul de scripting PHP, iar pentru legătura cu baza de date am folosit sistemul de gestiune a bazelor de date MySQl. Pentru validarea formularelor și scrierea unor funcții s-a folosit limbajul Javascript.
Algoritmii care stau la baze acestei aplicații sunt: Adăugarea unei programări, Anularea unei programări, Adăugarea de servicii, categorii, angajați în secțiunea de administrare.
4.1 ADĂUGAREA UNEI PROGRAMĂRI
Funcționalitatea de bază a acestei aplicații web este posibilitatea de a te programa online doar folosind această aplicație la un salon de înfrumusețare. Efectuarea unei programări presupune anumiți pași: accesarea secțiunii numită “Programează-te aici”, secțiune în care ai posibilitatea de a vedea programările existente și efectuarea unei noi programări.
4.1.1 VIZUALIZAREA PROGRAMĂRILOR EXISTENTE/PROGRAMARE NOUĂ
În această pagină “Programează-te aici” am creat un tabel în care sunt toate programările clientului logat. Extragerea programărilor din baze de date s-a făcut pe baza unui SELECT. Apoi rezultatele interogării s-au afișat în pagină sub forma unui tabel care conține informațiile principale legate de o programare și anume: Data, Ora, Angajatul care s-a ocupat de programare, Serviciul la care s-a programat clientul, Statusul programării, dacă a fost acceptată programarea de către angajat și un buton care ne permite să anulăm o programare. O programare se poate anula doar daca pana la programarea făcută sunt mai mult de 24 de ore, în cazul în care programarea va avea loc în mai puțin de 24 de ore aceasta nu mai poate fi anulată.
Pentru a verifica acest lucru daca sunt mai mult sau mai puțin de 24 de ore până la programare am folosit variabila $time_difference în care am verificat cât mai este până la programarea care se dorește a fi anulată. Daca variabila $time_difference este mai mica sau egală cu 1440, acest număr reprezentând 24 de ore, se va delanșa un alert box care ne va anunța că această programare nu poate fi anulată, în caz contrar va apărea un alert box care ne dă posibilitatea de a anula programarea. Vom ști ce programare să ștergem din baza de date prin intermediul variabilei $tableID.
Figure 13 Programări existente/Programare nouă
4.1.2 VIZUALIZAREA ANGAJAȚIILOR/SERVICIILOR PRESTATE DE ACEȘTIA
Următorul pas pentru a te putea programa online este de a accesa link-ul “Programare online”, care va deschide pagina request_client.php. În această pagină clientul are posibilitatea de a-și alege serviciul dorit și angajatul care dorește să se ocupe de programare.
Întâi de toate trebuie să ne conectăm la baza de date pentru a putea efectua interogările dorite. Acest lucru se poate face fie prin scrierea în pagina în care dorim să ne conectăm la baza de date a procedurii de conectare și anume: $conn=mysql_connect("localhost","root","")or die("can not connect"); mysql_select_db("beautysalon",$conn) or die("can not select database"); În variabila $conn se face conectarea la baza de date MySQL stabilind adresa, userul și parola, în cazul nostru adresa este localhost, userul root și este fără parolă, fie prin includerea paginii conectare.php care conține procedura de conectare la baza da date.
Pentru a afișa toți angajații și serviciile prestate de aceștia s-a făcut o interogare asupra tabelelor servicii_angajati, angajați și servicii. Rezultatele interogării s-au afișat în pagină sub formă de tabel, ce conține poza angajatului, numele acestuia și serviciul sau serviciile care le efectuează. În dreptul fiecărui angajat există și un buton care ne permite să ne programăm la angajatul dorit.
Figure 14 Alegere angajat/serviciu
4.1.3 ALEGEREA UNEI DATE
După cum am spus anterior fiecare angajat are un buton asociat care ne permite să ne programăm la unul din serviciile prestate de acesta. Accesând butonul din dreptul angajatului dorit se va deschide o nouă pagină denumită request_page_date.php. Această pagină este următorul pas în efectuarea unei programări online și ne va prezenta în partea de sus a paginii informații despre serviciul și angajatul ales. Sub aceste informații se va afișa un calendar cu zilele lunii în curs, dar avem posibilitatea de a alege și luna următoare. Toate zilele care au trecut din luna în curs vor fi tăiate cu roșu întrucât nu ne putem programa într-o zi care a trecut. Zilele cu verde semnifică zile disponibile pentru o programare.
Figure 15 Alegere dată
4.1.4 FUNCȚIA DE DESENARE A CALENDARULUI
Pentru afișarea calendarului s-a folosit funcția draw_calendar care are ca și parametri $month și $year. Această funcție este disponibilă în pagina calendar_function.php, pagină inclusă în request_page_date.php.
Codul pentru funcția draw_calendar a fost preluat de pe site-ul: http://davidwalsh.name/php-calendar și adaptat nevoilor noastre.
Figure 16 Funcția calendar
4.1.5 ALEGEREA OREI DORITE
În momentul în care clientul alege o zi disponibilă pentru programare se va deschide pagina request_page_time.php. În această pagină clientul vede orele disponibile pentru o programare, după același principiu ca în cazul calendarului, orele disponibile vor fi colorate în verde, în timp ce orele indisponibile vor fi colorate în roșu.
Orele disponibile și cele indisponibile vor fi în funcție de orarul fiecarui angajat. Se vor face interogări în funcție de ziua aleasă pentru programare și se va verifica ce orar are angajatul respectiv în ziua aleasă pentru programare.
Figure 17 Alegerea orei pt programare
Următorul cod este pentru afișare orelor de dimineață; pentru celelate momente ale zilei respective după masa și seara codul este aproximativ același, modificările fiind doar în ceea ce privește ora. Pentru început s-a creat un tabel cu anumite caracteristici. Apoi se va face verificarea pentru a vedea orele disponibile pentru angajatul care trebuie să se ocupe de programare. Orele în care angajatul este disponibil pentru o programare sunt colorate cu verde, iar cele indisponibile sunt tăiate cu roșu.
Figure 18 Afișarea orelor disponibile
După ce am ales o oră disponibilă ultimul pas este confirmarea programării. Se preia prin intermediul variabilei $programare_data, data aleasă pentru programare, iar prin intermediul variabilei $angajat_user, angajatul care se va ocupa de programare. După ce am selectat butonul Ok de trimitere a programării, suntem directionați spre pagina cu programări.
Figure 19 Confirmarea programării
4.2 ANULAREA UNEI PROGRAMĂRI
O altă funcționalitate a acestei aplicații web este posibilitatea de a anula o programare. Acest lucru este posibil doar daca până la programarea care se dorește a fi anulată sunt mai mult de 24 de ore, în cazul în care sunt mai puțin de 24 de ore programarea nu mai poate fi anulată.
Codul necesar implementării acestei funcționalități este în pagina cancel_apprequest.php. Pentru început se vor crea două variabile $cancel și $username. Variabila $cancel va fi folosită pentru a ști ce programare se dorește a fi anulată pe baza unui cancelid, id preluat din pagina programari_client.php, iar $username este folosită pentru a păstra sesiunea username-ului logat.
Figure 20 Anularea programare
4.3 MODIFICAREA INFORMAȚIILOR PERSONALE
Această secțiune dă posibilitatea clientului logat de a-și modifca informațiile personale. Pentru modificarea acestor informații s-a folosit comunicarea asincronă AJAX, iar trimiterea datelor s-a făcut prin XHR. Funcția send are rolul de a deschide conexiunea, datele fiind atașate la adresa scriptului server. (Buchmann). Deoarece AJAX e afectat de diferențele dintre browsere se face instanțiere cu browser sniffing. Funcțiile editProfile(), editUsername() și editPassword() sunt apelate la evenimentul click al butonului cu același nume.
Figure 21 Modificare informații personale
Pentru interfața grafică a acestei aplicații web s-a folosit un template preluat de pe site-ul: http://www.freecsstemplates.in/free-template/beauty-center.
Figure 22 Interfața grafică
CAPITOLUL 5
TESTAREA
Testarea este o etapă deosebit de importantă din ciclul de realizare a produselor software. (Revista Informatica Economica, 2004)
Testarea software reprezintă o investigație empirică realizată cu scopul de a oferi părților interesate informații referitoare la calitatea produsului sau serviciului supus testării, luând în considerație contextul operațional în care acesta din urma va fi folosit. Testarea software pune la dispoziție o viziune obiectivă și independentă asupra produsului în dezvoltare, oferind astfel business-ului posibilitatea de a înțelege și evalua riscurile asociate cu implementarea produsului soft. Tehnicile de testare includ, dar nu sunt limitate la, procesul de execuție a programului sau aplicației în scopul identificării defectelor/erorilor de software. Testarea software mai poate fi definită ca un proces de validare și verificare a faptului că un program/aplicație/produs software corespunde business cerințelor și cerințelor tehnice care au ghidat proiectarea și implementarea lui și rulează și se comportă corespunzător așteptărilor.
În dependență de metodologia de testare aleasă, testarea software poate fi implementată la orice etapă în cadrul procesului de dezvoltare, deși partea considerabilă a efortului de testare este aplicată de obicei la etapa de după cizelarea/formalizarea cerințelor și finisarea implementării/codării propriu-zise. (http://ro.wikipedia.org/wiki/Testarea_software#cite_note-1)
Testarea dinamică white box mai este numită și testare structurală se bazează pe structurile de programare folosite (și pe cunoștințele de programare ale testerului). Studiul codului sursă are un impact major asupra rafinării claselor de echivalență ale intrărilor.
Testarea dinamică black box trebuie să indice corelația între stimuli și comportament (intrări și ieșiri). Testarea completă e imposibilă, de aceea testerul definește cazuri de utilizare relevante, pentru o balanță optimă între costul testării și succesul testării.
Testarea grey box implică studiul codului HTML. Practic e vorba de metoda black box suplimentată cu studiul codului din browser (View-Source). Nu e white box pentru că nu e vorba de studiul algoritmilor (HTML e un limbaj de formatare). (Testarea produselor software, Lect.Dr.Sergiu Jecan)
În implementarea aplicației s-au descoperit anumite erori, bug-uri care au fost tratate corespunzător:
Salvarea incorectă a orarului unui angajat în baza de date. Când se adaugă orarul pentru un anumit angajat, orele se salvează în baza de date fară caracteristica AM sau PM care ne ajută să știm daca ora este dimineața, după masa sau seara. Din cauza acestei erori de salvare, când un client dorește să își facă o programare la un angajat, chiar daca el lucrează la o anumită oră, aceasta apare tăiată cu roșu deoarece în tabelul cu orele disponibile pentru fiecare angajat orele sunt trecute cu PM sau AM. Pentru rezolvarea acestei erori au trebuit modificate paginile care se ocupă cu salvarea orarului pentru fiecare angajat, respectiv adauga_angajat.php și prelucrare_adaugare_angajat.php. În aceste pagini orele s-au modificat astfel încât să fie cu PM sau AM.
Modificarea orarului unui angajat. Când administratorul dorește să modifice orarul unui angajat, chiar dacă nu apare nici o eroare sau advertisment cum că orarul nu s-a modificat corect sau că au intervenit anumite probleme la modificarea orarului, acesta nu se modifica, în baza de date rămâne același orar care l-a introdus administratorul la adăugarea unui angajat.
Afișarea serviciilor prestate de fiecare angajat. În pagina în care clientul își alege angajatul și serviciul dorit, serviciile ar trebui să fie într-un dropdown list în dreptul fiecărui angajat. În momentul de față dacă un angajat prestează 3 servicii, acesta apare în pagină de 3 ori cu fiecare serviciu care îl prestează în parte. Această eroare se încearcă să fie rezolvată cât mai curând, deoarce este deranjant pentru client să apară un angajat de mai multe ori.
Pentru testarea standardelor web, în cadrul testării grey box, am folosit validatorul W3C pentru HTML și CSS. Acesta verifică dacă documentul este în conformitate cu standardele web. S-a testat documentul headeradmin.html, iar erorile de formatare au fost:
Figure 23 Erori de formatare
CONCLUZII
În concluzie am creat această aplicație web deoarece pentru orice salon de înfrumusețare problema principală este gestiunea programărilor. Folosind această aplicație clienții prin intermediul unui cont personal, dețin controlul total asupra realizării unei programări, și nu doar atât, aceștia au posibilitatea și de a vedea istoricul programărilor sau de a-și anula o programare. Punctul forte al acestei aplicații este adaptarea la noile tehnologii ale erei internet. Astfel, clientul va putea, de acasă sau de la birou, prin intermediul Internetului, să acceseze aplicația web pentru a efectua direct o programare în funcție de orarul Salonului și de disponibilitatea angajaților preferați. Datorită acestui nou sistem de programări, veți avea mai mult timp pe care să-l consacrați fie clienților fie unei alte activități importante pentru salon. Clienții salonului au acces la un anumit “spațiu privat”, pentru a putea face programări, dar și pentru a putea modifica informațiile personale legate de contul personal. Informațiile necesare pentru efectuarea unei Programări, informații referitoare la serviciile oferite de către Salon sau la orarul acestuia, sunt transmise către pagina web în timp real.
Utilizatorii pot realiza următoarele acțiuni:
Să își creeze un cont nou
Să se autentifice pe baza username-ului și a parolei
Să vizualizeze programările efectuate
Să efectueze o programare nouă
Să își modifice informațiile personale
Dezvoltări ulterioare
În momentul de față aplicația pe parte de client îți permite logarea, crearea unui cont nou, modificarea informațiilor personale, vizualizarea programărilor pe client, anularea unei programări și efectuarea unei noi programări. Pe partea de administrare aplicația permite adăugarea de noi servicii, categorii, angajați, vizualizarea clienților și programărilor existente.
Pe viitor se dorește implementarea a încă două părți și anume: partea pentru secretara salonului și o parte pentru angajați. Secretara se va putea loga în aplicație pentru a adăuga o programare nouă, în cazul în care un client sună la salon pentru programare și va putea vizualiza toate programările existente.
Pe partea de angajat, se dorește crearea unui cont pentru fiecare angajat în parte, în felul acesta fiecare angajat va vedea exact ce programări are într-o anumită zi și va putea anula o programare în cazul în care intervine ceva.
Se va implementa și un sistem care va trimite notificări clienților sau angajaților în funcție de situație. Dacă un client își anulează o programare, angajatul care trebuia să se ocupe de acea programare să primeasca o notificare de anularea a programării, iar dacă un angajat trebuie să anuleze o programare clientul să primească o notificare că programarea a fost anulată.
Recuperarea parolei este un alt aspect important care se dorește implementat cât de curând posibil întrucât in momentul de față aplicația nu prezintă această funcționalitate, iar dacă clientul își uită parola contul nu mai poate fi folosit, deoarece parola este criptată în baza de date.
GLOSAR
Aplicație web – O aplicație web este un sistem software bazat pe tehnologiile și standardele consortiului World Wide Web (W3C) care oferă resurse web specifice cum ar fi conținut și servicii prin intermediul unei interfețe numită browser web.
Interfața grafică – este o interfață cu utilizatorul bazată pe un sistem de afișaj ce utilizează elemente grafice.
Stakeholderi – (părți afectate) – personae sau organizație interesate de viitorul sistem și care își exprimă cerințele pentru sistem. O persoana poate reprezenta interesul mai multor stakeholder.
Uzabilitate – uzabilitatea este un atribut calitativ care se referă la cât de ușor poate fi folosit un lucru; mai exact, se referă la cât de repede pot învăța oamenii să foloseasca ceva.
Mentenabilitate – proprietatea unei component, process sau sitem de a fi întreținut și reoarat cu ușurință pe viitor
Apache – server HTTP de tip open source
XAMPP – pachet de programe software, open source care constă în Apache HTTP Server, MySQL database și interpretatoare pentru scripturile scrise în limbajele de programare PHP și Perl
MySQL – sistem de gestiune a bazelor de date
Browser – prin browser se înțelege un program de ”navigare” în web
HTML – limbaj de marcare utilizat pentru crearea paginilor web ce pot fi afișate într-un browser
AJAX – Asynchronous JavaScript and XML
CSS – Cascading Style Sheets
HTTP – HyperText Markup Language
BIBLIOGRAFIE
Kevin Tatroe, P. M. (2013). Programming PHP. Third Edition.
MOCA Mircea (Proiectarea si Managementul Sistemelor Informatice)
Revista Informatica Economica. (2004). Revista Informatica Economica nr.2(30) .
Rochkind, M. (2013). Expert PHP and MySQL.
STANCA, L.-M. (2006). A Compared Aproach: ASP versus PHP. Revista Informatica Economica nr.2.
STĂNICĂ, G. (2009). Proiectarea sistemelor informatice
Steven Suehring, J. V. (2013). PHP, MySQL, JavaScript & HTML5.
Testarea produselor software, Lect.Dr.Sergiu Jecan. Curs 4
TOMAI, N. (2013). Retele de Calculatoare.
http://www.php.net/manual/ro/intro-whatis.php
Buchmann, L. D. Utilizarea Internetului in Afaceri. Curs 1
CHICU, O. Limbajul HTML.
http://etutoriale.ro/articles/16/1/Despre-PHP/.
http://ro.wikipedia.org/wiki/Ajax_(programare).
http://ro.wikipedia.org/wiki/Cascading_Style_Sheets.
http://ro.wikipedia.org/wiki/JavaScript.
http://ro.wikipedia.org/wiki/MySQL.
http://ro.wikipedia.org/wiki/PHP.
http://ro.wikipedia.org/wiki/Testarea_software#cite_note-1.
http://www.cursuri-online.info/php_mysql/CeestePHPsiMySQL.htm.
http://www.designlabs.ro/aplicatii-web.php.
http://www.finepoint.ro/web-design/aplicatii-web.html. (n.d.).
http://www.php.net/manual/ro/intro-whatis.php.
BIBLIOGRAFIE
Kevin Tatroe, P. M. (2013). Programming PHP. Third Edition.
MOCA Mircea (Proiectarea si Managementul Sistemelor Informatice)
Revista Informatica Economica. (2004). Revista Informatica Economica nr.2(30) .
Rochkind, M. (2013). Expert PHP and MySQL.
STANCA, L.-M. (2006). A Compared Aproach: ASP versus PHP. Revista Informatica Economica nr.2.
STĂNICĂ, G. (2009). Proiectarea sistemelor informatice
Steven Suehring, J. V. (2013). PHP, MySQL, JavaScript & HTML5.
Testarea produselor software, Lect.Dr.Sergiu Jecan. Curs 4
TOMAI, N. (2013). Retele de Calculatoare.
http://www.php.net/manual/ro/intro-whatis.php
Buchmann, L. D. Utilizarea Internetului in Afaceri. Curs 1
CHICU, O. Limbajul HTML.
http://etutoriale.ro/articles/16/1/Despre-PHP/.
http://ro.wikipedia.org/wiki/Ajax_(programare).
http://ro.wikipedia.org/wiki/Cascading_Style_Sheets.
http://ro.wikipedia.org/wiki/JavaScript.
http://ro.wikipedia.org/wiki/MySQL.
http://ro.wikipedia.org/wiki/PHP.
http://ro.wikipedia.org/wiki/Testarea_software#cite_note-1.
http://www.cursuri-online.info/php_mysql/CeestePHPsiMySQL.htm.
http://www.designlabs.ro/aplicatii-web.php.
http://www.finepoint.ro/web-design/aplicatii-web.html. (n.d.).
http://www.php.net/manual/ro/intro-whatis.php.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicatie Web Pentru Gestiunea Programarilor Online Intr Un Salon de Infrumusetare (ID: 149491)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
