Servicii de Curierat

TEMA: APLICAȚIA MOBILĂ : SERVICII DE CURIERAT

Cuprins

Introducere

Capitolul 1. Aplicații mobile

1.1 Despre aplicațiile mobile

1.2 Istoria aplicațiilor mobile

1.3 Statistici privind importanța aplicațiilor mobile

1.4 Marketing-ul aplicațiilor mobile

1.4.1 Aplicații native și aplicații în browser

1.4.2 Perspectivă de business. Costuri și oportunități

1.5 Avantajele/Dezavantajele unei aplicații mobile

1.5.1 Avantajele unui site mobil și a unei aplicații mobile

1.5.2 Avantajele aplicației “Servicii de curierat”

1.6 Testarea aplicațiilor mobile

Capitolul 2. Introducere în tehnologiile web

2.1 JQuery

2.1.1 Ce face jQuery?

2.1.2 De ce jQuery este bun?

2.1.3 Avantaje Jquery

2.2 AJAX

2.2.1 Evoluția AJAX

2.2.2 Proiectarea unei pagini Ajax

2.3 JSON

2.3.1 Reguli JSON în JavaScript

2.3.2 Standardul JSON

2.4 AJAX cu JSON

2.5 Jquery mobile

2.6 Limbajul PHP

2.7 Serverul de date MySQL

2.8 PHP conectat la serverul MySQL

Capitolul 3. Aplicația “Servicii de Curierat”

3.1 Importanța aplicației “Servicii de Curierat”

3.2 Dezvoltarea aplicației pe partea de server

3.2.1 Detalii de utilizare și instrumente folosite în dezvoltarea aplicației

3.2.2 Structura bazei de date

3.2.3 Prezentarea site-ului

3.2.4 Modulul de administrare al aplicației

3.2.5Serverul de mail

3.3 Dezvoltarea aplicației pe partea de mobil

3.3.1 Detalii de utilizare și instrumente folosite în dezvoltarea aplicației mobile

3.3.2 Prezentarea aplicației mobile

3.3.3 Modulul de înregistrare la aplicație

3.3.4 Modulul de administrare al aplicației

Capitolul 4. Servicii Web

Capitolul 5. Concluzii

Anexe

Anexa 1. – Fișierul de conectare.php

Anexa 2. – Crearea tabelelor

Anexa 3. Scriptul de ștergere

Anexa 4. Funcția de validare

Anexa 5. Codul fișierului Mail.php

Anexa 6. Funcția conectare()

Anexa 7. Funcția de LogOut

Listă de abrevieri

Bibliografie

Introducere

Orice nouă aplicație pusă la dispoziția oamenilor este un pas mai aproape atât de dezvoltarea, utilizarea și promovarea tehnologiei cât și de avansarea, experimentarea ei.

În prezent aplicațiile mobile sunt folosite în toată lumea datorită tehnologiei telefoanelor care avansează tot mai mult, iar popularitatea aplicațiilor mobile este într-o continuă creștere.

O aplicație mobilă este o aplicație software proiectată să funcționeze pe smartphonuri, tablete și alte dispozitive mobile.

Titlul lucrării “Servicii de curierat” indică chiar ceea ce va fi apliacția în sine, și anume aceasta va fi pusă la dispoziția serviciilor de curierat, aplicație care va ușura munca utilizatorilor atunci când va fi nevoie de repartizarea și livrarea coletelor, acestea fiind scopul principal al acestei aplicații. Aplicație va fi funcțională pentru început doar pe sistemul de operare și platforma software , Andoid.

În prezent se încearcă tot mai mult simplificarea tehnologiei și construirea de noi aplicații cât mai exacte, care vor fi sau nu promovate. Majoritatea aplicațiilor sunt free, însă unele au și un cost pentru utilizare. Prin dezvoltarea aceastei aplicații se dezvoltă și ideea de simplificare, datorită aplicației de curierat care determină ușurarea în muncă a celor care lucrează în acest domeniu.

La ce folosește această aplicație?

Rolurile principale fiind simplitatea și ușurința acestei aplicații, pentru ca fiecare utilizator să o poată folosi și de asemenea să-i ușureze munca. Acestea fiind și avantajele de bază ale aplicației de curierat.

Aplicația “Servicii de Curierat” are un mare avantaj pentru companiile de curierat. Un singur administrator va putea rapid să repartizeze coletele curierilor. El va adăuga coletele ajunse în sediu într-un tabel și de acolo le va repartiza utilizatorilor, va știi dacă coletele sunt încă în sediu sau dacă au fost repartizate sau livrate. Va fi o metodă mult mai simplă decât numărarea și selectarea fiecărui colet în parte, și cel mai important este evitată uitarea livrării vreunui colet din cauza neatenției sau ajungerea unui colet la destinație după un timp mai lung.

Obiectivul principal al aplicației va fi cel de a atrage atenția asupra simplității de utilizare, așa cum majoritate utilizatorilor care nu sunt experți și documentați pentru a folosi o aplicație, ei să poată cu ușurință să o folosească pe aceasta. Prin niște simple adăugări, selectări și bifări pe care le vor face persoanele care vor deține această aplicație se va stabili o bună ordine în acest cerc de curierat.

Cel mai important, să fie la îndemână și să fie eficientă pentru a fi utilizată de cât mai multe servicii de curierat.

Fiecare aplicație se bucură de promovare doar dacă este accesată și utilizată timp mai îndelungat de cât mai mulți utilizatori.

În prezent datorită numărului mare de aplicații existente, se renunță la multe dintre ele cu foarte mare ușurință fiindcă nu satisfac nevoile clienților.

Cu cât devine mai importantă în rândul utilizatorilor, cu atât și cel care se ocupă de aplicație trebuie să nu uite de administrarea ei, de asemenea de îngrijirea ei și de adăugarea de noutăți pentru ca utilizatorii să nu se poată plictisi de ea. Din contră ei trebuie să fie mulțumiți de ceea ce li s-a oferit și să o recomande și altora.

Lucrarea Aplicație mobilă – “Servicii de Curierat” este descrisă pe parcursul a patru mari capitole, ultimul fiind dedicat concluziilor desprinse din întreaga lucrare.

În primul capitol avem descrise aplicațiile mobile, istoria lor, statistici privind aplicațiile mobile și avantajele, respectiv dezavantajele aduse de aceste aplicații.

Al doilea mare capitol face referire la limbajele folosite în aplicația curentă, descrie fiecare limbaj în parte, modul lui de folosință.

În al treilea capitol se descrie întreaga aplicație „Servicii de Curierat”, cum este ea împărțită, programele folosite, limbajele folosite, codul de bază folosit pentru dezvoltarea aplicației și print screen-uri făcute la aplicație ca să ajute la mai buna înțelegere a aplicației.

Capitolul 1. Aplicații mobile

1.1 Despre aplicațiile mobile

Ce este de fapt o aplicație mobilă?

O aplicație mobilă este orice aplicație de pe telefonul mobil, cele achiziționate direct și cele instalate de utilizatorii de telefoane.

Ele se regăsesc pe smartphone-uri, acele telefoane care au și alte funcții și opțiuni suplimentare față de celelalte telefoane prin care se pot efectua doar apeluri.

Termenul „app” se referă în general la software-ul descărcat pe telefoanele mobile. App desemnează orice aplicație care va fi descărcată și instalată pe telefonul mobil.

Aplicațiile mobile pe telefon au fost create din funcții și mai apoi încorporate pe un telefon astfel că printre primele aplicații apărute într-un telefon mobil au fost cele pentru email și apariția unui browser web. Acestea au rămas comune pentru telefoane, însă cele care au început să devină pe parcurs disponibile și populare pe majoritatea telefoanelor au fost jocurile, calculatoarele.

De altfel aplicațiile mobile pun la dispoziție pe telefoane folosirea și altor caracteristici, cum ar fi senzorii de mișcare, Gps-ul pentru a efectua o nouă funcție, de exemplu cum ar fi hărțile care pot deține un instrument GPS, și pot avea chiar și o listă care să-l anunțe pe utilizator când se apropie de locația cerută de el.

Deoarece este un dispozitiv portabil, datorită telefonului mobil, și mai ales a aplicațiilor din prezent unele sarcini pot fi finalizate atât mai repede, cât și mai bine decât pe un PC, chiar dacă puterea este mai redusă.

De asemenea fiecare aplicație dezvăluie câte ceva despre noi, pentru că daca ar fi să ne uităm și să analizăm ce aplicații avem pe telefon ne-am dat seama ce ne place să citim, ce ne place sa jucăm, ce muzică ne place să ascultăm, sau cât de ordonați suntem.

Fiecare aplicație mobilă are propriile sale caracteristici, ele pot fi pe înțelesul nostru sau nu.

Oamenii în general aleg aplicații pe care să le înțeleagă și care să aibă un sens pentru ei, le place ca o aplicație să fie cât mai simplă pentru a nu fi nevoiți să acceseze cât mai multe pagini ale aplicației până să ajungă la ceea ce-și doresc, anume la scopul principal al aplicației respective, deoarece ei pot renunța foarte ușor la o aplicație prin simplul fapt că nu au răbdare să aștepte să se încarce sau să dea prea multe clickuri până la pagina de bază și se plictisesc repede de o astfel de aplicație.

Nu toate aplicațiile lucrează singure, de exemplu un website poate oferi o varietate de aplicații pentru dispozitivele mobile care le permit să comunice cu telefoanele, îi permite utilizatorului să sincronizeze datele folosind internetul.

1.2 Istoria aplicațiilor mobile

“Once upon a time, the most popular functions of phones were calling and sending texts.” –“Cândva, cele mai importante funcții ale unui telefon erau de a se efectua apeluri și de a se trimite mesaje text.”

Aplicațiile mobile au apărut pe la sfârșitul secolului XX, un telefon avea un calculator, câteva sonerii, calendarul și posibilitatea de a telefona și de a trimite mesaje text.

Producătorii de telefoane au proiectat și au dezvoltat primele generații de telefoane mobile. Competiția între ei a fost strâns și nimeni nu a vrut să expună secretele telefoanelor mobile, iar dezvoltatorii care nu făceau parte din cercul lor nu au avut ocazia de a face aplicații pentru telefoane. În timp, au apărut mici joculețe și a început să se schimbe modul de gândire a oamenilor despre ceea ce înseamna comunicare. Pe parcusul dezvoltării tehnologiei ei optau pentru telefoane cu cât mai multe caracteristici și jocuri, dar a fost prea dificil pentru producători să facă față la cerința utilizatorilor, să construiască pentru fiecare în parte aplicația dorită.

Ei aveau nevoie de un portal pentru a oferi acestora serviciile de informare și de divertisment de care aveau nevoie, și au găsit că internetul este cea mai bună modalitate pentru toate acestea.

Pe parcurs, producătorii au început să introducă din ce în ce mai multe aplicații prin încercarea de a face tot mai atractive produsele lor pentru a atrage atenția cliențiilor.

În timp, tehnologia a avansat tot mai mult, a apărut smart phone-ul, un dispozitiv multifuncțional care nu servește doar comunicării, ci ne ofertă și o gamă largă de aplicații, la care avem acces prin intermediul internetului. “Smart” pentru că prin intermediul acestui dispozitiv putem atât comunica, cât și învăța.

Doar văzând cum arată astăzi un smartphone ne putem da seama de progresele facute în ultimii 15 ani, care este relativ un timp destul de scurt.

1.3 Statistici privind importanța aplicațiilor mobile

Se folosește tot mai des combinația de cuvinte aplicație mobilă. În întreaga lume acest concept a devenit unul foarte important. Apar din ce în ce mai multe aplicații, și din ce în ce mai multă lume intră în posesia unui smartphone, fapt ce îi determină să-și pună mai multe întrebări legate de aceste aplicații, ca de exemplu care sunt cele mai des folosite, câte din ele eșueaza, câți oameni le folosesc, care sunt mai populare, cum se pot face bani de pe urma unei aplicații și multe alte întrebări. Este greu de estimat cam câte aplicații sunt în întreaga lume, dar cele mai mari magazine cu peste 800.000 aplicații sunt Google Play și Apple App Store.

Unii cercetătorii au estimat că în anul 2013 s-au descărcat cam 56 miliarde de aplicații smartphone, pe sistemele de operare: 58% pentru Google Android; 33% Apple iOS; 4% Microsoft Windows Phone; 3% BlackBerry. Au fost decărcate 14 miliarde de aplicații pe tablete: 75 % aplicații pe iOS; 21% Android; 2% Windows. Alți cercetători au dat prognoza pentru 2013 ca se vor descărca 82 de miliarde de aplicații la nivel mondial.

Unele dintre cele mai frecvente întrebări pe care și le pune un utilizator ar fi care sunt cele mai folosite aplicații și care sunt cele mai populare tipuri de aplicații care sunt descărcate.

În diagrama de mai jos avem trecute aplicațiile smarphone din top 10 din anul 2012 din Statel.

În timp, tehnologia a avansat tot mai mult, a apărut smart phone-ul, un dispozitiv multifuncțional care nu servește doar comunicării, ci ne ofertă și o gamă largă de aplicații, la care avem acces prin intermediul internetului. “Smart” pentru că prin intermediul acestui dispozitiv putem atât comunica, cât și învăța.

Doar văzând cum arată astăzi un smartphone ne putem da seama de progresele facute în ultimii 15 ani, care este relativ un timp destul de scurt.

1.3 Statistici privind importanța aplicațiilor mobile

Se folosește tot mai des combinația de cuvinte aplicație mobilă. În întreaga lume acest concept a devenit unul foarte important. Apar din ce în ce mai multe aplicații, și din ce în ce mai multă lume intră în posesia unui smartphone, fapt ce îi determină să-și pună mai multe întrebări legate de aceste aplicații, ca de exemplu care sunt cele mai des folosite, câte din ele eșueaza, câți oameni le folosesc, care sunt mai populare, cum se pot face bani de pe urma unei aplicații și multe alte întrebări. Este greu de estimat cam câte aplicații sunt în întreaga lume, dar cele mai mari magazine cu peste 800.000 aplicații sunt Google Play și Apple App Store.

Unii cercetătorii au estimat că în anul 2013 s-au descărcat cam 56 miliarde de aplicații smartphone, pe sistemele de operare: 58% pentru Google Android; 33% Apple iOS; 4% Microsoft Windows Phone; 3% BlackBerry. Au fost decărcate 14 miliarde de aplicații pe tablete: 75 % aplicații pe iOS; 21% Android; 2% Windows. Alți cercetători au dat prognoza pentru 2013 ca se vor descărca 82 de miliarde de aplicații la nivel mondial.

Unele dintre cele mai frecvente întrebări pe care și le pune un utilizator ar fi care sunt cele mai folosite aplicații și care sunt cele mai populare tipuri de aplicații care sunt descărcate.

În diagrama de mai jos avem trecute aplicațiile smarphone din top 10 din anul 2012 din Statele Unite. Cele mai multe dintre ele sunt cele mai folosite aplicații în întreaga lume.

Diagrama facută pe cercetările din 2012 cu cele mai descărcate tipuri de aplicații :

Statisticile ne mai arată și acele aplicații pe care se duc cei mai mulți bani și care sunt cele mai populare tipuri de aplicații pentru utilizatori, și anume jocurile, iar dupa acestea în clasament se află aplicațiile de comunicare text cum ar fi Facebook, WeChat, What’sApp, Viber, Line, Kakao Talk, BBM, iMesssage, ChatON, Skype, acestea fiind folosite de zeci chiar sute de milioane de utilizatori.

De asemenea apar și aplicații care eșuează, ele sunt descărcate, încercate, iar mai apoi șterse, astfel că cercetările ne arată că una din patru aplicații o dată descărcată nu mai este utilizată din nou.

1.4 Marketing-ul aplicațiilor mobile

În prezent clienții așteaptă mult mai mult din partea aplicațiilor mobile.

Utilizatorii de telefonie mobilă înclină spre cât mai multe oportunități pentru personalizarea propriilor telefoane, doresc să aibă cât mai multe opțiuni și, de asemenea, o cât mai bună funcționalitate. Operatorii de telefonie mobila aduc pe piață diversitatea telefoanelor și a aplicațiilor, a opțiunilor disponibile pe acestea, astfel încât apare și competiția, de aceea fiecare dorește să-i mulțumească pe utilizatori pentru a putea scoate cât mai mult profit.

Utilizatorii trebuie să fie conștienți de aplicațiile pe care operatorii le îmbunătățesc, pentru a exista un impact asupra nivelului de satisfacție și pentru a crește gradul de loialitate.

Dezvoltare aplicațiilor pe mobil se referă la procesul prin care software-ul mobil este proiectat să ruleze pe dispozitive portabile cum ar fi PDAs, EDAs, telefoanele mobile și smartphone-urile.

Dezvoltatorii de aplicații mobile vor să aibă libertatea de a dezvolta aplicații mobile cât mai puternice pentru utilizator, dar fără restricții. Clienții vor să aibă acces la aplicații doar descărcându-le rapid și gratis de pe platformele mobile. Iar ceea ce vor producătorii de telefoane sunt platforme sigure, stabile și mai ales la prețuri cât mai accesibile.

În anul 2012 s-a folosit foarte mult sloganul „Daca nu ești online, nu exiști!”. Iar în mediul online au început să apară majoritatea afacerilor prin eficientizarea website-urilor și prin prezența lor în Social Media (Facebook, LinkedIn, Twitter, Pinterest, etc). Prezența lor online a determinat creșterea vânzărilor în cazul magazinelor online, de asemenea a crescut și ‚notorietatea’ brandurilor, a companiilor, toate acestea având un impact cât mai semnificativ mai ales pentru dezvoltarea afacerilor, însă în prezent nu este suficientă apariția lor doar online, pe web.

În anul 2013 noul slogan a ajuns să fie „Nu ești pe mobil, nu exiști!”, ceea ce a determinat lumea afacerilor să se orienteze mai mult spre prezența pe mobil.

Marea majoritate a companiilor vor acum să-și adapteze website-ul pentru mobil, deoarece în curând accesarea internetului pe mobil o va depăși pe cea desktop deoarece în prezent crește tot mai mult utilizarea smart phone-ului.

Aplicațiile sunt disponibile în doua moduri : cele libere, gratuite și cele care trebuie platite.

O alta întrebare frecventă se referă la cum se fac banii de pe urma unei aplicații.

Deoarece consumatorii sunt tot mai puțin dispuși să plătească pentru o aplicație, trebuie găsite alte modalități de a face bani din asta , fie prin publicitate, fie printr-o aplicație de cumpărare.

Importanța este satisfacerea nevoilor clienților și menținerea loialității lor oferindu-le aplicații superioare în performanță și design pentru că doar mulțumindu-i, aceștia vor fi dispuși să plăteasca pentru o aplicație.

1.4.1 Aplicații native și aplicații în browser

La nivel global mai puțin din jumătatea existentă a smartphonurilor funcționează pe Android și iOS, iar un număr dublu de telefoane față de cel al smartphonurilor dețin un browser, ceea ce înseamnă că există o audiență mult mai mare pentru aplicațiile dezvoltate la nivel de browser.

La nivel național, procentul celor care nu au un smartphone, dar pot accesa aplicații în browser, este în continuare mai mare, fiind cca 5 milioane utilizatori de internet, doar jumătate sunt pe smartphone (cca 500.000 preferă Android).

Aplicațiile native au mai multe avantaje deoarece ele pot fi folosite și offline oferind mai multe facilități, ele având și un design mai bun. În timp ce aplicațiile în browser trebuie să fie mult mai simple datorită diferitelor modele de browsere, a fragmentării foarte mari, a multitudinii dimensiunilor de ecran. De aici deducem că experiența utilizatorului este incomparabil mai bună cu o aplicație nativă decât cu una în browser.

1.4.2 Perspectivă de business. Costuri și oportunități

În cazul aplicațiilor native este nevoie de cost de dezvoltare mai mare deoarce și timpul pentru dezvoltarea lor crește și este nevoie de mult mai multe resurse, mai ales că dezvoltatorii trebuie să lucreze cu ce pune la dispoziție fiecare sistem de operare. De asemenea, pentru ca o aplicație să fie populară va fi necesar ca aceasta să se regăsească într-un magazin de aplicații popular, iar pentru includerea acesteia într-un asemenea magazin va fi nevoie de încă o taxă.

Întrucât merg pe un sistem deschis, aplicațiile în browser sunt mai ușor de implementat. Peste 1 milion de aplicații disponibile se bat pe un spațiu mic pe suprafața telefonului mobil, nu sunt multe aplicații pentru browser sunt mai mult pagini mobile pentru a se vedea informația, iar costurile de marketing pentru o aplicație nativă sunt cca de 3-5 ori mai mari decât cele de dezvoltare, iar cele pentru o aplicație în browser sunt cu mult mai mici.

“Principalele oportunități ale unei aplicații native pot veni din vânzări (aplicații sau lucruri conexe), publicitate și servicii.”

1.5 Avantajele/Dezavantajele unei aplicații mobile

Din ce în ce mai multe accesări online au loc pe dispozitivele mobile, și anume în procent de 77% din populația lumii din abonații la telefonia mobilă sunt online.

Folosirea aplicațiilor este simplă, se face prin crearea lor și/sau a unui website care să fie compatibil pe browser-ul mobil și sunt făcute pentru a rula pe smartphone-uri sau alte dispozitive mobile.

Sunt 3 avantaje de bază a aplicațiilor mobile: viteza , volumul de informații , și publicitatea care sunt foarte importante pentru dezvoltarea unei afaceri.

Viteza este un factor important, mulți au avut răbdarea necesară pentru a aștepta până să se încarce un website atunci când nu exista o tehnologie avansată, însă în prezent puține persoane mai au rabdare și timp ca o pagină să se încarce mai încet. Aplicațiile reduc această așteptare, deoarce majoritatea informațiilor sunt stocate în cadrul aplicației și nu mai este nevoie de așteptare până la încărcare, chiar dacă conexiunea este mai lentă. Mai exact aplicațiile mobile încep să devină cât mai populare și cât mai funcționale încât pe viitor aproximativ jumătate din toate dispozitivele corporative emise vor fi mobile.

Din moment ce informațiile sunt stocate în aplicație, experiența utilizatorului va fi mult îmbunătățită, mai ales ca aplicațiile mobile sunt foarte bune pentru depozitarea unor cantități mai mari de informații.

De asemenea publicitatea este foarte importantă pentru ca o aplicație să ajungă să fie populară, iar pentru asta are nevoie de cele de mai sus.

1.5.1 Avantajele unui site mobil și a unei aplicații mobile

Avantajele unui site mobil

– Este mult mai la îndemână decât cel al unei aplicații și are un cost mult mai redus;

– Are capacitatea de adaptare la toate tipurile de telefoane;

– Are capacitatea de a evolua: o modificare adusă site-ului este imediat online și vizibilă de către navigatorii pe mobil.

Avantajele unei aplicații mobile

– În ceea ce privește dezvoltarea are posibilități mai evoluate;

– Are o ergonomie mai avansată;

– Are capacitatea de a apela mai ușor persoana care navighează pe internet (push) datorită sistemelor de alerte și notificări;

– Și cel mai important în prezent este că o astfel de aplicație este la modă!

Dezavantajele unui site mobil

– Pentru a ajunge la site este nevoie de o conexiune la internet;

– În ceea ce privește dezvoltarea, posibilitățile sunt mai limitate;

– Fără opțiune de push.

Dezavantajele unei aplicații mobile

– Costul este poate de 3-10 ori mai mare decât cel al unui site, depinde de functionalitățile solicitate;

– Va trebui dezvoltată aplicația pentru fiecare sistem de exploatare mobilă (pentru iPhone, Blackberry, Android, etc.);

– Procesul de validare fiind greoi: pentru a propune o aplicație pe iPhone de exemplu, aceasta trebuie validată, în prealabil, de Apple! Acest proces trebuie repetat cu ocazia fiecărei noi actualizări/modificări a aplicației;

– Este nevoie de o implicare mult mai mare din partea clientului în termeni de timp, redactare, urmărire a proiectului, etc.;

– Riscul de a se pierde printre sutele de mii de aplicații existente.

1.5.2 Avantajele aplicației “Servicii de curierat”

Aplicația de față, “Servicii de Curierat” are mai multe avantaje, fiind foarte utilă pentru serviciile de curierat, deoarece toate informațiile sunt stocate în cadrul și în spatele ei și nu necesită timp de încărcare, însă necesită conectare la internet.

Un alt avantaj al aplicației este și ușurința în muncă a celor din cadrul serviciilor de curierat, ce le permite să păstreze o anumită ordine într-o întreprindere.

1.6 Testarea aplicațiilor mobile

În ceea ce privește testarea aplicațiilor mobile, acestea sunt întâi testate în mediul lor de dezvoltare folosind emulatoare, abia apoi vor fi supuse testării propriu-zise.

Exemple de emulatoare folosite pentru testare aplicațiilor, care sunt construite pentru a funcționa pe unul dintre cele mai populare sisteme de operare, este Google Android Emulator sau Official Android SDK Emulator.

Primul este făcut pentru a fi utilizat pe Windows PC fără a mai fi nevoie de descărcarea și instalarea completă și complexă a Android SDK; poate fi instalat, iar aplicațiile compatibile Android pot fi testate pe el.

Cel de-al doilea, Android SDK, folosit și în aplicația prezentată în acest proiect, include un dispozitiv emulator mobil, care imită caracteristicile unui mobil.

Fig 3. Emulator

Capitolul 2. Introducere în tehnologiile web

2.1 JQuery

JQuery este o platformă de dezvoltare, o librărie JavaScript , îmbunătățește procese precum traversarea arborelui DOM în HTML și care ușurează foarte mult munca cu cod scris. Oferă ușurința și îmbunătățirea procesului de parcurgere a arborelui DOM în HTML, managementul inter-browser al evenimentelor, animații și cereri tip AJAX.

Avantajele JQuery sunt foarte multe, unul dintre cele mai importante este și dimensiunea redusă a codului, deoarece a fost gândit să fie cât mai mic posibil (90 – 262kb), și disponibil în toate versiunile de browsere importante existente.

Pentru a funcționa este necesară descărcarea unei copii Jquery care va fi introdusă în directorul unde se află site-ul/aplicația pe care o dezvoltăm, iar apoi o apelăm din paginile html.

Pentru a aplica efectele dorite este necesară cunoașterea adăugării în funcții a elementelor pe care vor avea loc efectele respective.

Selectarea unei părți din document se face prin folosirea construcției $(), aceasta fiind partea fundamentală în Jquery iar între paranteze() se adaugă ca parametru un șir care poate fi orice selctor CSS, id sau clasă.

JQuery se poate folosi pentru a rezolva probleme specifice programării web cum ar fi:

selecții de elemente în arborele DOM folosind propriul motor de selecții open source Sizzle, un proiect născut din jQuery

parcurgere și modificarea arborelui DOM

înregistrarea și modificarea evenimentelor din browser

manipularea elementelor CSS

efecte și animații

cereri tip AJAX

extensii

utilități – versiunea browser-ului

Plugin-urile sau extensiile sunt părți de cod care aduc o îmbunătățire sau extind funcționalitatea motorului principal. Arhitectura sa permite programatorilor să dezvolte subaplicații bazate în biblioteca principală care extind funcțiile de bază jQuery cu funcții specifice plugin-ului.

2.1.1 Ce face jQuery?

Jquery accesează părți din pagină, oferă mecanisme foarte elegante de traversare a elementelor unei pagini, de asemenea, modifică aspectul și conținutul unei pagini, nu se limitează la a oferi doar schimbări cosmetice (CSS), ci poate să modifice chiar conținutul documentului, poate fi schimbat un text, modificată o imagine, reordonată o listă ș.a.m.d. Cu CSS se poate face o pagină mai frumoasă, insă jQuery evoluează, existând atât avantaje pentru clasica problemă a afișării identice de la un navigator la altul, cât și posibilitatea de a schimba unele proprietăți dinamic, după ce pagina s-a încărcat deja. Adaugă animație paginilor, iar cu ajutorul unor pluginuri aceste animații pot fi mult mai complexe.

Răspunde la interacțiunea utilizatorului cu pagina, jQuery are definite o serie de evenimente care interceptează acțiunile vizitatorului într-o pagină web. Cu jQuery este ușoară realizarea de webaplicații care trimit sau primesc date de la server chiar din pagina curentă.

Cel mai important este că JQuery simplifică munca cu JavaScript.

2.1.2 De ce jQuery este bun?

Prin cunoașterea bună a sintaxei CSS se cunoaște deja și o bună parte din JQuery, deoarece merge cam pe aceeași idee cu CSS.

Arhitectura jQuery permite extinderea funcționalității prin pluginuri. Ca un exemplu browserul Firefox care are un "corp" solid completat cu extensiile dorite, dacă acesta ar cuprinde toate extensiile din lume (pentru a satisface gusturile tuturor) atunci ar avea câteva sute de mega și probabil ar ocupa 1GB memorie RAM. jQuery merge pe aceeași idee: oferă un fundament solid, iar nevoile particulare se rezolvă prin pluginuri. O problemă majoră însă este ceea ce merge perfect în Firefox poate să meargă prost în Internet Explorer sau Opera, și invers. Lucrând cu jQuery este mult mai ușor, se folosesc funcții care au fost atent scrise tocmai pentru compatibilitatea între navigatoare.

Nu este nevoie de iterație în jQuery, aceasta fiind implicită pe setul definit, deoarece JQuery lucrează mereu pe seturi. Nu înseamnă că se poate aplica un efect doar pe un element: trebuie doar definit un set cu acel unic element.

JQuery are proprietatea de legare în lanț a unor acțiuni, ceea ce permite scrierea unei serii de acțiuni într-o singură linie, nu mai trebuie păstrată o valoare care să fie predată următoarei acțiuni, ci trebuie doar puse în așa fel încât una să preia ce scoate cealaltă.

2.1.3 Avantaje Jquery

Un mare avantaj este că librăria jQuery este mică atât ca dimensiune cât și ca execuție, este ușor de folosit și rapid, nu este nevoie de scrierea tot codului de la 0 se include printr-un simplu tag <script>.

Nu este nevoie de scrierea a sute de linii de cod, pentru că are selectori, mecanisme și tot felul de caracteristici care fac manipularea DOM ușoara. Un alt avantaj major este compatibilitatea cu orice navigator / browser. JavaScript este separat de HTML, acest lucru find posibil datorită funcției jQuery $(document).ready(). Unul dintre cele mai mari avantaje ale jQuery este ușurinta cu care putem folosi Ajax și suportul JSON.

Un alt avantaj este că există o diversitate de pluginuri și funcționalitatea jQuery poate fi extinsă după nevoie.

2.2 AJAX

AJAX este prescurtarea de la Asynchronous Javascript And XML, în principal nu este un limbaj de programare ci mai degrabă un atu în realizarea unui website, este folosit pentru definirea aplicațiilor web ce folosesc un ansamblu de tehnologii: HTML sau XHTML pentru structura semantică a informațiilor, CSS pentru prezentarea informațiilor, Javascript pentru procesarea informațiilor prezentate, obiectul XMLHttpRequest pentru schimbul și manipularea informațiilor într-o manieră asincronă cu server-ul web, XML este folosit de obicei pentru transferarea datelor între server și client. Ajax este bazat pe nivele astfel:

Nivelul prezentării = HTML+CSS

Nivelul logic = JavaScript+DOM

Nivelul datelor = XML (sau JSON mai recent) alimentat de la server

Comunicarea asincronă client-server.

Intenția este să facă paginile web să devină mai rapide, 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.

Înainte de Ajax, pentru fiecare interacțiune a unei aplicații web cu serverul, pagina web trebuia complet reîncărcată, cu Ajax pot fi încărcate și modificate doar anumite părti din pagină, prelucrate și generate de server, fără a reîncărca toată pagina web. Rezultatul fiind încărcarea mai rapidă a conținutului în pagină și reducerea traficului, de asemenea, pot fi trimise date la server, de la pagina web deschisă, în timp ce utilizatorul urmărește conținutul paginii, fără ca aceasta să fie afectată.

Scopul obiectului XMLHttpRequest este de a permite JavaScript să formuleze cereri HTML și să le trimită la server, dând astfel posibilitatea comunicării cu serverul și afișarea datelor primite fără a fi necesară reîncărcarea paginii, pot fi procesate în paralel chiar și mai multe conexiuni cu serverul, fără a bloca browser-ul până la primirea raspunsului.

Trebuie creată o instanță a acestui obiect înainte ca de a fi utilizat:

var nume_variabila = new XMLHttpRequest();

XMLHttpRequest este suportat de toate browserele moderne și de principalele sisteme de operare: Windows, UNIX/Linux și Mac OS; totuși, implementarea acestuia diferă între unele navigatoare web.

Pe lângă JavaScript, Ajax constă și în folosirea unui limbaj pe partea de server, poate fi utilizat în multe tipuri de aplicații care pot fi incluse într-o pagină web, dar cel mai folosit este pentru navigare de la un conținut la altul al site-ului. Navigare care de obicei se face prin link-uri care conțin o adresă URL către pagina /conținutul respectiv. Metoda standard de transmitere a datelor adresei URL din link-uri la server este GET. Un alt mod de trimitere a unor date dintr-o pagina web la server este prin metoda POST.

Cu Ajax, cererea pentru trimiterea datelor cu POST se face tot prin metoda "open()" a obiectului "XMLHttpRequest", sintaxa acesteia fiind open("POST", url, flag), unde "POST" este metoda de transfer, "url" este adresa fișierului PHP la care va fi transmisă cererea, iar "flag" este o valoare booleana true sau false. Se pot trimite date prin GET și POST simultan în felul următor: valorile pe care vrem să le trimitem prin GET se adaugă în adresa URL care va fi inclusă într-o cerere de tip "POST" definită cu metoda "open()", iar valorile care trebuie transmise prin POST se adaugă în parametrul metodei "send()".

2.2.1 Evoluția AJAX

Pionieratul – corespunde apariției celor trei soluții convergente, apărute inițial independent:

paginile DHTML (JavaScript+DOM+HTML+CSS) ce permiteau manipularea conținutului și formatului unei pagini accesând stiluri CSS primitive prin JavaScript;

comunicare asincronă – cadrele interne invizibile în anii 90, apoi obiectul XHR începând cu anul 2000 și versiunea 5 a browserului Internet Explorer;

standardele de transfer a datelor între limbaje diferite: întâi XML, apoi JSON

Perioada entuziastă – corespunde promovării acronimului AJAX și reunirii sub acesta a tehnologiilor definite în perioada anterioară;

perioada productivă – axată pe crearea instrumentelor reutilizabile, adică a frameworkurilor;

această perioadă se caracterizează prin scăderea rolului limbajului JavaScript propriu-zis și creșterea rolului funcțiilor și obiectelor JavaScript oferite de diverse biblioteci AJAX;

bibliotecile cu cea mai puternică adopție sunt cele de tip open-source: Prototype+Scriptaculous, Jquery, Dojo, Ajax on Rails.

Această tehnologie iși are deci originea în anii 1998-2000 când a fost dezvoltată și folosită de Microsoft în aplicația Outlook Web Acces utilizând extensii ale proprietăților HTML incluse în Internet Explorer. Dar acest termen "AJAX" a fost creat în anul 2005, a devenit popular și a cunoscut o dezvoltare accentuată dupa ce a fost folosit de Google în aplicațiile sale: Google Maps, GMail.

2.2.2 Proiectarea unei pagini Ajax

Pentru proiectarea unei pagini AJAX este nevoie de parcurgerea câtorva etape. Prima ar fi pregătirea zonelor din pagina ce urmează a fi manipulată cu JavaScript, Atribute ID pe elementele ce urmează a fi accesate, structurarea conținutului inițial al paginii prin blocuri DIV și SPAN (cu ID), crearea de blocuri DIV sau SPAN vide (sau ascunse cu CSS) acolo unde se dorește inserarea de conținut nou, atribute CLASS pe elementele ale căror format urmează sa fie manipulat dinamic, stiluri CSS multiple pentru un același element GUI.

În următoarea etapă are loc stabilirea elementelor ce vor declanșa modificările în pagină, identificarea elementelor ce vor suferi evenimente declanșatoare de procesări AJAX, identificarea evenimentelor ce vor declanșa procesări și asocierea de funcții handler ale acestor evenimente.

A treia etapă se referă la implementarea comunicării asincrone în JavaScript care se poate face prin XHR: instanțierea cu browser sniffing (try…catch), funcția de transfer a datelor (open+send), testarea răspunsului (onreadystatechange), apelarea funcției de procesare a răspunsului, se mai poate face prin cadre (push sau pull), cadrul invizibil, modificarea dinamică a atributului SRC, culegerea datelor din cadrul invizibil (push sau pull), procesarea datelor culese; și prin frameworkuri: Dojo, Jquery, Prototype, Sarissa.

A patra etapă este procesarea răspunsului cu tipurile de răspuns (XHR). Următoarea etapă : accesarea elementelor din pagină ce vor fi afectate de răspuns (prin metode DOM).

În cea de a șasea etapă are loc manipularea conținutului existent (sau a stilurilor sale). Are loc apoi generarea de conținut nou în pagină.

AJAX are și unele dezavantaje cum ar fi că nu suportă mecanismul Back/Forward al browserului, întregul site poate fi o pagină unică modificabilă dinamic la client, de asemenea, el nu suportă mecanismul Add Bookmark, semnul de carte va marca întregul site AJAX și nu doar o stare a sa, nu suportă nici upload de fișiere deoarce din rațiuni de securitate, JavaScript nu poate accesa fișierele clientului. Un alt dezavantaj el este afectat de diferențele dintre browsere.

2.3 JSON

JSON(JavaScript Object Notation) este un format simplu de structurare a datelor în format text, folosit pentru schimbul de informații, și poate fi folosit ca o alternativă mai ușoară la XML.

Chiar daca JSON conține un set simplu de reguli, acesta poate reprezenta o structură complexă de date, ce poate să cuprindă matrici și obiecte, în format text; sintaxa JSON fiind un subgrup al limbajului JavaScript, datele dintr-un format JSON pot fi mai ușor prelucrate in JavaScript.

Reguli JSON în JavaScript

Un obiect e descris ca un șir (încadrat în acolade) de perechi nume:valoare, separate prin virgule (suprapune conceptul de obiect cu cel de vector asociativ!);

Un vector e descris ca un șir (încadrat în paranteze pătrate) de valori separate prin virgule;

Orice valoare dintr-un obiect sau dintr-un vector poate fi o variabilă (inclusiv de tip function), un obiect sau un vector => JSON poate reprezenta orice structură de date (obiect, vector, arbore, XML etc.);

JSON poate fi folosit pentru a reprezenta structuri complexe transferate între client și server, ca alternativă la XML. Majoritatea limbajelor suportă conversia obiect-string folosind standardul JSON ca format serializat pentru obiecte (în JavaScript cu funcțiile toString și eval). Frameworkurile folosesc frecvent JSON pentru a reprezenta obiecte-argument pentru funcții.

Standardul JSON

Numele atributelor din obiecte trebuie sa fie stringuri:

Exemplu : catalog={“produs”:”televizor”,”pret”:30}, chiar dacă JavaScript acceptă, la crearea de obiecte, sintaxa: catalog={produs:”televizor”,pret:30}

Valorile trebuie exprimate literal (string, număr, boolean, null).

Exemplu obiect={“onclick”:”functie”,…..}, chiar dacă JavaScript acceptă ca valorile să fie nume de variabile (obiecte, funcții etc.).

2.4 AJAX cu JSON

Ajax fiind o tehnologie pentru transferul de date între client și server, în unele situații utilizează documente XML ca structură de stocare și preluare a acestor date. Formatul JSON este o alternativă mai simplă de împachetare și stocare a datelor ce trebuie transmise sau/și primite de Ajax, și care are avantajul integrării în JavaScript, ceea ce face mult mai ușoara prelucrarea conținutului primit așa, decât sub formă XML.

Datele care pot fi preluate dintr-un formular sau din alte variabile definite în script și care trebuie trimise cu Ajax la server, pot fi "împachetate" în format JSON și trimise astfel la server într-o singură variabilă.

JSON poate fi util și în formatul datelor care sunt primite de Ajax ca răspuns de la server, prin acest format pot fi trimise direct obiecte JavaScript sau matrici, definite pe server, care pot fi utilizate sau executate direct în scriptul JS.

2.5 Jquery mobile

JQuery Mobile se află în vârful librăriei Jquery ceea ce îl face mai ușor de înțeles pentru cei familizarizați cu sintaxa jQuery, funcționează pe o varietate de smartphonuri și tablete, mai exact este un framework pentru crearea de aplicații web mobile. De fapt, este calea cea mai ușoară pentru crearea de site-uri și aplicații pentru mobil. Este în curs de elaborare de echipa proiectului jQuery și este cunoscut ca o bibliotecă JavaScript sau un cadru mobil. Folosește HTML5, CSS3, JavaScript și Ajax pentru a putea realiza stabilirea paginilor cu un script minim.

JQuery Mobile este compatibil cu alte framework-uri(cadre) de aplicații mobile și platforme , cum ar fi PhoneGap , Worklight și altele.

JQuery mobile se bazează pe sintaxa “scrie mai puțin, face mai mult”, deoarece așa cum a fost explicată și librăria jQuery că un avantaj important este dimensiunea redusă a codului, așa și partea pentru mobil. Însă acesta se ridică la un nou nivel și anume proiectează automat design-ul paginilor web cu un look mult mai atractiv și ușor de folosit care se poate utiliza pentru toate dispozitivele mobile.

Este compatibil cu toate platformele mobile importante.

Sunt mai multe moduri în care se poate folosi Jquery mobile pentru un website și anume prin includerea lui din CDN sau prin descărcarea librăriei (.js) de pe Jquerymobile.com, se procedează la fel ca și în cazul jQuery, se introduce în pagină cu un simplu <script>.

Cu jQuery mobile se pot crea multiple pagini într-un singur fișier HTML, fiecare pagină fiind separată printr-un id unic și se folosește atributul href pentru legătura dintre ele sau de asemnea, jQuery mobile mai are și o varietate de efecte de trecere de la o pagină la alta.

2.6 Limbajul PHP

Limbajul de programare PHP provine de la Php : Hypertext Preprocessor a fost folosit inițial pentru a produce pagini web dinamice, acesta se folosește înglobat în codul HTML.

Limbajul PHP este folosit în dezvoltarea aplicațiilor web, fiind unul din cele mai importante limbaje de programare web open-source și server-side.

Statisticile ne arată că este instalat pe 20 de milioane de situri web și pe 1 milion de servere web.

Conform unui studiu, PHP este unul din cele mai folosite limbaje de programare server-side, popularitatea acestuia este crescută datorită câtorva caracteristici:

Sintaxa limbajului este foarte ușoară și destul de liberă; combină sintaxele unora din cele mai populare limbaje Perl sau C și nu este nevoie de includere de biblioteci, codul PHP inclus într-un document executându-se între marcajele speciale;

PHP-ul se folosește de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, așa cum este web-ul;

PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță;

PHP a fost modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii, a fost integrat pentru numeroasele servere web existente: Apache, IIS, server, etc.;

Cea mai importantă caracteristică a PHP-ului este gratuitatea. Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-ului, eficientizarea și securizarea codului.

PHP permite furnizarea unui conținut Web dinamic și anume un conținut Web care se modifică automat de la o zi la alta sau mai des de atât. Siturile Web frecvent actualizate pot atrage cantități enorme de trafic, iar conținutul Web este un element important în susținerea traficului, de exemplu vizitatorii nu vor mai reveni la o pagină Web care conține aceleași informații ca și cele prezentate la ultima vizită.

Deoarece PHP rulează pe serverul web el poate obține accesul la fișiere, baze de date și alte resurse inaccesibile programului JavaScript, se mai poate folosi limbajul PHP pentru a generera cod Java Script.

Fiind un limbaj de programare structurat, PHP este simplu de utilizat, una din cele mai importante facilități ale limbajului este probabil conlucrarea cu majoritatea bazelor de date relaționale, de la MySQL și până la Oracle, trecând prin MS Sql Server, PostgreSQL, sau DB2.

Întâi trebuie instalat un server web – Apache și modulul pentru limbajul PHP este recomandat un program pe care acestea sunt deja configurate , cu tot cu MySQL ca de exemplu XAMPP sau trebuie încărcat scriptul pe un server web unde este instalat PHP.

Caracteristici ale serverului web Apache

furnizează o implementare robustă a protocolului HTTP

rămâne o platformă pe baza căreia indivizii și instituțiile pot să construiască sisteme în scopuri experimentale

este o entitate organică, cei care beneficează de ea, prin utilizare contribuie de cele mai multe ori la dezvoltarea ulterioară a platformei.

este flexibil, portabil;

oferă siguranță și extensibilitate.

se distribuie gratuit

poate rula atât sub Unix cât și sub Windows

Apache este folosit de cele mai mari site-uri din lume: motorul de căutare folosit de Google utilizează o versiune modificată de Apache numită Google Web Server (GWS); și proiectele Wikimedia inclusiv Wikipedia rulează tot pe un server Apache.

Xampp este un pachet de programe free software, open source și cross-platform web server, care constă în Apache HTTP Server, MySQL database și interpretoare pentru scripturile scrise în limbajele de programare PHP și Perl.

Scripturile vor fi scrise în fișiere .php care trebuie salvate in fișierul htdocs din xampp și vor fi rulate în browser cu localhost/numefișier.php .

PHP poate interacționa cu majoritatea serverelor web și poate rula pe majoritatea sistemelor de operare, Windows, UNIX, Mac OS. Codul PHP este interpretat de serverul WEB și generează un cod HTML care va fi văzut de utilizator.

2.7 Serverul de date MySQL

MySQL este cea mai populară bază de date open source din lume. A fost produs de compania suedeză MySQL AB și distribuit sub Licența Publică Generală GNU.

MySQL este un sistem de gestiune a bazelor de date relațional, cel mai popular SGBD open-source din prezent, fiind o componentă cheie a stivei LAMP (Linux, Apache, MySQL, PHP). Tot mai multe companii folosesc LAMP ca o alternativă la stiva costisitoare software, din cauza costurilor mai mici și a libertății alegerii platformei de lucru.

MySQL este cu peste 100 de milioane de copii ale software-ului descărcat sau distribuit de-a lungul istoriei sale.

Cu viteza sa superioară, fiabilitate și ușurința de utilizare, cu MySQL se pot construi aplicații în orice limbaj major chiar dacă este folosit foarte des împreună cu limbajul de programare PHP. Există multe scheme API disponibile pentru MySQL care permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc.

Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin.

Pe www.mysql.com pagina oficială apare scris: “MySQL is the best database for us. It is cost-effective, fast, robust, reliable, and requires very little administration. It's an extremely flexible and scalable product. Its replication features confer high scalability to our applications.” Și anume “MySQL este cea mai bună bază de date pentru noi. Acesta are un cost rentabil, este rapid, robust, de încredere, și necesită o mai puțină administrare. Este un produs extrem de flexibil și scalabil. Caracteristicile sale de replicare conferă o scalabilitate mare pentru aplicațiile noastre.”

Deci cele mai importante caracteristici ale sistemului de baze de date MySQL sunt:

suportă standardul SQL

este un sistem de baze de date utilizat pe web

este un sistem de baze de date care ruleaza pe un server

este ideal atât pentru aplicații mici cât și pentru aplicații mari

compilează pe o serie de platforme

este gratis de descărcat și de folodit

este dezvoltat , distribuit , și susținut de Oracle Corporation

Se dorește ca baza de date MySQL să fie ușor de utilizat, disponibil și accesibil pentru toți pentru ca bazele de date să fie cele mai bune și utilizate din lume pentru aplicațiile online, să fie îmbunătățit permanent, în același timp să fie rapid, sigur și fiabil și mai ales să fie fără bug-uri.

Datele din MySQL sunt stocate în tabele, un tabel este o colecție de date alcătuit din coloane și rânduri. Bazele de date sunt utile pentru stocarea de informații. Nu există limită la numărul de tabele din baza MYSQL, și nici la spațiul pe care îl ocupă.

2.8 PHP conectat la serverul MySQL

Cu PHP ne putem conecata și putem manipula o bază de date. MySQL este este cel mai popular sistem de baze de date utilizat cu PHP .

Înainte de a putea accesa datele dintr-o bază de date trebuie să deschidem o conexiune la serverul MySQL. În PHP acest lucru se face cu funcția mysqli_connect().

Sintaxa fiind : mysqli_connect(host,username,password,dbname); unde host reprezintă adresă IP sau un nume de gazdă, username și password(parola) este user-ul/numele, respectiv parola de conectare de la MySQL, iar dbname reprezintă baza de date folosită. Aceștia sunt cei mai importanți parametri folosiți pentru a se face conectarea.

Conectare se va închide automat la final de script, iar pentru a o închide înainte se utilizează funcția mysqli_close().

Capitolul 3. Aplicația “Servicii de Curierat”

3.1 Importanța aplicației “Servicii de Curierat”

Aplicația ”Servicii de curierat” va fi o aplicație pe înțelesul tuturor, clientul nu va fi nevoit să renunțe la ea din motive că aceasta va fi greoaie, că funcționează greu, sau se încarcă greu, sau cum că nu ar ști cum să o folosească, ori că ar fi prea multe opțiuni, prea multe clickuri de dat; din contră aplicația va fi una ușor de utilizat.

Interfața va fi una simplă cu câteva butoane, cu o logare la aplicație ușor de folosit, doar prin adăugarea și actualizarea unor date va fi păstrata ordinea în interiorul unei întreprinderi de curierat. Aplicația, funcțională pe sistemul de operare Android, va permite utilizatorilor să fie la curent cu toate modificările din întreprindere legate de adăugarea, repartizarea respectiv livrarea coletelor.

Astfel se va stabili o ordine, care va determina și satisfacția clientului prin primirea în timp util a coletului, și satisfacția angajaților de a nu mai fi nevoiți să numere fiecare colet în parte, să citească pe ele, să le aranjeze într-o anumită ordine doar ca să le poata repartiza personal apoi unui angajat-utilizator.

Administratorul va fi persoana care se va ocupa de aplicația propriu-zisă, cel care va adăuga coletele în baza de date, tot el va fi și cel care prin intermediul acestei aplicații le va repartiza mai apoi utilizatorilor și anume angajaților. Utilizatorii trebuie doar să dea un simplu check atunci când coletul a fost livrat, pentru ca adminul să știe care colete au fost livrate și care au ajuns înapoi, aflând toate acestea printr-o o simplă filtrare.

Administratorul va fi cel care va administra aplicația, el va fi numit în funcție de întreprinderea din care face parte ca fiind capabil să se ocupe de administrarea și îngrijirea site-ului. Site-ul reprezintă prima jumătate a aplicației, acea jumătate care face posibilă și folosirea celei de-a doua jumătății și anume aplicația pe partea de mobil. Utilizatorii sunt înșiși curierii din întrprinderea respectivă.

Astefel dezvoltarea aplicației are loc pe două părți, pe partea de server și pe partea de mobil.

3.2 Dezvoltarea aplicației pe partea de server

Cu ajutorul limbajului PHP care permite scrierea de scripturi în fișiere .php care duce la crearea website-urilor și cu ajutorul server-ului de baze de date MySQL s-a dezvoltat aplicația “Servicii de Curierat” ca un simplu website. Această parte semnifică partea de admin, cea la care va avea acces doar administratorul aplicației, parte care va fi tratată ca un serviciu pentru partea aplicației de pe mobil.

Site-ul administratorului conține ca pagini esențiale ca acea de login, de adăugare a utilizatorilor și a coletelor, de asemenea, și serverul de mail. Datorită acestui server fiecare utilizator adăugat de administrator va primi un email cu user-ul și parola necesară pentru a se putea loga la aplicație.

Admnistratorul are aceste sarcini simple de administrare, trebuie doar să fie atent la repartizarea coletelor și la cele care nu sunt livrate, să mențină o anumită ordine în rândul utilizatorilor și să administreze cu o foarte mare atenție, de asemenea, și partea coletelor.

3.2.1 Detalii de utilizare și instrumente folosite în dezvoltarea aplicației

Instrumentele folosite în dezvoltarea aplicației au fost XAMPP, Notepad ++, MySQL.

Din XAMPP se face pornirea la serverul Apache și MySQL, necesare în dezvoltarea aplicației.

Serverul Apache folosește HTTP pentru a comunica cu browser-ul, pentru a analiza URL-ul și pentru a stabili protocolul de conectare (în cazul nostru http://localhost).

Pachetul XAMPP conține: Apache + PHP + MySQL + phpMyAdmin.

Acest pachet nu necesită decât o instalare simplă și se poate descărca de la adresa: http://www.apachefriends.org/en/xampp.html, ca mai apoi să fie instalat. Dacă se bifează opțiunile “Install Apache as service” și “Install MySQL as service” fac ca atât serverul Apache, cât și cel de MySQL să porneasca odată cu Windows-ul.

Trebuie acordată o mare atenție la problemele ce pot apărea la instalarea serverului Apache sau MySql:

– acest server se instalează pe portul 80, iar acesta este posibil să fie folosit de un alt server web (posibil că s-a încercat să se instaleze manual ori se folosește deja un alt pachet similar celui XAMPP) ori de un alt program instalat pe PC.
– s-a omis ca la instalarea pachetului XAMPP să se bifeze opțiunea “Install Apache as service”, și, prin urmare acesta nu va rula odata cu Windows-ul.
– este activ un Firewall și acesta blocheaza Apache-ul să ruleze.

Dacă totuși se întâmplă ca unul din servere să se manifeste așa, se activează butonul “Start” din dreptul fiecăruia.

Notepad++ este editorul de texte folosit pentru scrierea de cod în limbaj php pentru paginile din site, acestea fiind salvate în fișiere .php în fișierul htdocs din xampp și rulate pe browser sub forma http://localhost/numefisier.php.

Un server de baze de date este un sistem de gestiune a bazelor de date (MySQL) care este implementat pe calculator și care gestionează fie cu o interfață fie în mod comandă aceste date.

MySQL Server 5.6 a fost folosit pentru crearea bazei de date “Curier” necesare aplicației și a tabelelor din cadrul ei „Colete”, ”Utilizator”. Acesta folosește portul 3306 și user-ul root , la alegere se adugă când are loc instalarea și o parolă. Aceste date sunt importante atunci când se realizează conectarea la baza de date dintr-un fișier .php, fiind folosite pe post de parametrii.

Conectarea aplicației curente la baza de date se face prin intermediul fișierului conectare.php. [Anexa1]

În celelalte fișiere .php pentru a se conecta la baza de date se include doar fișierul conectare.php astfel : include ‘conectare.php’;.

3.2.2 Structura bazei de date

Baza de date cu numele „Curier” s-a realizat cu ajutorul lui MySQL 5.6 în linie de comandă astfel: create database Curier ,iar apoi s-au adăugat cele două tabele de bază pentru utilizatori, respectiv pentru colete. [Anexa 2]

Tabelul cu utilizatori deține detaliile utilizatorilor are ca și cheie primară : UtilizatorID.

Tabelul colete este utilizat pentru a repartiza coletele la utilizatori.

Tabelul colete deține cheia externă UtilizatorID care face referire la coloana cu același nume din tabelul utilizatorilor pentru a urmări cărui utilizator a fost livrat coletul.

Relația dintre tabele este de unul la mai mulți.

Un singur colet poate fi repartizat unui singur utilizator, dar un utilizator poate deține mai multe colete.

3.2.3 Prezentarea site-ului

Site-ul la care se face referire se folosește ca un serviciu pentru aplicația mobilă. Este prima jumătate din aplicația “Servicii de Curierat” și are la bază secțiunea de administrare.

Această parte este funcțională în browserele web și activitatea îi aparține în întregime administratorului.

Întâi de toate administratorul se loghează la aplicație ca mai apoi să poată adăuga/modifica/șterge utilizatori sau colete.

Prima pagină este chiar pagina de logare, aici administratorul introduce user-ul și parola care îi aparțin ca să intre în aplicație, tot aici el are dreptul de a reseta parola oricărui utilizator, parola nouă fiind trimisă pe mail-ul utilizatorului respectiv.

Fig 4. “Logare.php”

Din următoarea pagină administratorul va alege următorul pas pe care trebuie să-l efectueze, dacă dorește să adauge/modifice/șteargă un utilizator atunci va accesa butonul “Adaugare Utilizatori”, iar dacă dorește să adauge/modifice/șteargă colete va accesa butonul “Adugare Colete”. Tot de aici el se deloghează de la aplicație.

Fig 5. „Index.php”

Atât pagina de utilizatori, cât și cea de colete conțin câte un formular de adăugare și un tabel specific paginii pe care se află adminul.

Fig 6. „Formularul de adăugare și tabelul în care se inserează datele”

El trebuie să se ocupe doar de această partea a aplicației fiind responsabil de ceea ce urmează să insereze într-unul din tabele, să nu facă greșeli de nume, adrese, și să verifice ca fiecare colet să fie repartizat și de asemenea să verifice dacă a fost livrat.

3.2.4 Modulul de administrare al aplicației

Prima pagină este cea de Login.php care conține un formular ce îi permite administratorului logarea la aplicație printr-o simplă adăugare a user-ului și a parolei.

Dacă datele introduse sunt greșite utilizatorul va fi anunțat cu mesajul: “Utilizator sau parola gresita”, mesaj care apare în stânga butonului de Logare. Dacă datele sunt corecte atunci utilizatorul este trimis la pagina de index.php: header("location:index.php");.

Fig 7. “Date introduse greșit”

Tot de aici administratorul poate reseta parola unui curier prin trecere user-ului acestuia în câmpul utilizator și prin click la resetare parolă. Astfel curierul va primi prin mail noua parolă. Dacă administratorul greșește numele user-ul introducând un user inexistent el va fi anunțat printr-un mesaj.

Fig 8. “Utilizator inexistent”

În pagina de index.php se află în afara butonului delogare și butoanele care duc la adăugarea utilizatorilor, respectiv a coletelor, și apare numele adminului logat.

Următoarele pagini AdaugareUtilizator.php și AdaugareColet.php sunt paginile esențiale ale aplicației, aici au loc acțiunile cele mai importante ale administratorului.

Adăugare Utilizatori

În pagina cu utilizatori, admnistratorul poate adăuga curierii cărora mai apoi să le repartizeze colete pentru livrare. Un utilizator se adaugă prin introducerea numelui, user-ul , parolei și a email-ului, toate câmpurile sunt obligatorii de completat, altfel adminul va primi astfel de mesaje:

Fig 9. “Validare câmpuri utilizator”

Și tot așa se pot adăuga alți administratori alegând la secțiune de “Administrator” – Da dacă sunt administratori și Nu în cazul utilizatorilor.

<td>Administrator:</td>

<td>

<form method="post" id="report_filter" action="<?= $_SERVER['PHP_SELF'];?>" >

……+

<select name="name" onchange="document.getElementById('report_filter').submit();">

<option value=0 <?php if($Admin==0) echo'selected'?>>Nu</option>

<option value=1 <?php if($Admin==1) echo'selected'?> >Da</option>

</select>

</td>

Prin click pe butonul “Adaugare” se adaugă în tabel datele introduse de către administrator în formular.

Pentru inserare se apelează astfel funcția addUser($Nume,$User,$Parola,$Admin,$Email); din pagina de utilizatori.php, unde se află trecute toate funcțiile ce țin de utilizatori. Se folosește funcția getUsers($Admin=0) care adaugă în tabel datele inserate în formular.

Administratorul nu poate introduce un user care a mai fost încă o dată folosit, dacă face acest lucru el va fi anunțat printr-un mesaj că există acel utilizator.

Fig 10. “Utilizator existent”

În momentul introducerii email-ului unui utilizator, acel utilizator va primi automat user-ul și parola pe care administratorul le-a dat.

Astfel că în pagina .php se apelează funcția de TrimitereEmail($Email,"Datele de conectare la aplicatia Curier sunt utilizator: ".$User." si parola: ".$Parola);.

Administratorul poate modifica sau șterge un utilizator. La ștergere este întrebat dacă vrea cu adevărat să ștearga utilizatorul respectiv pentru a nu se comite greșeli. [Anexa 3]

Fig 11. “Ștergere”

Butonul Inapoi întoarce la pagina de unde administratorul se poate deconecta. De aici sau chiar din pagina pentru adăugarea utilizatorilor se poate intra și în pagina destinată coletelor.

Adăugare Colete

În pagina de colete administratorul are aceleași drepturi de adăugare și ștergere a coletelor, în plus apare și partea de distribuire a coletelor la utilizatori.

Coletele se adaugă prin trecerea adresei, a destinatarului și a numărului de telefon al acestuia, date care trebuie obligatoriu introduse, la ignorarea unui câmp va putea apărea unul dintre mesajele de mai jos:

Fig 12. “Validare câmpuri colete”

De asemenea , la numărul de telefon care are mai puțin de 10 caractere va apărea mesajul:

Fig 13. “Alertă număr de telefon”

Codul de validare se regăsește în [Anexa 4].

Alte funcții importante aflate în colete.php sunt apelate în această pagină destinată coletelor și anume AdaugareColet.php. Acestea sunt cele de inserarea a coletelor addColet($Adresa,$Destinatar,$NrTelefon); și cea prin care se iau în tabel datele getColete($Stare); .

La fiecare colet livrat administratorul nu va mai putea șterge coletul dispărând asfel funcția de ștergere, de asemenea și cea de distribuire pentru a nu se crea o altă confuzie de a se redistribui un colet care deja a fost livrat.

Și în această pagină la ștergerea unui colet administratorul este întrebat dacă este sigur că vrea să șteargă acel colet, poate fi de acord sau poate renunța.

Butonul Inapoi duce la pagina de delogare, de asemenea și din această pagină se poate merge direct la pagina de utilizatori.

Administratorul vede din această pagină toate coletele, dar cu ajutorul unui filtru poate vedea doar acele colete care sunt în sediu sau dacă au fost repartizate la curier sau dacă au fost livrate.

Fig 14. “Filtru tabel”

3.2.5Serverul de mail

Dacă dorim să trimitem/testăm emailuri trimise dintr-un site local aflat în lucru (localhost) se poate folosi pe post de server SMTP unul din serverele consacrate de e-mail, de exemplu Gmail.

Cu unele limitări (nr. de emailuri / zi sau pe minut), serverele publice de e-mail permit să fie folosite pe post de releu intermediar între localhost și destinatarii e-mailurilor.

Condițiile care trebuie îndeplinite sunt:

1. Existența unui cont pe Gmail.

2. Realizarea unei conexiuni de la localhost la Gmail de tip securizat (protocolul SSL sau TLS), la portul 465 (SSL) sau 587 (TLS), la adresa smtp.gmail.com

Contul de Gmail destinat aplicației este : [anonimizat], de aici se trimit emailuri la utilizatori cu datele necesare.

În principiu conectarea de la localhost la orice server se poate realiza prin configurări simple făcute în php.ini din xampp/php:

[mail function]

; For Win32 only.

; http://php.net/smtp

SMTP = localhost

; http://php.net/smtp-port

smtp_port = 25

Teoretic, localhost se poate înlocui cu adresa serverului SMTP de la Gmail, la fel și portul, însă acest mod de conectare nu este securizat, și Gmail impune securizarea.

Conectarea securizată de la localhost la Gmail se poate realiza pe 2 căi:

1.Cu ajutorul unui server de email local, precum Mercury (inclus în XAMPP);

2.Cu ajutorul unei biblioteci de funcții PHP ce asigură securizarea, precum PEAR (inclusă în XAMPP).

Pentru aplicația „Servicii de Curierat” s-a ales varianta PEAR fiind ceva mai simplă, deoarece nu necesită configurări suplimentare (atâta timp cât se folosește XAMPP care conține PEAR în folderul xampp\php\PEAR). [Anexa 5]

Mail.php a fost inclus în partea de logare de unde administratorul resetează parola lui sau a utilizatorilor ca să primească mail cu noua parolă și în partea de adăugare utilizatori, pentru ca utilizatorul să primească user-ul și parola pe care i le-a dat administratorul la adăugare.

Fig 15. „Date trimise”

Fig 16. „Mail-urile primite”

3.3 Dezvoltarea aplicației pe partea de mobil

Aplicația „Servicii de Curierat” este destinată serviciilor de curierat, exact cum se înțelege din titlul ei. Pune la dispoziția utilizatorilor acest serviciu pentru a ușura munca celor care fac parte dintr-o întreprindere de curierat , pentru ca aceștia să fie mai ordonați, atenți și responsabili în ceea ce constă munca lor.

Aplicația „Servicii de Curierat” este în esență o aplicație mobilă care folosește partea de admin ca un serviciu, se folosește de acea parte pentru a-și putea lua datele necesare pentru funcționalitatea aplicației pe mobil.

Aplicația funcționează în prezent doar pe sistemul de operare Android.

Această parte este folosită doar de utilizatori, ei fiind curierii unei anumite întreprinderi, care se loghează la aplicație cu user-ul și parola primite prin email de pe partea de administrare unde au fost adăugați de administratorul aplicației. Ei se folosesc de această aplicație ca să anunțe administratorul când au livrat un colet, tot așa ei știu care sunt coletele lor de livrat.

3.3.1 Detalii de utilizare și instrumente folosite în dezvoltarea aplicației mobile

Pentru dezvoltarea aplicației pe partea de mobil s-a folosit programul de dezvoltare Eclipse. S-a descărcat Android SDK de la adresa http://developer.android.com/sdk/index.html care la instalare conține Eclipse + SDK Manager. Acesta vine cu ultima versiune de Android 4.4.2 , dar din Eclipse de la Android SDK Manager se poate alege o altă versiune mai veche una ca 4.2.2 de exemplu care este folosită și în aplicația curentă.

Se ia versiunea de PhoneGap de pe http://phonegap.com/install/ cea folosită în aplicație fiind 2.7.0 apărută la data de 30 aprilie 2013, cea mai nouă versiune este 2.9.1 apărută la data de 5 ianuarie 2013.

PhoneGap este un cadru open source pentru construirea rapidă de aplicații pentru mobil folosind HTML5 , Javascript și CSS. Software-ul care stă la baza PhoneGap este Apache Cordova . Cordova suportă versiunile de Android 2.2, 2.3, și 4.x.

Lansarea aplicației se poate face și din Eclipse cu ajutorul emulatorului Android Virtual Device Manager unde se crează unul sau mai multe dispozitive pe care să se poată testa aplicația.

Pentru a nu apărea erori și pentru o bună funcționalitate este nevoie de câteva configurări care trebuie făcute după instalarea celor necesare în dezvoltarea oricărei aplicații.

Trebuie introduse la PATH câteva căi esențiale. Acest lucru se face astfel:

De la Start se dă click dreapta pe Computer se alege opțiunea Properties se accesează Adavanced system settings, se deschide fereastra System Properties, iar la secțiunea Advanced se găsește Environment Variables, se dă click pe acest buton și la Path din System Variables se dă Edit și se trec următoarele: D:\Kit\adt\sdk\tools;D:\Kit\adt\sdk\platform-tools;%JAVA_HOME%\bin;%ANT_HOME%\bin;

D: \ este directorul unde sunt instalate toate cele necesare pentru aplicație. De asemenea, trebuie activate Java și Ant.

Se descarcă JDK(Java Development Kit) în funcție de sistemul de operare, de exemplu JDK pentru windows pe 64-bit.

Tot aici la System Variables se dă click pe new și se creează ANT_HOME cu value: D:\Kit\apache-ant-1.9.2; și JAVA_HOME cu value : C:\Program Files\Java\jdk1.7.0_21;.

Crearea proiectului se poate face din linie de comandă cmd:

cd D:\Kit\phonegap-2.7.0\lib\android\bin

create D:\Licenta\Curier Licenta.Curier Curier

Pentru ca dispozitivul mobil să vadă aplicația trebuie instalat pe laptop USB Driver pentru dispozitivul respectiv, iar din dispozitiv trebuie să se activeze Opțiuni dezvoltator , aceasta fiind o opțiune ascunsă. Se intră la setările mobilului apoi se intră în secțiunea despre dispozitiv și acolo se găsește opțiunea versiune dispozitiv se dau câteva clickuri (7) și astfel se activează Opțiuni dezvoltator, aici trebuie bifată opțiunea depanare usb. La rularea aplicației, aceasta va fi vazută și deschisă pe dispozitivul mobil.

3.3.2 Prezentarea aplicației mobile

Această aplicație pe parte de mobil este destinată strict utilizatorilor/curierilor, mai exact a celor care livrează coletele.

Interfața grafică cu utilizatorul (GUI) se referă la toate tipurile de comunicare vizuală între un program și utilizatorii săi, este o particularizare a interfeței cu utilizatorul, prin care se întelege conceptul generic de interacțiune între un program și utilizatorii săi. Deci interfața cu utilizatorul se referă nu numai la ceea ce utilizatorul vede pe ecran, ci la toate mecanismele de comunicare între acesta și program.

Prima pagină a aplicației oferă o scurtă descriere a ceea ce realizează acest serviciu de curierat în interiorul aplicației și beneficiile aduse de această aplicație acestor servicii.

Aceasta este prima pagină cu care utilizatorul are contact atunci când deschide aplicația, el este informat despre ea ca să știe mai exact cum să o folosească.

Fig 17. “Index.html”

La accesarea butonului „Intrare în aplicația curier”, utilizatorul ajunge la pagina de logare de unde se loghează la parte de livrare a coletelor. Această parte de livrare este rolul principal al întregii aplicații, deoarece de aici utilizatorul vede coletele lui de repartizat care i-au fost trimise de administrator, vede care colete trebuie să le livreze și care au fost livrate deja. Trebuie să bifeze coletul livrat imediat după ce a fost dus la destinație.

O dată ce utilizatorul s-a logat la aplicație de pe dispozitivul său mobil, la următoarea intrare în aplicație nu va fi nevoie de o altă logare, datele lui fiind deja înregistrate în memorie și va intra din prima pagină direct la pagina coletelor. Tot de aici se poate deloga de la aplicație sau se poate întoarce la pagina cu descrierea aplicației.

3.3.3 Modulul de înregistrare la aplicație

Utilizatorul se loghează la aplicație din pagina destinată logării, prin adăugarea user-ul său și a parolei, care le-a primit prin mail de la aplicația serviciu din partea administratorului.

Fig 18. „Login.html”

O dată logat, dacă nu se deloghează el va rămâne înregistrat în aplicație ca să nu mai fie nevoit la fiecare accesare a ei să-și treacă datele de intrare.

La click pe butonul Logare se declanșează funcția de conectare.[Anexa 6]

Funcția $.ajax ( ) poate fi folosită mai flexibil și stă la baza tuturor cererilor Ajax trimise de jQuery .

Tipul de cererea este făcută prin metoda POST.

URL-ul conține adresa la care este trimisă cererea.

Data deține datele care urmează să fie trimise la server și anume user-ul și parola.

Success – dacă cererea reușește, astfel că funcția a trecut de argument – datele returnate de la server, formatate în funcție de parametrul dataType. Tot aici datele fiind introduse corect se ajunge la pagina de colete.html, altfel utilizatorul va fi anunțat prin mesajul "user si parola incorecta" că a greșit.

Error – funcția va fi apelată dacă cererea eșuează.

DataType – tipul de date pe care le așteaptă înapoi de la server, evaluează răspunsul ca JSON și returnează un obiect JavaScript .

Cererea este trimisă la adresa login.php, se face conectarea la baza de date și se execută interogarea "SELECT * FROM utilizator WHERE User = '$User' AND Parola = '".md5($Parola)."'", dacă datele sunt bune se returnează rezultatul.

3.3.4 Modulul de administrare al aplicației

Administrarea aplicației are loc la pagina în care intră utilizatorul după logare. Aceasta este pagina de colete în care curierul are trecute coletele livrate și cele nelivrate.

El administrează această pagină prin livrarea coletelor ce le primește de la administrator, bifând fiecare colet livrat imediat după ce a dus coletul la destinație.

Fig 19. “Colete.html”

Are opțiunea de a alege care colete să le vadă în pagina sa, pot apărea toate sau doar cele livrate sau doar cele nelivrate, pentru că în momentul în care o să aibă sute de colete livrate și nelivrate să vadă exact coletele care trebuie să le livreze.

Fig 20.”Vizualizare colete”

Apelul funcțiilor colete() și livrare() se face tot prin ajax. Cererile fiind trimise la paginile de colete.php, respectiv livrare.php.

Funcția colete() trebuie să dețină datele : id_user și starea coletelor care pot fi livrate sau nelivrate.

Colete.php conține tabelul cu datele destinatarului unde trebuie să ajungă coletele și starea în care se află coletele. Ultima coloană din tabel destinată stării coletelor îi permite utilizatorului să bifeze în dreptul coletului livrat.

Funcția livrare() determină livrarea făcută de utilizator, dacă acesta confirmă dacă un colet să fie livrat sau nu.

Administratorul va vedea data când utilizatorul a livrat coletul și nu va mai putea să-l șteargă, astfel că utilizatorul trebuie să acorde maximă atenție livrării coletelor. Butonul Inapoi trimite utilizatorul la pagina cu descrierea aplicației, iar butonul LogOut din pagina coletelor îi permite utilizatorului delogarea de la aplicație astfel că va fi trimis înapoi la pagina cu logare. [Anexa 7]

Capitolul 4. Servicii Web

Un serviciu web este un serviciu pus la dispoziție utilizatorilor pe Internet. Există sisteme ce oferă servicii de informare și procesare a informațiilor care în general sunt independente de platforma hardware; accesul la acestea se face prin servicii web.

Un serviciu Web este o aplicatie Web de tip client-server, în care un server furnizor de servicii este accesibil unor aplicații client (care nu sunt de tip browser) pe baza adresei URL a serviciului. Serviciul Web și clienții săi pot rula pe platforme diferite și pot fi scrise în limbaje diferite, deoarece se comunică prin protocoale standard HTTP, XML, SOAP, JSON, ș.a.

Un serviciu web este o colecție de protocoale și standarde folosite pentru schimbul de date între aplicații sau sisteme. Aplicațiile software scrise în limbaje de programare diferite și care rulează pe diverse platforme pot folosi serviciile web pentru a face schimb de date pe rețea (Internet), într-o manieră oarecum asemănătoare comunicării între procesele de pe un singur calculator.

Principalul merit al serviciilor Web este acela că asigură interoperabilitatea unor aplicații software implementate pe platforme diferite și cu instrumente diferite.

HTTP (HyperText Transfer Protocol) este baza pe care este construită partea web. Fiecare tranzacție HTTP constă dintr-o cerere și un răspuns. Protocolul HTTP este format din mai multe părți : un URL unde a fost trimisă cererea, verbul care a fost utilizat, alte anteturi, codul de stare și corpul de răspunsuri, care este ceea ce de obicei se vede când se navighează pe Web într-un browser.

Când se creează un website în PHP și o aplicație, această parte de PHP întotdeauna va fi tratată ca un server. Se poate crea un client sau un server în PHP și cererile și răspunsurile pot fi primite sau expediate, sau ambele.

Paginile sunt construite în PHP similar cu cele a unui simplu website. O cerere sosește de la aplicație, și se folosește PHP pentru a vedea ce s-a solicitat și pentru a putea trimite un răspuns corect.

JSON este un format JavaScript specific ușor de citit, o alternativa mai simplă, mai facilă decât limbajul XML și care este un format de reprezentare și interschimb de date între aplicații informatice.

Aplicația “Servicii de Curierat” se dezvoltă pe parte de mobil și pe parte de server. Partea de mobil folosește cealaltă parte ca un serviciu, fiind dependentă de ea.

Aplicația are în spate paginile de bază PHP create ca niște pagini normale web, atunci când aplicația mobilă trimite o cerere se ajunge la paginile create cu ajutorul limbajul PHP care răspund pe măsura a ceea ce s-a cerut.

Paginile esențiale sunt cele de colete, respectiv livrare care îi permit utilizatorului să vadă pe mobil coletele primite de la administrator și să facă livrarea acestora.

Partea de administrare se comportă ca un website, dar unul din rolurile principale este de a anunța utilizatorul care colete trebuie livrate, iar un alt rol principal este și comunicarea cu baza de date.

Principiul unui serviciu web este cel de cerere-răspuns. În aplicația “Servicii de Curierat” cererile se trimit prin ajax și răspunsurile în format json.

În momentul livrării unui colet se declanșează funcția livrare() care este următoarea:

function livrare(id_colet)

{

if (confirm("sigur doriti sa livrati coletul cu id " + id_colet + "?"))

{

$.ajax({

type: "POST",

// url: 'http://192.168.1.3/licenta/Mobil/livrare.php',

url: 'http://172.30.114.128/licenta/Mobil/livrare.php',

data: 'id_user='+window.localStorage.getItem('id_user')+'&id_colet='+id_colet,

success: function(data){

// alert(data);

colete();

},

error: function( jqXHR , textStatus, errorThrown) {

alert('eroare'+textStatus + errorThrown);

colete();

},

dataType: 'json'

});

}

}

În momentul în care utilizatorul este de acord să livreze coletul se trimite cererea.

Funcția $.ajax ( ) poate fi folosită mai flexibil și stă la baza tuturor cererilor Ajax trimise de jQuery .

Tipul de cererea este făcută prin metoda POST.

URL-ul conține adresa la care este trimisă cererea și anume la pagina de livrare.php.

Data deține datele care urmează să fie trimise la server și anume id-ul userului și al coletului pentru a se ști care colet se dorește a fi livrat, de exemplu: coletul x al utilizatorului y.

Success – dacă cererea reușește, astfel că funcția a trecut de argument – datele returnate de la server, formatate în funcție de parametrul dataType.

Error – funcția va fi apelată dacă cererea eșuează.

DataType – tipul de date pe care le așteaptă înapoi de la server, evaluează răspunsul ca JSON și returnează un obiect JavaScript .

La fel se procedează și la conectarea la pagina de colete [Anexa 6], în momentul în care utilizatorul se loghează se trimite cererea pentru a se verifica dacă datele de intrare sunt corecte, dacă cererea ajunge cu succes, utilizatorul s-a logat, dacă eșuează se trimite eroare, iar dacă datele sunt incorecte se intră tot pe ramura succes, deci cererea a fost primită, dar datele sunt eronate și utilizatorul este anunțat că datele sunt incorecte; exemplificare în capitolul 3 subcapitolul 3.3.3 Modulul de înregistrare la aplicație.

În momentul intrării în pagina de colete se trimite o altă cerere care trebuie să primească ca răspuns starea și id_user și anume coletele utilizatorului logat repartizate pe stările specifice de livrare, nelivrare și toate.

Capitolul 5. Concluzii

O „aplicație mobilă” este un software care trebuie descărcat, proiectat pentru a fi vizibil pe un terminal mobil (telefon sau tabletă de tip Ipad).

Un „website mobil” este un site internet clasic, însă optimizat pentru a se afișa pe un telefon mobil cu un ecran de dimensiuni reduse și, posibil, tactil (iPhone, blackberry, HTC Android…) numit, de asemenea, smartphone („telefon inteligent”).

Cele doua sisteme au avantaje și dezavantaje care diferă în funcție de obiectivele fiecăruia de comunicare, de destinatari și de buget.

Deși sunt mai costisitor de realizat, aplicațiile mobile au unele avantaje importante cum ar fi că ele se instalează pe telefonul utilizatorului, deci sunt ușor de regăsit, beneficiază de toate funcționalitățile specifice telefonului (localizare, cameră, notificări push, etc) și se pot implementa funcționalități avansate.

Pentru ca o aplicație mobilă să ajungă să fie populară aceasta trebuie utilizată de cât mai mulți utilizatori.

Datorită numeroaselor limbaje de programare existente în prezent se pot crea numeroase aplicații referitoare la orice domeniu existent. O aplicație însă trebuie să fie pe înțelesul tuturor celor care au acces la ea.

Pentru serviciile de curierat toți aparținătorii acestui domeniu care doresc să folosească aplicația dedicată lor trebuie să poată să înțeleagă modul ei de utilizare și să poată să o folosească cu mare ușurință, fără să se împotmolească la un anumit punct și să creadă că este greoaia ca să fie nevoit să renunțe la aplicație.

Aplicația trebuie să fie administrată de un administrator, iar utilizatorul, respectiv curierii care se ocupă de livrarea coletelor, acțiune făcută de pe mobil, după ce s-a logat la aplicație.

Partea de servicii web este cea mai importantă parte a lucrării, deoarece se face comunicarea dintre partea mobilă și partea de server, parte de server care comunică și cu baza de date.

Acestea sunt în esență rolurile principale ale aplicației „Servicii de Curierat”. Se pune accent pe livrarea coletelor și cum intră utilizatorul în posesia coletelor. Prin livrare el face cerere către server care îi răspunde automat la acțiunea de acceptare a livrării, iar coletul trece la secțiunea de colete livrate.

Un alt rol important în aplicația “Servicii de Curierat” îl are de asemenea și serverul de mail. Datorită acestui server în momentul adăugarii unui utilizator de către administrator, se trimite un email către utilizator cu numele și parola pe care le poate folosi pentru a se loga la aplicația mobilă.

Un rol important îl are și baza de date, fără de care aplicația nu ar avea nici un rost, deoarce baza de date păstrează atât utilizatorii, administratorii, cât și coletele cu datele specifice. Astfel că este foarte importantă conexiunea dintre aplicație și baza de date.

Aplicația pune în valoare noțiunea de serviciu web prin aceste roluri importante pe care le are, deoarece acțiunea se bazează pe modelul cerere-răspuns specific acestor servicii. Legăturile dintre partea mobilă și cea de pe laptop sunt foarte importante pentru funcționalitatea întregii aplicații.

Anexe

Anexa 1. – Fișierul de conectare.php

<?php

$dbhost = 'localhost';

$dbuser = 'root';

$dbpass = 'Denisa05.';

$con = mysql_connect($dbhost,$dbuser,$dbpass) or die("Nu ma pot conecta la MySQL!");

$dbname = 'curier';

mysql_select_db($dbname) or die ("Nu s-a conectat la baza de date");

?>

Anexa 2. – Crearea tabelelor

CREATE TABLE `utilizator` (

`UtilizatorID` int(11) NOT NULL AUTO_INCREMENT,

`Nume` varchar(255) NOT NULL,

`User` varchar(255) NOT NULL,

`Parola` char(32) DEFAULT NULL,

`Admin` tinyint(4) DEFAULT '0',

`Email` varchar(45) NOT NULL,

PRIMARY KEY (`UtilizatorID`)

)

CREATE TABLE `colete` (

`ColetID` int(11) NOT NULL AUTO_INCREMENT,

`Adresa` varchar(255) NOT NULL,

`Destinatar` varchar(255) NOT NULL,

`NrTelefon` varchar(15) NOT NULL,

`Stare` tinyint(4) NOT NULL DEFAULT '0',

`Data_Livrare` date DEFAULT NULL,

`Data_Adaugare` date DEFAULT NULL,

`Data_Repartizare` date DEFAULT NULL,

`UtilizatorID` int(11) DEFAULT NULL,

PRIMARY KEY (`ColetID`) )

Anexa 3. Scriptul de ștergere

<script>

$(document).ready (function () {

$('.delete').click (function () {

return confirm ("Sunteti sigur ca vreti sa " + $(this).attr ("title") + "?") ;

}) ;

}) ;

</script>

Anexa 4. Funcția de validare

<script>

$(function() {

$("#register-form").validate({

rules: {

Adresa: "required",

Destinatar: "required",

NrTelefon: {

required: true,

minlength: 10

},

Admin: "required",

agree: "required"

},

messages: {

Adresa: "Va rugam introduceti adresa dvs",

Destinatar: "Va rugam introduceti numele destinatarului",

NrTelefon: {

required: "Va rugam introduceti numarul de telefon",

minlength: "Numarul trebuie sa contina minim 10 caractere"

},

Admin: "Va rugam sa precizati daca sunteti administrator sau nu",

agree: "Va rugam acceptati politica noastra"

},

submitHandler: function(form) {

form.submit();

}

});

});

</script>

Anexa 5. Codul fișierului Mail.php

<?php

error_reporting(E_ALL & ~E_STRICT);

require_once "..\..\php\PEAR\Mail.php"; //se verifică dacă biblioteca se află la această cale

function TrimitereEmail($dest, $continut)

{

$exp = "[anonimizat]"; //se trece expeditorul

//$dest = "[anonimizat]"; //adresă destinatar

$subiect = "Mesaj de test"; //titlul

$mesaj = "Salut,\n\nAcesta e un mesaj"; //conținutul mesajului

$server = "ssl://smtp.gmail.com"; //adresa serverului SMTP, în acest caz Gmail securizat

$port = "465"; //portul Gmail securizat

$user = "[anonimizat]"; //contul de Gmail

$parola = "utilizatori"; //parola de Gmail

$antet = array ('From' => $exp, 'To' => $dest, 'Subject' => $subiect);

$smtp = Mail::factory('smtp', array ('host' => $server, 'port' => $port, 'auth' => true, 'username' => $user, 'password' => $parola));

//$continut = "ceva";

$mail = $smtp->send($dest, $antet, $continut);

if (PEAR::isError($mail))

{

echo("<p>" . $mail->getMessage() . "</p>");

} else

{

echo("<p>Mesaj trimis!</p>");

}

}

?>

Anexa 6. Funcția conectare()

function conectare()

{

$.ajax({

type: "POST",

url: 'http://192.168.1.3/licenta/Mobil/login.php',

data: 'username='+$('#username').val()+'&parola='+$('#parola').val(),

success: function(data)

{

window.localStorage.setItem('id_user', $('#username').val());

if(data.id_user>0)

{

document.location="colete.html";

} else alert("user si parola incorecta");

},

error: function(data)

{

alert('eroare');

},

dataType: 'json'

});

}

Anexa 7. Funcția de LogOut

function logout()

{

window.localStorage.clear();

document.location = 'login.html';

}

function inapoi()

{

document.location = 'index.html';

}

$( document ).ready(function() {

colete();

});

Listă de abrevieri

rom. – în limba română

app – application (rom. aplicație)

GPS – Global Positioning System (rom. sistem de poziționare globală)

PC – Personal Computer (rom. Computer personal)

PDA – Personal Digital Assistant (rom. asistent personal digital)

ACM – Advanced Call Manager

Fig. – figura

EDA – Enterprise Digital Assistant

iOS – iPhone OS

cca -circa

SDK – Software development kit (rom. Trusă de dezvoltare a programelor)

DOM – Document Object Model

HTML – HyperText Markup Language

XHTML – EXtensible HyperText Markup Language

DHTML – Dynamic HTML

AJAX – Asynchronous Javascript And XML

XML – eXtensible Markup Language

kb – Kilobyte

CSS – Cascading Style Sheets

ș.a.m.d – și așa mai departe

gb – Gigabyte

RAM – Random-access memory

JSON – JavaScript Object Notation

URL – Uniform Resource Locator (rom. Localizator uniform de resurse)

XHR – XMLHttpRequest

GUI – Graphical User Interface (rom. Interfața grafică)

XSLT – Extensible Stylesheet Language Transformations

IE – Internet Explorer

FF – FireFox

CDN – Content Delivery Network

OOP – Object-Oriented Programming (rom. Programare orientată pe obiecte)

SOAP – Simple Object Access Protocol

SQL – Structured Query Language (rom. Limbaj Structurat de Interogare)

PDO – PHP Data Objects

SGBD – Database Management System(rom. Sisteme de gestiune a bazelor de date)

Bibliografie

Professor John F. Clark – History of Mobile Applications: MAS 490: Theory and Practice of Mobile Applications

Mark L. Murphy – Beginning Android, SUA, 2009

Lars Vogel – Android Development Tutorial : Based on Android 4.4

Ed Burnette – Hello, Android, 3rd Edition, SUA, 2010

…, Revista Chip Special: PHP și MySQL pe înțelesul tuturor, 2003

Kevin Tatroe, Peter MacIntyre, and Rasmus Lerdorf – Programming PHP, 3th edition, California: Sebastopol din SUA, 2013

Matt Doyle – Biginning PHP 5.3, Indiana: Indianapolis din SUA, 2010

Lorna Jane Mitchell – PHP Web Services, California: Sebastopol din SUA, 2013

Paul DuBois – MySQL, 4th edition, SUA, 2008

Saied Tahaghoghi & Hugh E. Williams – Learning MySQL, SUA, 2007

Michele E. Davis & Jon A. Phillips Learning – PHP & MySQL, 2nd Edition, SUA, 2007

Jon Reid – JQuery Mobile, SUA, 2011

Surse preluate din cursurile: Proiectarea și programarea portalelor web(Serviciul Apache, MySQL, PHP, Trimiterea de email din PHP), Utilizarea internetului în afaceri(AJAX, JQuey).

Surse luate de pe http://www.w3schools.com/ – cel mai mare site de dezvoltare web, atât pentru începători, cât și pentru experți :

CSS Tutorial

PHP MySQL Introduction

jQuery Tutorial

jQuery Mobile Tutorial

Articole:

http://mobithinking.com – Global mobile statistics 2013 Section E: Mobile apps, app stores, pricing and failure rates

http://melonmobile.com – History of mobile apps through the eyes of Advanced Call Manager, an eyewitness

Mary Ellen Gordon, -The History of App Pricing, And Why Most Apps Are Free, 18 Iulie 2013

Darryl K. Taft – JQuery Eases JavaScript, AJAX Development, 30 August 2008

Alte surse :

www.json.org/

jQuery Mobile

jQuery.ajax()

http://www.mysql.com/

http://docs.phonegap.com/en/edge/guide_platforms_android_index.md.html#Android%20Platform%20Guide

http://docs.joomla.org/How_do_I_use_Gmail_as_my_mail_server%3F

http://www.wisegeek.org/what-is-a-cell-phone-app.htm

http://www.cnet.ro/2007/08/12/jquery-ce-si-de-ce/

http://netstuff.ro/jquery-avantaje-si-un-mic-ghid

http://ctrl-d.ro/development/cariera-business-development/aplicatii-native-si-aplicatii-in-browser-perspectiva-de-marketing/

http://www.marplo.net/ajax/

http://www.wall-street.ro/articol/New-Media/149144/cevadesign-dan-damian-platforme-mobile-mobile-marketing.html

Bibliografie

Professor John F. Clark – History of Mobile Applications: MAS 490: Theory and Practice of Mobile Applications

Mark L. Murphy – Beginning Android, SUA, 2009

Lars Vogel – Android Development Tutorial : Based on Android 4.4

Ed Burnette – Hello, Android, 3rd Edition, SUA, 2010

…, Revista Chip Special: PHP și MySQL pe înțelesul tuturor, 2003

Kevin Tatroe, Peter MacIntyre, and Rasmus Lerdorf – Programming PHP, 3th edition, California: Sebastopol din SUA, 2013

Matt Doyle – Biginning PHP 5.3, Indiana: Indianapolis din SUA, 2010

Lorna Jane Mitchell – PHP Web Services, California: Sebastopol din SUA, 2013

Paul DuBois – MySQL, 4th edition, SUA, 2008

Saied Tahaghoghi & Hugh E. Williams – Learning MySQL, SUA, 2007

Michele E. Davis & Jon A. Phillips Learning – PHP & MySQL, 2nd Edition, SUA, 2007

Jon Reid – JQuery Mobile, SUA, 2011

Surse preluate din cursurile: Proiectarea și programarea portalelor web(Serviciul Apache, MySQL, PHP, Trimiterea de email din PHP), Utilizarea internetului în afaceri(AJAX, JQuey).

Surse luate de pe http://www.w3schools.com/ – cel mai mare site de dezvoltare web, atât pentru începători, cât și pentru experți :

CSS Tutorial

PHP MySQL Introduction

jQuery Tutorial

jQuery Mobile Tutorial

Articole:

http://mobithinking.com – Global mobile statistics 2013 Section E: Mobile apps, app stores, pricing and failure rates

http://melonmobile.com – History of mobile apps through the eyes of Advanced Call Manager, an eyewitness

Mary Ellen Gordon, -The History of App Pricing, And Why Most Apps Are Free, 18 Iulie 2013

Darryl K. Taft – JQuery Eases JavaScript, AJAX Development, 30 August 2008

Alte surse :

www.json.org/

jQuery Mobile

jQuery.ajax()

http://www.mysql.com/

http://docs.phonegap.com/en/edge/guide_platforms_android_index.md.html#Android%20Platform%20Guide

http://docs.joomla.org/How_do_I_use_Gmail_as_my_mail_server%3F

http://www.wisegeek.org/what-is-a-cell-phone-app.htm

http://www.cnet.ro/2007/08/12/jquery-ce-si-de-ce/

http://netstuff.ro/jquery-avantaje-si-un-mic-ghid

http://ctrl-d.ro/development/cariera-business-development/aplicatii-native-si-aplicatii-in-browser-perspectiva-de-marketing/

http://www.marplo.net/ajax/

http://www.wall-street.ro/articol/New-Media/149144/cevadesign-dan-damian-platforme-mobile-mobile-marketing.html

Similar Posts