Solutie Informatica Pentru Localizarea Geografica a Spatiilor Comerciale
INTRODUCERE
Lucrarea de față, intitulată „Soluție informatică pentru localizarea geografică a spațiilor comerciale”, își propune soluționarea unei probleme legate de timp și spațiu. Datorită proporției semnificative a implicării tehnologiei în viața de zi cu zi, tot mai multe societăți comerciale își doresc să existe și în spațiul virtual, în scopul dezvoltării pe cale extensivă a acestora. Scopul acestei lucrări constă în susținerea bilaterală a societăților comerciale și a clienților, acesta realizându-se prin centralizarea, reprezentarea și furnizarea de informații suplimentare pentru fiecare obiectiv adăugat. Orice societate comercială are nevoie de o modalitate prin care să ajungă la publicul țintă, iar acest lucru se realizează într-un mod foarte eficient atunci când în acest context apare mediul virtual. Pe de altă parte, clientul, în calitate de utilizator al serviciilor de Internet, dorește obținerea de informații rapid și într-un mod ușor inteligibil. Date fiind aceste premise, se evidențiază scopul general al acestei lucrări, implementarea unei soluții care să îndeplinească aceste funcționalități. În mod particular, soluția implementată își îndreaptă atenția asupra societăților comerciale de tip non-stop, întrucât acestea sunt cel mai adesea căutate de către utilizatori. Pornind de la scopul definit anterior, am elaborat obiectivele cercetării, prin care au fost identificate concret funcționalitățile necesare realizării acestui demers științific. Așadar, au fost definite atât obiective principale, cât și obiective secundare ale cercetării.
Obiectivele principale care rezultă din scopul cercetării vizează implementarea următoarelor funcționalități: definirea unei baze de date care să conțină punctele comerciale ce vor fi reprezentate pe hartă, reprezentarea geografică a acestora cu ajutorul serviciului Google Maps, crearea conturilor de utilizator și administrator pentru gestionarea obiectivelor, adăugarea efectivă a punctelor comerciale în baza de date și furnizarea de informații suplimentare referitoare la acestea. În ceea ce privește obiectivele secundare, s-a urmărit afișarea informațiilor legate de utilizatori, filtrarea rezultatelor în funcție de diverse criterii (categorie, adresă, denumire), reprezentarea grafică a acestora pe categorii cu ajutorul unui grafic de tip histogramă, precum și supravegherea utilizării funcționalităților soluției informatice prin reprezentarea adăugărilor de puncte comerciale în funcție de axa timpului.
Deși în momentul de față există o serie de soluții informatice care îndeplinesc nevoi asemănătoare, cum ar fi Zomato – aplicație care permite căutarea și afișarea restaurantelor, Caut ATM – aplicație de localizare a bancomatelor din București sau Magazoo – soluție informatică de localizare a magazinelor, aplicația dezvoltată în cadrul acestei cercetări științifice se diferențiază de celelalte prin premisa de la care a plecat și printr-o serie de funcționalități precum faptul că fiecare utilizator poate contribui la creșterea volumului de informații, calitatea și precizia acestora fiind asigurate prin aprobarea inserării înregistrărilor în baza de date de către administrator. Primul pas în realizarea lucrării a fost reprezentat de cercetarea domeniului căruia i se adresează, analizând care este impactul evoluției tehnologiei în viața cotidiană și modul în care este utilizată tehnologia informației în domeniul economic. Anterior implementării propriu-zise a aplicației, s-a realizat analiza sistemului informatic prin descrierea cerințelor acestuia, reprezentarea grafică a funcționalităților acesteia prin diagramele UML, precum și proiectarea sistemului informatic și a bazei de date. Implementarea propriu-zisă a aplicației a pornit de la definirea bazei de date, care a reprezentat suportul de stocare a utilizatorilor și a punctelor comerciale care au urmat a fi inserate în tabele. Dezvoltarea soluției a continuat cu realizarea unei aplicații de tip client-server, prin care utilizatorul se poate înregistra și adăuga înregistrări în baza de date, implementarea preluării obiectivelor din baza de date și afișarea lor pe hartă în funcție de coordonatele geografice și s-a finalizat cu definirea interfeței cu utilizatorul.
CAPITOLUL 1
UTILIZAREA SISTEMELOR INFORMATICE ÎN ECONOMIE
1.1 Impactul evoluției tehnologice asupra vieții cotidiene
Evoluția tehnologică reprezintă încercarea omului de a-și face viața mai ușoară și are ca efecte îmbunătățirea standardului de viață, reducerea gradului de sărăcie al populației, creșterea duratei timpului liber și diversificarea realizărilor umane. Acest progres permite oamenilor să petreacă mai mult timp în încercarea de a lucra la alte aspecte de nivel înalt, precum dezvoltarea personalității și a caracterului, artă, iubire, religie și spiritualitate. Prin schimbările tehnologice, mai mari sau mai mici, umanitatea a reușit de-a lungul timpului să depășească bariere din ce în ce mai complexe, realizări care au condus la favorizarea creșterii parametrilor condiției umane, precum durata de viață, nivelul dar și aria de școlarizare și pregătire, nivelul de dezvoltare al industriei și economiei, standardele materiale de viață sau comunicarea cu alte grupuri de oameni.
Inovațiile nu doar înlocuiesc produsele sau serviciile existente, ci mai degrabă dezvoltă noi piețe și le extind pe cele existente. De asemenea, dezvoltarea tehnologică nu trebuie privită ca un lucru care duce la creșterea șomajului și pierderea rolurilor oamenilor în societate, pentru că prin această dezvoltare se ajunge de cele mai multe ori în situația în care indivizii evoluează și ei la rândul lor, fiind nevoiți să dobândească noi abilități și cunoștințe sau să le îmbunătățească pe cele pe care le posedă în acel moment. Dacă în trecut invenții precum roata sau motorul cu aburi au avut rolul de a spori puterea fizică de care dispunea un om sau un grup de persoane, în prezent inovările tehnologice, cum ar fi sistemele de calcul, mijloacele de transport moderne sau telefoanele inteligente completează capabilitățile intelectuale ale indivizilor. Societatea a făcut pași uriași în această cale a evoluției societății odată cu inventarea curentului electric, a motorului cu aburi sau a Internetului și va face alții și mai mari prin noile tehnologii ce vor apărea în viitor.
Deși această evoluție are numeroase aspecte pozitive, printre care remarcăm exploatarea și utilizarea din ce în ce mai eficientă a resurselor, creșterea calității bunurilor și serviciilor obținute în urma manipulării acestora, reducerea costului necesar pentru desfășurarea diferitelor activități, creșterea productivității și a vitezei de desfășurare a activităților, dar și creșterea confortului populației și facilitarea comunicării și a integrării indivizilor, există o mulțime de efecte negative pe care aceste schimbări le-au adus în societate. Prin dorința de a eficientiza procesul de exploatare și manipulare a resurselor, oamenii au dezvoltat metode care prezintă risc atât față de mediu, cât și față de ceilalți indivizi, poluarea fiind o urmare firească a industrializării excesive. De asemenea, suprapopularea anumitor zone de importanță economică ridicată este un alt rezultat al tehnologizării și al dorinței și interesului oamenilor de a locui în orașele cu o economie și un nivel de trai ridicat. Un alt aspect negativ al dezvoltării tehnologice este acela că de-a lungul vremii nu toate persoanele au reușit să se adapteze la noile cerințe și să își dezvolte abilitățile necesare pentru a se integra în noul context social-economic, dar și acela că unii oameni, bucurându-se de confort, au pierdut din vedere aspecte importante ale vieții, precum activitatea fizică sau socializarea, preferând să își petreacă timpul în fața televizorului sau a calculatorului. O altă urmare dăunătoare a dezvoltării tehnologice este aceea că majoritatea oamenilor au acces la rezultatele ei, indiferent dacă intențiile lor sunt bune sau nu, manipularea prin mass-media, dezvoltarea unor arme cu efecte din ce în ce mai distructive sau violarea intimității cu scopul controlului maselor fiind aspecte din ce în ce mai nocive ale vieții cotidiene.
Privind de-a lungul istoriei, putem observa anumite perioade de progres accelerat în cadrul societății, așa cum au fost revoluția agricolă sau cea industrială, dar dacă privim doar la ceea ce se întâmplă în prezent, este clar că asistăm la o altă etapă, cel puțin la fel de importantă din punct de vedere al barierelor depășite și al beneficiilor rezultate, și anume revoluția informatică , ale cărei efecte implică îmbunătățirea celor mai multe activități întreprinse de om, indiferent dacă vorbim despre economie, artă, transport sau sănătate. Deși oamenii au fost preocupați din cele mai vechi timpuri de găsirea soluțiilor pentru automatizarea și optimizarea activităților, iar procesul a continuat de-a lungul secolelor, odată cu noile descoperiri din domeniul matematicii, începutul dezvoltării industriei tehnologiei informației aparține secolului XX, punctele importante de reper ale acesteia fiind inventarea primului calculator electric, ENIAC, apariția Ethernet sau cea a World Wide Web. De la dezvoltarea primului calculator și până în zilele noastre, această industrie a crescut într-un ritm alert, puterea de calcul dublându-se odată la câțiva ani, iar costurile reducându-se semnificativ.
În prezent, tehnologia informației este atât de strâns legată de viețile noastre, încât majoritatea activităților pe care le întreprindem sunt realizate sau completate prin utilizarea calculatorului și a dispozitivelor inteligente, datorită eficienței și rapidității acestora. Datorită Internetului, putem comunica mai ușor, mai rapid, indiferent de distanță, cu ajutorul serviciilor de mesagerie și poștă electronică sau al celor de telefonie prin Internet, putem afla cele mai noi știri și evenimente, avem o mulțime de lucrări și studii în format electronic, pentru a studia domeniile de interes, iar unele state se dorește chiar și implementarea votului eletronic, prin intermediul Internetului, Estonia fiind singura țară care folosește acest sistem în prezent. Ținând cont de avantajele aduse de tehnologie, cum ar fi puterea de calcul, rapiditatea procesării sau capacitatea de stocare și accesare a datelor, aceasta a fost rapid adoptată atât de companii și instituții, dar și de populația de rând. Astfel, la nivel mondial, aproape jumătate din populație utilizează Internetul, iar în România, numărul de utilizatori de Internet depășește 70 de procente.
Deși Internetul și dispozitivele moderne aduc o creștere a productivității și fac informațiile disponibile și ușor de accesat, utilizarea lor prezintă și câteva aspecte negative și riscuri, dacă ne gândim la problemele de securitate și violare a intimității ce pot interveni atunci când folosim tehnologia ca mod de comunicare, dar și atunci când folosim metodele electronice de plată.
1.2 Tehnologia informației în economie
În ultimele decenii, calculatorul personal a devenit un element esențial în aproape fiecare casă. Am ajuns să depindem de el în multe aspecte ale vieții noastre de la a comunica cu prietenii și rudele la funcționarea mai performantă în munca noastră sau școală. El a devenit o parte din viața noastră atât de mult încât mulți dintre noi nici nu ne imaginăm cum viețile noastre ar fi fără. Internetul a devenit, de asemenea, o parte integrantă a vieții noastre de zi cu zi. Cărți, enciclopedii și, în unele cazuri, chiar ziare au fost înlocuite treptat de Internet. Specialiștii o numesc „autostrada informației” și ne bazăm pe ea pentru găsi răspunsul la întrebările noastre, pentru a găsi informații interesante, de a împărtăși cunoștințele noastre și la rândul nostru, de a beneficia de cunoștințele altcuiva, pentru a întâlni oameni noi (de multe ori departe). Internetul a făcut lumea un loc mic deoarece acum este mai ușor să vorbim cu oamenii de la un capăt al pământului la altul.
În ceea ce privește mediul de afaceri, tehnologia informației reprezintă un domeniu larg exploatat în zilele noastre. Pe lângă activitățile de creare și comercializare a produselor și serviciilor informatice, fie că vorbim de soluții software, fie că vorbim de componente hardware, tehnologia este în prezent o componentă nelipsită din majoritatea domeniilor de activitate, de la vânzări până la artă și medicină, datorită diversității produselor dezvoltate cu scopul de a servi anumite nișe.
Însă rolul economic fundamental al calculatoarelor devine clar dacă ne gândim la organizații și piețe ca procesoare de informare. Cele mai multe dintre instituțiile și intuițiile noastre economice au apărut într-o eră cu costuri de comunicații relativ ridicate și cu o capacitate de calcul limitată. Tehnologia informației, definită ca fiind computerele, precum și instrumentele legate de tehnologia de comunicare digitală, are puterea de a reduce costurile de coordonare, comunicații și de prelucrare a informațiilor. Astfel, nu este surprinzător faptul că reducerea masivă a costurilor de calcul și de comunicații a generat o restructurare substanțială a economiei. Majoritatea industriilor moderne sunt afectate în mod semnificativ de informatizare.
Ca rezultat, tehnologia informației nu este descrisă cel mai bine ca un capital tradițional de investiții, ci ca o „tehnologie de uz general”. În cele mai multe cazuri, contribuțiile economice ale tehnologiilor de uz general sunt substanțial mai mari decât ar fi prezis prin simpla înmulțire a cantității de capital de investiții dedicat acestora de către o rată normală de rentabilitate. În schimb, astfel de tehnologii sunt benefice din punct de vedere economic în mare parte pentru că facilitează inovații complementare. În ceea ce privește marketingul, rolul tehnologiei informației nu poate fi extrem de accentuat. Pe parcursul ultimelor trei decenii, au apărut modificări subtile în teoria și practica de marketing și au fost remodelate fundamental de către companii. Aceste modificări au fost de asemenea evidente în sisteme informatice legate de management și marketing. Companiile se confruntă din ce în ce mai mult cu nevoia de a controla un mediu de marketing tot mai mare și în rapidă schimbare. Cerințele de prelucrare informatică a companiilor sunt în expansiune, ca și mediile lor competitive care devin mai dinamice și volatile. Pentru a gestiona fluxul de informație externă și internă și a crește performanța și calitatea, companiile vor trebui să învețe să profite de avantajele oferite de tehnologia modernă a informației.
Tehnologia informației joacă noi roluri în organizare, cum ar fi parteneriatele strategice și un rol-cheie în rețelele cross-funcționale. În timp ce noi organizații vor fi proiectate în jurul proceselor de afaceri, mai degrabă decât în ierarhii funcționale, avem cu siguranță nevoie, de asemenea, de noi tipuri de strategii informatice în marketing. De fapt, mediul online este și va fi piatra de temelie a unei noi abordări de marketing. Prin urmare, managementul și designerii de sistem ar trebui să fie mai bine conștienți de căile disponibile pentru a integra procesele de marketing și management în noi moduri inovative.
Fiecare afacere are nevoie de a se promova, în scopul de a stabili o bază de clienți și o modalitate prin care să obțină profit. Ajungând la piața lor, este cel mai eficient și productiv mod posibil. Există multe căi de a face acest lucru, inclusiv metodologiile tradiționale de imprimare. Întreprinderile apelează din ce în ce mai mult la mijloacele electronice de a ajunge la publicul lor, inclusiv e-mail, web și alte tehnologii. Marketingul electronic pune informații direct in fața clienților actuali și potențiali. Oamenii care au o combinație de informații și abilități de tehnologie și creativitate sunt cu disperare necesari pentru a crea publicații, produce conținut și de a crea grafice și elemente multimedia interesante și dinamice pentru a ajuta companiile să își comercializeze produsele și serviciile.
Una dintre aplicabilitățile cele mai importante ale tehnologiei informației în afaceri o reprezintă comerțul electronic (e-commerce), activitate ce presupune tranzacționarea produselor și serviciilor prin intermediul rețelelor computerizate, precum Internetul. Acest tip de activitate comercială poate reprezenta atât achiziționarea produselor electronice, cum ar fi aplicațiile software, muzică, filme sau cărți în format electronic, care pot fi utilizate imediat după încheierea tranzacției, întrucât clientul are acces la ele instant, dar și a produselor palpabile, care necesită procesarea comenzii și livrarea acestora. La comerțul electronic pot lua parte atât persoanele fizice, cât și persoanele juridice, dar și statul prin instituțiile sale, în funcție de participanți luând naștere mai multe categorii, precum comerțul business-to-business, în care părțile participante sunt reprezentate de companii sau organizații, business-to-consumer, caz în care persoanele fizice achiziționează bunuri sau servicii de la companii, consumer-to-consumer, al cărui specific este acela că ambele părți implicate în tranzacție sunt persoane fizice, caz foarte bine reprezentat de site-urile de specialitate Ebay sau Olx, dar și e-government, care presupune interacțiunea dintre guvern și cetățeni. Deși încă se mai lucrează la capitolul securitate, în ceea ce privește plata pentru produsele achiziționate online, acest serviciu a câștigat deja mare parte din piață, datorită beneficiilor pe care le aduce atât pentru comercianți, care prin acesta se pot extinde pe piețe noi, distanța nemaifiind un obstacol pentru întreprinderea relațiilor comerciale, cât și pentru clienți, pentru care cumpărăturile au devenit mai ușoare și mai rapide.
Din perspectiva utilizatorului casnic, tehnologia informației reprezintă, în primul rând, o sursă de informare. Acest lucru se datorează atât faptului că mass-media furnizează informații electronice sub forma fluxului de știri, a site-urilor educaționale sau cursurilor online, cât și a reclamelor furnizate de multitudinea de companii care desfășoară campanii de promovare pe Internet. Noile tehnologii permit accesarea, stocarea și transmiterea informației din ce în ce mai ușor, informația devenind resursă cheie pentru economia digitală, întrucât poate fi transformată în noi valori economice și sociale, creând imense oportunități pentru dezvoltarea de noi produse și servicii.
O funcționalitate importantă o reprezintă serviciile de localizare online (Online Locator Services), utilizate pentru comunicarea informațiilor specifice celor interesați, atunci când se află într-o anumită zonă sau când aleg să primească informații specifice unei anumite locații. Aplicațiile de acest gen sunt folosite în general de către lanțurile de restaurante, grupuri de magazine sau lanțuri hoteliere, dar și alte tipuri de afaceri, cu scopul de a informa utilizatorii interesați de obținerea locației exacte și de alte tipuri de informații referitoare la elementele aflate într-o anumită zonă, precum date de contact, program de lucru, servicii oferite și uneori chiar și îndrumare către adresa respectivă. De cele mai multe ori, aplicațiile de acest tip utilizează servicii ca Google Maps, Bing Maps sau Map Quest pentru a permite utilizatorilor săi să vizualizeze pe hartă unde se găsesc punctele de interes. Pentru a identifica locația curentă a utilizatorilor, aceste servicii pot folosi atât localizarea prin verificarea codului poștal, cât și pe cea bazată pe IP-ul calculatorului de pe care sunt accesate, cea de-a doua metodă fiind mai rapidă, prin prisma faptului că utilizatorul nu trebuie să specifice codul poștal sau să întreprindă vreo altă acțiune, dar având dezavantajul că acesta poate să blocheze funcția de localizare a aplicației.
Serviciile de localizare sunt folosite în foarte multe tipuri de aplicații. În primul rând, companiile multinaționale folosesc acest tip de servicii pentru o mai bună interacțiune cu utilizatorul, pe baza determinării locației acestuia putând opta pentru diferite setări și funcții în ceea ce privește limba în care este scris conținutul afișat pe pagină, respectarea normelor și legislației privind tranzacțiile sau conținutul afișat dintr-o anumită țară, modalitatea de promovare a produselor și serviciilor oferite, în funcție de context. Marile lanțuri de magazine, precum Walmart sau Inditex, hoteluri, ca Hilton și Marriott, sau lanțurile de restaurante, precum Subway, toate acestea folosesc serviciile de localizare pentru îmbunătățirea desfășurării afacerilor și a interacțiunii cu utilizatorii. La toate acestea se adaugă și motoarele de căutare Google, Bing sau site-urile de socializare, precum Facebook sau Twitter, care folosesc localizarea utilizatorilor pentru o regăsire eficientă și cât mai rapidă a datelor.
Pe lângă acest mod de utilizare al serviciilor de localizare prin internet, există și o variantă de aplicații de tip agregator, cu rol de stocare și regăsire a unor produse și servicii din aceeași categorie, aparținând mai multor producători sau companii, localizate în general pe o arie mai restrânsă. Exemple ale acestui tip de implementare a localizării online sunt aplicațiile de transport, precum Uber, care regăsesc șoferii afiliați aflați în apropierea locației clientului, Star Taxi, prin intermediul căreia utilizatorii pot vizualiza pe hartă și alege un șofer dintr-o listă care îi cuprinde pe aceia de la mai multe companii din România, aplicațiile de agregare a ofertelor aparținând restaurantelor, așa cum este Food Panda, dar și cele care oferă sau o listă a magazinelor dintr-un anumit oraș sau regiune, după criterii precum categoria, tipul de servicii oferite sau program de funcționare, și nu neapărat după grupul comercial din care fac parte respectivele, un exemplu de acest tip fiind aplicația pentru dispozitive inteligente, Magazoo.
Este evident impactul pozitiv al acestui tip de serviciu și al aplicațiilor care îl implementează, scopul acestora fiind acela de a îmbunătăți interacțiunea client-serviciu, de a realiza o promovare orientată pe client și pe specificul individual al fiecăruia și de a eficientiza activitatea economică, iar în același timp utilizatorii se bucură de un timp redus de căutare a rezultatelor dorite, dar și de o mai bună regăsire a acestora. Cu toate acestea, în ultimii ani au apărut și multe probleme legate de securitate și de o lipsă a intimității utilizatorilor, mulți dintre aceștia fiind nemulțumiți de faptul că prin intermediul dispozitivelor pe care le utilizează, fie că e vorba despre calculator, fie că vorbim despre telefoane și ceasuri inteligente, aplicațiile de acest tip le înregistrează fiecare mișcare.
CAPITOLUL 2
ANALIZA SISTEMULUI INFORMATIC
2.1 Descrierea cerințelor sistemului informatic
În condițiile extinderii continue a municipiului București, capitala și în același timp cel mai mare oraș al țării, cu o suprafață de peste 220 km², devine din ce în ce mai greu pentru locuitorii acestuia, dar mai ales pentru turiști și pentru studenții din provincie să localizeze punctele comerciale de interes. De asemenea, ținând cont de stilul de viață dezorganizat al tinerilor, dar și de faptul că în ultimii 25 de ani România a dezvoltat relații economice și comerciale cu state din toate colțurile lumii, relații care implică deseori un program de lucru atipic pentru românii care lucrează pentru companiile străine, este o realitate faptul că multe persoane duc un stil de viață nocturn. În această situație, multe activități ale vieții cotidiene, printre care și cumpărăturile, sunt întreprinse de o proporție mare a populației în timpul nopții. Deși în București au început să se înmulțească punctele comerciale cu program non-stop, multă lume întâmpină dificultăți în a le localiza, din cauza întinderii mari a orașului. Astfel, aplicația realizată în cadrul acestui proiect vine în ajutorul acestor persoane, având ca obiective gestionarea punctelor comerciale cu program non-stop adăugate de utilizatorii acesteia și furnizarea de informații pentru localizarea acestora, inclusiv vizualizarea lor pe hartă.
În cadrul aplicației, vizitatorii pot afla locația punctelor comerciale cu program non-stop, le pot căuta pe cele mai apropiate, în funcție de adresa acestora sau le pot filtra în funcție de categoria pentru care prezintă interes. Toate informațiile pot fi vizualizate în cadrul unei hărți, pentru o localizare cât mai precisă decât în cazul în care ar fi specificată doar adresa. Pentru ca informațiile să fie cât mai numeroase și mai precise, orice vizitator care își creează un cont poate contribui cu informații, inserând noi puncte comerciale în baza de date. Inserarea informațiilor se face prin alegerea locației pe hartă, prin specificarea numelui punctului comercial și prin alegerea categoriei din care face parte acesta. Totuși, pentru a evita introducerea de date incorecte de către utilizatorii neatenți sau rău intenționați, toate punctele comerciale adăugate de către aceștia sunt verificate de unul dintre utilizatorii cu statut de administrator înainte de a fi adăugate în baza de date. În cazul în care un utilizator continuă să adauge informații greșite, contul său va fi închis și astfel i se va interzice acest privilegiu. Pe lângă verificarea corectitudinii datelor, administratorii pot vedea și alte informații, precum o listă cu toți utilizatorii și toate datele lor (nume, adresă de e-mail, timpul scurs de la înregistrarea sa și până în prezent, numărul de puncte adăugate pe hartă și numărul de avertismente primite ca urmare a introducerii unor date incorecte). De asemenea, ei pot lua decizia de a promova un utilizator la rangul de administrator, în funcție de ce consideră a fi relevant (vechime pe site, contribuție mare la extinderea bazei de date, prin introducerea unui număr mare de informații) și pot accesa și grafice sugestive pentru desfășurarea activității pe site. Interfața aplicației este una simplă și ușor de utilizat, design-ul este ales astfel încât să fie sugestiv pentru fiecare pagină în parte, în funcție de operațiunea efectuată, aspectul este unul modern, dar nu foarte încărcat, iar culorile sunt alese astfel încât să nu fie obositoare pentru utilizatorii aplicației.
Deși ideea aplicației este una nouă prin prisma categoriei informațiilor conținute și a categoriei de clienți căreia i se adresează, în prezent există mai multe aplicații care funcționează pe același principiu, având rolul de a afișa locația anumitor puncte de interes, cum ar fi magazine, restaurante sau bancomate.
Zomato este un site dezvoltat în India, care permite căutarea și afișarea pe hartă a restaurantelor din 22 de țări, printre care se numără Statele Unite ale Americii, Canada, Marea Britanie sau Africa de Sud. Acest site folosește hărțile furnizate de Open Street Map pentru a afișa rezultatele căutării, care se face în funcție de oraș, categorie de mâncare sau bucătăria tradițională, dacă restaurantul este unul cu specific. Odată realizată filtrarea, harta este populată cu marcaje, prin accesarea cărora putem vedea informații despre programul de lucru, adresa, moneda acceptată pentru plată și o medie a notelor acordate de către clienți.
Figura 1. 1 – Captură de ecran Zomato
O altă aplicație similară o reprezintă Caut ATM, o aplicație pentru telefoanele mobile care folosesc sistemul de operare Android. În cadrul acesteia, utilizatorii pot căuta bancomate aparținând diferitelor bănci, iar în urma procesării căutarii, le pot vizualiza pe o hartă, alături de alte informații suplimentare. Aplicația utilizează hărțile Google Maps pentru a afișa locația bancomatelor, iar ca și criterii de filtrare există opțiunea de selectare doar a unei anumite bănci, selecția unui anumit oraș sau a unei adrese specifice. De asemenea, o altă funcționalitate importantă a acestei aplicații este afișarea celor mai apropiate bancomate față de utilizator, utilizând localizarea prin GPS.
Figura 1. 2 – Captură de ecran Caut ATM
Aplicația care se aseamănă cel mai mult cu cea realizată în cadrul proiectului este tot o aplicație destinată smartphone-urilor care folosesc sistemul de operare Android, numită Magazoo. Aceasta gestionează magazinele din municipiul București, acesta fiind un punct comun al celor două aplicații, cu diferența că cea realizată în acest proiect cuprinde nu doar magazine, ci și alte activități comerciale, precum restaurante, baruri, cazinouri, centre de printare și alte categorii. O altă diferență fundamentală este că cea din urmă gestionează doar punctele comerciale cu program de funcționare non-stop, în timp ce Magazoo cuprinde toate magazinele, având posibilitatea de a le filtra în funcție de programul de lucru, dar și după alte criterii, cum ar fi modalitatea de plată.
Figura 1. 3 – Captură de ecran Magazoo
2.2 Diagrame UML
2.2.1 Diagrama generală a cazurilor de utilizare
Cu ajutorul diagramelor cazurilor de utilizare, vor fi identificate și modelate cerințele funcționale avute în vedere în cadrul realizării sistemului informatic. Diagramele redau modul în care sistemul va fi utilizat prin reprezentarea părților interesate prin actori și a acțiunilor ce se doresc a fi întreprinse prin intermediul cazurilor de utilizare.
Figura 2. 1 – Diagrama generală a cazurilor de utilizare
2.2.2 Diagramele cazurilor de utilizare și descrierea textuală a acestora
Figura 2. 2 – Diagrama cazului de vizualizare a marcajelor
Tabel 1 – Descrierea textuală a cazului de vizualizare
Figura 2. 3 – Diagrama cazului de adăugare a marcajelor
Tabel 2 – Descrierea textuală a cazului de administrare
Figura 2. 4 – Diagrama cazului de administrare
Tabel 3 – Descrierea textuală a cazului de administrare
2.2.3 Diagrama de clase
Realizarea diagramei de clase urmărește descrierea structurii sistemului informatic, prin reprezentarea claselor acestuia și relațiilor dintre ele.
Figura 2. 5 – Diagrama de clase
2.2.4 Diagrame de activitate
Figura 2. 6 – Diagrama de activitate pentru vizualizarea punctelor comerciale
Diagramele de activitate au rolul de a descrie aspectele dinamice ale sistemului informatic, prin reprezentarea activităților și a fluxurilor dintre ele. Vizualizarea punctelor comerciale presupune accesarea aplicației, cu scopul regăsirii informațiilor necesare. În funcție de dorința persoanei care accesează aplicația, rezultatele pot fi filtrate în funcție de mai multe criterii, cum ar fi categoria din care fac parte punctele comerciale, numele sau adresa acestora.
Figura 2. 7 – Diagrama de activitate pentru adăugarea punctelor comerciale
Adăugarea punctelor comerciale presupune în primul rând crearea unui cont de utilizator sau conectarea printr-un cont existent, pentru ca persoana care accesează aplicația să poată adăuga un nou marcaj, iar apoi alegerea pe hartă a locației punctului comercial ce urmează a fi adăugat, specificarea categoriei, dar și a numelui, dacă este cunoscut, în caz contrar sistemul atribuind un nume implicit înregistrării.
Figura 2. 8 – Diagrama de activitate pentru administrare
Administrarea punctelor comerciale presupune accesarea paginii de administrare, în cazul în care utilizatorul respectiv are această permisiune. În această secțiune a aplicației, administratorul poate confirma sau șterge marcajele adăugate de către utilizatori, poate șterge utilizatorii sau îi poate promova la rangul de administrator și poate vizualiza graficele referitoare la marcajele existente în baza de date, realizate în funcție de categoria din care fac parte sau în funcție de data adăugării în sistem.
2.2.5 Diagrame de stare
Figura 2. 9 – Diagrama de stare pentru marcaje
Diagrama de stare este utilizată pentru a reprezenta stările în anumite momente ale unei componente a sistemului informatic. În diagrama de stare pentru marcaje sunt reprezentate stările unei instanțe a clasei ce definește conceptul de marcaj. Astfel, un obiect este creat de către utilizator, ceea ce implică adăugarea sa în tabele de marcaje, cu statut de marcaj neconfirmat. În momentul în care un administrator verifică marcajele neconfirmate, acesta analizează corectitudinea datelor introduse și, în funcție de acest criteriu, marcajul respectiv va fi șters sau confirmat.
CAPITOLUL 3
PROIECTAREA SISTEMULUI INFORMATIC
3.1 Rafinarea diagramei UML de clase
Figura 3. 1 – Diagrama de clase detaliată
Diagrama detaliată de clase este utilizată pentru a reprezenta componenetele sistemului informatic prin clasele sale, dar și prin atributele și metodele specifice fiecăreia. Clasa DB este o clasă de tip singleton realizată pentru a facilita interacțiunea cu sistemul de gestiune a bazelor de date utilizat în cadrul acestui proiect. Prin utilizarea atributelor și metodelor acestei clase, se pot efectua operații asupra tabelelor din baza de date și asupra rezultatelor interogărilor efectuate. Clasele User și Marker utilizează metode proprii și metode din clasa DB pentru crearea sau administrarea utilizatorilor și a marcajelor, dar și pentru implementarea anumitor funcționalități ale sistemului informatic, clasele Session și Cookie au rolul de a administra sesiunile și cookie-urile ce aparțin utilizatorilor, iar clasele Input, Token și Validation sunt utilizate pentru a asigura securitatea și integritatea datelor trimise de utilizatori către server.
3.2 Proiectarea bazei de date
În cadrul acestei etape, pornind de la rezultatele obținute în urma analizei sistemului informatic, se realizează modelarea cerințelor privind datele. Proiectarea conceptuală a bazei de date implică realizarea unui model al informațiilor ce urmează a fi utilizate de către aplicație.
Figura 3. 2 – Schema conceptuală a bazei de date
Aplicația folosește cinci tabele: Utilizatori, Sesiuni, Ranguri, Marcaje și Categorii.
Tabela Utilizatori este folosită pentru a gestiona conturile utilizatorilor aplicației. Cheia primară a tabelei este câmpul id, folosit pentru a identifica în mod unic utilizatorii. Câmpurile nume și email reprezintă detaliile furnizate de utilizator la înregistrare, în timp ce câmpul parola reprezintă o secvență rezultată în urma unei codificări realizate de către sistem în momentul înregistrării prin aplicarea algoritmului de criptare MD5 asupra parolei introduse de către utilizator concatenate cu valoarea câmpului salt. Câmpul id_rang este cheie externă către tabela Ranguri, prin intermediul căreia putem stabili rangul unui utilizator, câmpul creat reprezintă data inserării fiecărei înregistrări în tabelă (echivalentă cu înregistrarea unui nou utilizator), iar câmpul salt este o secvență de caractere generată în interiorul aplicației, folosită pentru criptarea parolei utilizatorului, pentru un nivel ridicat de securitate. Câmpul marcaje_adaugate are inițial valoarea 0, valoare ce este incrementată de fiecare dată când administratorul confirmă un marcaj adăugat de utilizatorul respectiv, iar câmpul avertismente crește de fiecare dată când administratorul șterge un marcaj adăugat de utilizator.
Tabela Ranguri este folosită pentru a gestiona statutul utilizatorilor, care poate avea două valori: administrator și utilizator. Cheia primară a tabelei o reprezintă câmpul id, care face legătura cu câmpul id_rang din tabela Utilizatori. Câmpul rang conține denumirea rangului utilizatorului, iar câmpul permisiuni conține permisiunile de care beneficiază un utilizator. În ceea ce privește relația dintre tabelele Utilizatori și Ranguri, aceasta este una de tip unu-la-mai-mulți, deoarece un utilizator poate avea un singur rang, rang care poate fi însă deținut de mai mulți utilizatori.
Sesiuni este o tabelă folosită pentru a gestiona sesiunile deschise de către utilizatori, atunci când aceștia aleg să rămână autentificați și după închiderea aplicației, cu scopul de a nu fi nevoiți să reintroducă datele de autentificare de fiecare dată când o accesează. Cheia primară o reprezintă câmpul id, câmpul id_utilizator reprezintă cheia externă către tabela Utilizatori, iar câmpul hash conține un șir de caractere generat de aplicație pentru identificarea utilizatorului. Relația dintre tabele este de tip unu-la-unu, astfel încât un utilizator poate avea o singură sesiune, iar o sesiune corespunde unui singur utilizator.
Tabela Categorii este folosită pentru a identifica din ce categorie face parte fiecare punct comercial prezent în baza de date. Tabela conține trei câmpuri: id este folosit pentru a identifica în mod unic categoriile, fiind cheia primară a tabelei, câmpul categorie reprezintă denumirea categoriei respective, iar câmpul icon conține calea către imaginea de reprezentare a categoriei pe hartă.
Tabela Marcaje reprezintă tabela în care sunt stocate punctele comerciale care urmează a fi afișate pe hartă în urma interacțiunii utilizatorilor cu aplicația. Cheia primară a aplicației este câmpul id, câmpul denumire reprezintă numele deținut de punctul comercial, câmpul adaugat reține data și ora adăugării marcajului în baza de date, câmpurile lat și lng reprezintă coordonatele punctului comercial, pe baza cărora se va face localizarea acestuia pe hartă, iar câmpul adresa reprezintă rezultatul returnat de algoritmul de geocodare inversă din cadrul API-ului Google Maps, pe baza căruia putem determina adresa unui punct cu anumite coordonate. Pe baza valorii câmpului confirmat, se stabilește dacă un administrator și-a dat acordul asupra unui marcaj adăugat în baza de date, valoarea 0 arătând faptul că marcajul nu este confirmat, deci nu va fi afișat pe hartă, iar 1 că administratorul a confirmat înregistrarea. Câmpurile id_categorie și id_utilizator sunt chei externe prin care sunt realizate relațiile dintre tabela Marcaje și Categorii, respectiv Utilizatori. Astfel, din relația Marcaje – Categorii putem determina din ce categorie face parte un anumit punct comercial, iar din relația Marcaje – Utilizatori se stabilește ce utilizator a adăugat punctul comercial respectiv în baza de date. Ambele relații sunt de tipul unu-la-mai-mulți, deoarece un punct comercial poate fi adăugat de către un singur utilizator, dar un utilizator poate adăuga mai multe marcaje pe hartă, iar în cazul categoriilor, un punct comercial poate aparține unei singure categorii, dar o categorie poate cuprinde mai multe puncte comerciale.
CAPITOLUL 4
IMPLEMENTAREA SISTEMULUI INFORMATIC
4.1 Descrierea tehnologiilor informatice utilizate
4.1.1 Limbajul HTML
Limbajul HTML (HyperText Markup Language) este un limbaj de marcare folosit pentru crearea paginilor web, în vederea afișării acestora într-un browser, care se bazează pe Limbajul Generalizat Standard de Marcare. Limbajul a fost dezvoltat în anul 1993 de către Consorțiul Web (World Wide Web Consortium, cunoscut și ca W3C) și în prezent se află la versiunea 5.
Documentele HTML sunt formate din etichete folosite de către browser pentru a interpreta conținutul paginilor și sunt structurate în două părți: antetul (eticheta „head”), care conține informații despre document sau legături către fișiere externe de stilizare sau scripturi, și corp (eticheta „body”), care cuprinde conținutul efectiv ce va fi afișat pe pagină. Majoritatea elementelor HTML sunt formate din perechi de etichete, de deschidere și de închidere, precum cele pentru marcarea unui paragraf (<p></p>), dar există și elemente formate dintr-o singură etichetă, așa cum este cel folosit pentru marcarea unei imagini (<img/>) sau a unei linii orizontale (<hr/>).
4.1.2 Limbajul CSS
Limbajul CSS (Cascade Styling Sheets) este un limbaj de stilizare care poate fi folosit împreună cu limbajul HTML, pentru formatarea elementelor documentului. De asemenea, poate fi folosit și pentru formatarea documentelor XHTML, XML și SVGL. Stilurile se pot atașa în interiorul documentului HTML, utilizând perechea de etichete <style></style> sau atributul style, dar și cu ajutorul unor fișiere externe. Avantajul celei de-a doua metode o reprezintă faptul că astfel, pot fi aplicate aceleași stiluri mai multor documente diferite, fără a fi nevoie să le definim pentru fiecare în parte. Ca și ordine a priorității în interpretarea de către navigator, pe primul loc se află stilizarea cu ajutorul atributului style (metodă inline), care este aplicată chiar dacă este definit un stil în interiorul etichetelor <style></style>. Ultima metodă ca și ordine de interpretare este fișierul extern, ale cărui proprietăți se aplică documentului doar în cazul în care nu este realizată o stilizare prin cele două metode interne.
4.1.3 Limbajul Javascript
Javascript este un limbaj de programare multi-paradigmă cross-platform dezvoltat de compania Netscape Communications Corporation, folosit mai ales pentru crearea de funcționalități în paginile web. Javascript poate fi folosit atât pentru aplicații de tip client, pentru realizarea de scripturi în documentul HTML, cât și pentru aplicații de tip server, pentru a putea realiza conexiuni la baza de date sau pentru a manipula fișierele de pe server. Deși are multe similarități de sintaxă față de limbajul Java, cele două limbaje nu au vreo legătură, în ciuda asemănării numelor celor două. Deși excelează la capitolele portabilitate, viteză și ușurință de implementare comparativ cu alte limbaje de programare, precum C și Java, Javascript are și unele părți negative, în special în ceea ce privește siguranța.
4.1.4 Limbajul PHP
PHP (Php: Hypertext Preprocessor) este un limbaj de web-scripting open-source, orientat pe partea de server, ce poate fi integrat în documentele HTML pentru realiza conexiunea dintre paginile web și server, dar poate fi folosit și în crearea de aplicații independente. PHP poate fi folosit pentru a accesa majoritatea sistemelor de gestiune a bazelor de date, cel mai frecvent fiind utilizat împreună cu MySQL, dar oferind posibilitatea de a lucra și cu baze de date Oracle, SQL Server sau PostgreSQL.
Tipurile de date utilizate de acest limbaj de programare pot fi logice (Boolean), numerice întregi (Integer) în baza 10, 2 sau 16, ce pot fi cu semn sau fără semn, numerice reale (Float), șiruri de caractere (String), vectori (Array) sau obiecte.
Unul dintre avantajele PHP este acela că limbajul este unul multi-paradigmă, putând fi utilizat atât în stil procedural, cât și în stil orientat pe obiecte sau într-o combinație a acestor stiluri. Un alt avantaj foarte important este că limbajul este unul de tip open-source, ceea ce permite o detectare și o remediere rapidă a erorilor, dat fiind faptul că orice dezvoltator poate contribui la îmbunătățirea funcționalităților acestuia, ceea ce duce la o stabilitate ridicată a limbajului. De asemenea, ținând cont de faptul că PHP este un limbaj multi-platformă, dezvoltatorii pot îl pot utiliza indiferent de sistemul de operare în care lucrează. Alt avantaj pe care îl oferă limbajul PHP este relaționarea facilă cu bazele de date relaționale și cu serverele web, printre care putem aminti Apache sau Microsoft IIS.
În același timp, însă, caracterul open-source al PHP poate deveni un mare dezavantaj, deoarece le poate oferi posibilitatea persoanelor rău intenționate să afle vulnerabilitățile limbajului. Alt dezavantaj îl constituie faptul că variabilelelor nu li se specifică un anumit tip de date la declarare, ceea ce poate duce la erori în cadrul conversiei implicite.
În comparație cu alte limbaje de programare, avantajele PHP ar fi acelea că poate fi integrat mai ușor decât Java în documentele HTML și conectarea la baza de date se face într-un mod mai facil, iar dezavantajele sunt, în primul rând, viteza de execuție față de Java sau C, limitarea în ceea ce privește seturile de caractere (Java are o colecție mai bogată de caractere) dar și faptul că în limbaje precum Java sau C# există un management al memoriei mai bine dezvoltat.
4.1.5 MySQL
MySQL este un sistem de gestiune a bazelor de date relaționale dezvoltat de compania suedeză MySQL AB, folosit cu precădere împreună cu limbajul PHP, cu toate că poate fi folosit pentru a dezvolta sisteme informatice în toate limbajele importante, precum C, C++, Java, C# sau Python. MySQL este un produs informatic open-source, oferit gratuit în condițiile Licenței Generale Publice GNU. MySQL face parte din stiva de soluții software open-source LAMP (Linux, Apache, MySQL, Perl/PHP/Python).
În comparație cu Oracle și SQL Server, două dintre cele mai populare sisteme de gestiune al bazelor de date, MySQL are marele avantaj al accesibilității, deoarece este oferit gratuit dezvoltatorilor, sub termenii Licenței GNU, dar și avantajul portabilității, spre deosebire de SQL Server care este compatibil doar cu Windows sau de Oracle, care, deși poate fi folosit pe multe dintre sistemele de operare cunoscute, nu poate fi utilizat în Symbian, BSD sau Amigo. Printre celelalte avantaje ale MySQL se numără interfața grafică simplă și prietenoasă, dar și calitatea și metodele de suport oferite. Totuși, deși MySQL excelează la capitolul viteză, Oracle sau SQL Server oferă o gamă mai largă de funcționalități pentru aplicațiile de tip enterprise, capitol la care MySQL are limitări semnificative.
4.1.6 Google Maps API
Un API (engleză: Application Programming Interface) reprezintă un set de reguli, specificații și instrumente utilizate pentru dezvoltarea de aplicații software. Conține librării, funcții și instrucțiuni necesare realizării aplicațiilor bazate pe acest API.
Google Maps API este un API lansat în anul 2005 de către Google, prin intermediul căruia dezvoltatorii pot integra serviciul Google Maps în aplicațiile lor. Serviciul este gratuit și nu afișează reclame, în limita a 25000 de afișări a hărții pe domeniu în fiecare zi. API-ul este dezvoltat folosind limbajul Javascript și poate fi utilizat în aplicațiile web doar după obținerea unei chei de acces, cheie care este folosită pentru monitorizarea aplicației și eventual, furnizarea de informații de către Google. Astfel, implementând serviciul Google Maps, dezvoltatorii pot customiza harta, adaptând la nevoile și cerințele lor controalele, evenimentele și opțiunile hărții.
4.2 Implementarea funcționalităților sistemului informatic
Implementarea funcționalităților sistemului informatic realizat în cadrul acestui proiect a fost realizată în trei etape, prima reprezentând crearea bazei de date și a tabelelor, cea de-a doua crearea funcționalităților server-side, utilizând limbajul PHP, iar ultima, realizarea interfeței grafice a aplicației, cu ajutorul tehnologiilor HTML, CSS, Javascript și prin implementarea Google Maps API.
Crearea bazei de date a fost realizată vizual, prin accesarea interfeței phpMyAdmin, unde am avut la dispoziție toate instrumentele necesare pentru definirea tabelelor, respectând structura realizată la capitolul de proiectare a sistemului informatic. Toate câmpurile au fost construite conform planului, iar proprietățile au fost atribuite fiecăruia astfel încât să respecte cerințele sistemului informatic.
Figura 4. 1 – Crearea bazei de date
În ceea ce privește back-end-ul sistemului, primul lucru avut în vedere a fost crearea unui fișier de inițializare, care va fi inclus în fiecare fișier și care are rolul de a încărca automat clasele necesare, dar și variabilele globale în care vor fi salvate datele de conectare la baza de date.
Figura 4. 2 – Fișierul de inițializare
Prima clasă creată este clasa Config.php, clasă ce conține o metodă statică utilizată pentru accesarea componentelor variabilei globale de configurare. Metoda primește ca parametru calea componentei necesare și returnează valoarea acesteia din variabila globală.
Figura 4. 3 – Clasa Config
Pentru implementarea operațiilor de manipulare a datelor, a fost creată clasa DB.php, în cadrul căreia au fost definite metodele necesare pentru realizarea interogărilor, inserarea datelor în baza de date, modificarea sau ștergerea acestora. În crearea acestei clase s-a utilizat design pattern-ul Singleton, ceea ce presupune că nu pot exista simultan mai multe instanțe ale clasei care să efectueze operații asupra bazei de date. În constructorul clasei, se realizează conexiunea la baza de date, iar obiectul de tip PDO (PHP Data Object) rezultat în urma acestei conexiuni este salvat în atributul pdo al clasei. Metoda statică getInstance este utilizată pentru a verifica dacă există o instanță a clasei sau este necesară crearea uneia noi, respectând principiile Singleton.
Figura 4. 4 – Constructorul clasei DB și metoda getInstance
Pentru implementarea operațiilor a fost realizată în primul rând o metodă generală de construire a unui query, metodă ce primește ca parametri secvența de cod SQL și un vector care conține criterii de filtrare sau câmpurile vizate de instrucțiunea respectivă. Metoda action este utilizată pentru interogări și ștergerea înregistrărilor din baza de date și primește ca parametri operația efectuată (select sau delete), tabelul asupra căruia se efectuează operația și un vector ce conține criteriul de filtrare, operatorul de comparație și valoarea comparată. Metodele get și delete sunt metode specifice pentru select și delete, rezultate din utilizarea metodei generale action.
Figura 4. 5 – Metodele query, action, get și delete
Metodele update și insert folosesc metoda query, construită anterior și sunt utilizate pentru construirea codului SQL cu ajutorul căruia se realizează inserarea și modificarea datelor din tabele.
Pentru preluarea datelor din formularele de înregistrare, autentificare sau adăugare a marcajelor, a fost implementată clasa Input, prin intermediul căreia putem verifica tipul formularelor și dacă în acestea au fost introduse valori, cu ajutorul metodei exists, și putem prelua valorile introduse de către utilizatori, prin metoda get. Pentru validarea datelor introduse în formulare, a fost creată clasa Validation, ce conține metoda check, prin intermediul căreia se verifică dacă sunt respectate condițiile stabilite pentru fiecare componentă a formularelor, cum ar fi constrângerea ca o valoare introdusă să conțină un număr minim sau maxim de caractere, să fie unică într-un anumit context sau să aibă un anumit format.
Figura 4. 6 – Metoda get din clasa Input
Figura 4. 7 – Metoda check din clasa Validation
Clasa User.php este utilizată cu scopul de a îngloba metodele necesare pentru implementarea funcționalităților de care dispune un utilizator. Astfel, prin apelarea constructorului acestei clase, se pornește sesiunea utilizatorului respectiv și se crează instanța pentru clasa DB. Printre metodele specifice acestei clase se regăsesc metoda create, utilizată pentru inserarea datelor în baza de date și crearea unui nou utilizator, metoda login, utilizată pentru autentificarea utilizatorului, după verificarea corectitudinii datelor introduse, metoda logout, prin intermediul căreia se șterge sesiunea curentă și cookie-ul, în cazul în care există unul, metoda update, utilizată pentru modificarea detaliilor unui utilizator și metoda hasPermission, prin intermediul căreia se verifică dacă un anumit utilizator este administrator sau nu.
Figura 4. 8 – Constructorul clasei User și metoda create
Figura 4. 9 – Metodele de autentificare și deconectare pentru clasa User
Asemănător clasei User a fost creată și clasa Marker.php, utilizată pentru gestionarea marcajelor existente în baza de date sau a celor ce urmează a fi adăugate. În constructorul acestei clase se crează o nouă instanță a clasei DB, prin intermediul metodei create se preiau datele introduse de utilizator și sunt introduse în tabela Marcaje, iar cu ajutorul metodei data, proprietățile obiectului sunt accesate mai ușor.
Pagina de înregistrare a utilizatorilor și cea de autentificare a fost creată utilizând limbajele HTML, CSS și Javascript, iar operațiile asupra bazei de date necesare pentru implementarea acestei funcționalități au fost realizate în limbajul PHP, utilizând clasele descrise anterior. Astfel, prin intermediul clasei Input au fost preluate datele din formularele celor două pagini, iar prin utilizarea clasei Validation.php, a fost verificată corectitudinea acestor date.
Figura 4. 10 – Verificarea datelor introduse
Pentru înregistrarea utilizatorilor s-a utilizat clasa Hash.php, ale cărei metode utilizează funcția mcrypt_create_iv pentru generarea unui șir de caractere și funcția de criptare hash pentru codificarea parolei specificate de către utilizator.
Figura 4. 11 – Clasa Hash
Vizualizarea informațiilor profilului fiecărui utilizator și modificarea parolei acestuia a fost realizată utilizând clasele prezentate anterior, pentru schimbarea parolei fiind necesare clasele User, Input, pentru preluarea datelor din formular, și Validation, pentru verificarea datelor introduse. Dacă acestea sunt corecte, următorul pas în modificarea parolei este apelarea metodei update, din clasa User, prin care vechea parolă este înlocuită cu cea rezultată prin criptarea noii parole specificate de utilizator.
Pagina pentru adăugare a marcajelor în baza de date conține un canvas pe care este afișată harta și un formular în care utilizatorul specifică numele punctului comercial și alege categoria acestuia. Pentru implementarea acestei funcționalități, am utilizat Google Maps API, importând script-ul oferit de acesta, prin intermediul căruia am reușit să salvez coordonatele punctului dorit de utilizator într-un formular, inserarea acestora în baza de date fiind efectuată prin citirea formularului într-un script PHP. De asemenea, tot într-un input din formular am salvat adresa punctului selectat, folosind algoritmul de geocodare din cadrul API-ului. Câmpurile în care se salvează latitudinea și longitudinea sunt invizibile, iar cel în care este salvată adresa este read-only, pentru a evita situațiile în care utilizatorii modifică manual aceste date.
Figura 4. 12 – Funcția de geocodare și salvarea coordonatelor în formular
Figura 4. 13 – Adăugarea marcajului în baza de date
Pe pagina principală a aplicației, index.php, sunt afișate pe harta Google toate punctele comerciale din baza de date și informații legate de acestea. De asemenea, aici există și posibilitatea filtrării rezultatelor în funcție de categorie, nume sau adresă. Pentru implementarea acestei funcționalități a fost utilizat API-ul Google Maps. Astfel, pentru afișarea hărții în pagina web, este necesară crearea unui canvas care va conține harta și crearea funcției initialize, utilizată pentru setarea opțiunilor hărții, precum locația centrului acesteia, zoom sau prezența controalelor. De asemenea, tot în corpul funcției initialize a fost creată posibilitatea salvării locației curente a utilizatorului, după ce acesta își dă acordul, caz în care centrul hărții va fi reprezentat de poziția sa actuală.
Figura 4. 14 – Inițializarea hărții și salvarea poziției utilizatorului
Pentru afișarea marcajelor pe hartă am realizat o interogare asupra bazei de date, datele fiecărui marcaj le-am salvat în câte un obiect Javascript, obiectele fiind la rândul lor salvate într-un vector de obiecte de tip marcaj. Interogarea a fost realizată ținând cont de criteriile de căutare specificate de utilizator.
Figura 4. 15 – Preluarea marcajelor din baza de date
Figura 4. 16 – Crearea obiectelor și adăugarea în vector
Figura 4. 17 – Parcurgerea vectorului și afișarea marcajelor pe hartă
Pe pagina de administrare, confirmarea marcajelor se face prin bifarea check-box-ului fiecărui marcaj din listă și apăsarea butonului de confirmare, ceea ce determină apelarea funcției update asupra tabelului Marcaje, pentru modificarea atributului confirmat, dar și asupra tabelei Utilizatori, pentru incrementarea atributului marcaje_adaugate.
Figura 4. 18 – Confirmarea marcajelor
Funcțiile de desenare a graficelor au fost realizate în limbajul Javascript, prin utilizarea componentei canvas, iar datele pentru realizarea acestora au fost preluate din baza de date în limbajul PHP. Pentru desenarea histogramei categoriilor a fost calculată înălțimea necesară pentru fiecare componentă a graficului în funcție de numărul maxim de marcaje ce aparțin unei categorii, iar lățimea componentelor a fost calculată prin împărțirea dimensiunii elementului de tip canvas la numărul de categorii distincte.
Figura 4. 19 – Desenarea histogramei
Graficul adăugărilor din ultima săptămână se actualizează de la o zi la alta, prin utilizarea clasei Date, iar data pentru fiecare din cele șapte zile este calculată scăzând timpul dintre data curentă și zilele precedente. Înălțimea componentelor graficului a fost calculată în funcție de maximul de adăugări din cele șapte zile.
Figura 4. 20 – Funcția de desenare a graficului adăugării din ultimele șapte zile
În ceea ce privește interogarea bazei de date, pentru primul grafic a fost realizată în funcție de categorie, iar pentru al doilea în funcție de data adăugării marcajului, valorile zilelor precedente fiind calculate prin scăderea secundelor dintre zile. Valorile rezultate în urma interogării se salvează într-un formular invizibil, pentru a nu permite utilizatorului să le modifice, formular din care datele sunt preluate și date ca parametri funcțiilor de desenare a graficelor.
Figura 4. 21 – Interogarea tabelelor și salvarea rezultatelor în formular
CAPITOLUL 5
DESCRIEREA SISTEMULUI INFORMATIC
La accesarea aplicației, localizată la adresa http://www.florinmatei.coolpage.biz, se va deschide pagina principală a site-ului, care conține harta orașului București, populată cu toate punctele comerciale prezente în baza de date. Această pagină poate fi vizualizată de orice vizitator al site-ului, nefiind nevoie de crearea unui cont. În cazul în care persoana care accesează site-ul permite navigatorului să afle locația acesteia, centrul hărții din aplicație va fi poziția curentă, reprezentată de marcajul de culoare roșie, în caz contrar, centrul hărții urmând să corespundă centrului Bucureștiului. Marcajele de culoare neagră reprezintă punctele comerciale salvate în baza de date a aplicației, fiecăre categorie fiind simbolizată de o imagine diferită. La accesarea unuia dintre marcaje, se va deschide o fereastră cu informații referitoare la numele, categoria și adresa punctului comercial.
Figura 5. 1 – Captură de ecran cu pagina principală
De asemenea, în aceasta pagină a aplicației, vizitatorii sau utilizatorii pot căuta anumite puncte comerciale, în funcție de nume, categorie sau adresă. După specificarea criteriilor de filtrare și apăsarea butonului Caută, pagina se va reîncărca, iar pe hartă vor fi afișate doar marcajele corespunzătoare căutării.
Figura 5. 2 – Captură de ecran cu formularul de căutare
În cazul în care persoana care accesează site-ul dorește să își creeze un cont de utilizator, aceasta poate accesa formularul de înregistrare din partea dreaptă a paginii și, odată ajuns pe pagina de înregistrare, trebuie să furnizeze toate informațiile cerute în formular și să urmărească cu atenție eventualele avertismente primite din partea aplicației. Pentru ca datele specificate să fie validate, în vederea creării contului de utilizator, numele trebuie să aibă cel puțin 3 caractere și să fie unic în baza de date, adresa de e-mail introdusă trebuie să aibă un format specific și de asemenea să fie unică, iar parola trebuie să aibă cel puțin 4 caractere și să corespundă cu șirul de caractere introdus în chenarul de confirmare.
Figura 5. 3 – Captură de ecran cu formularul de înregistrare
Pentru a se autentifica, utilizatorul trebuie să acceseze formularul de autentificare, unde trebuie să introducă numele de utilizator și parola. Acesta are și posibilitatea de a bifa opțiunea „Nu mă deconecta”, pentru a nu fi nevoit să introducă datele de fiecare dată când pornește aplicația.
Figura 5. 4 – Captură de ecran cu formularul de autentificare
Odată autentificat, utilizatorul poate accesa pagina cu informațiile referitoare la profilul său, poate accesa formularul de modificare a parolei, se poate deconecta, iar în cazul în care are rang de administrator, poate accesa panoul de administrare.
Figura 5. 5 – Captură de ecran cu opțiunile utilizatorului
Pe pagina de profil a utilizatorului se regăsesc informații despre acesta și o histogramă a marcajelor adăugate de acesta, în funcție de categoria din care face parte fiecare punct comercial.
Figura 5. 6 – Captură de ecran cu pagina de profil a utilizatorului
Utilizatorul poate accesa pagina de adăugare a unui marcaj, unde trebuie să aleagă de pe locația punctului comercial, iar apoi să furnizeze informațiile cerute în formular: categorie și adresă. Marcajul de culoare roșie reprezintă poziția curentă a utilizatorului, în cazul în care acesta permite navigatorului să îl localizeze, iar marcajul de culoare albastră reprezintă poziția aleasă de acesta pentru a determina locația punctului comercial pe care dorește să îl adauge. După urmarea pașilor necesari, marcajul creat este adăugat în baza de date, dar nu este afișat pe pagina principală înainte de a fi confirmat de administrator.
Figura 5. 7 – Captură de ecran cu pagina de adăugare a unui marcaj
Pe pagina destinată utilizatorilor cu statut de administrator, aceștia pot verifica marcajele adăugate, pe care le pot confirma sau șterge și pot vedea o listă cu utilizatorii înregistrați, pe care îi pot promova la rangul de administrator sau îi pot șterge din baza de date.
Figura 5. 8 – Captură de ecran cu panoul de administrare
De asemenea, administratorii au la dispoziție două grafice pentru a analiza numărul de marcaje din baza de date, în funcție de categoria din care fac parte, dar și numărul de marcaje adăugate în ultima săptămână.
Figura 5. 9 – Captură de ecran cu histograma categoriilor
Figura 5. 10 – Captură de ecran cu graficul adăugărilor din ultimele șapte zile
CONCLUZII
Așa cum a reieșit din cercetarea făcută asupra domeniului, societățile comerciale manifestă nevoia extinderii în plan virtual a strategiei de marketing. Acest lucru a fost premisa de la care am demarat aplicația, iar proiectarea, implementarea și testarea acesteia au necesitat un volum mare de informații și deprinderi. Aceste deprinderi s-au materializat prin analiza și proiectarea sistemului informatic, realizându-se diagramele de clase, ale cazurilor de utilizare, de stare și de activitate, dar mai ales prin implementarea propriu-zisă a funcționalităților soluției informatice, fiind necesare atât cunoștințe de baze de date relaționale, cât și cunoștințe de dezvoltare a aplicațiilor web.
Între punctele forte ale soluției informatice implementate se regăsește caracterul de noutate al acesteia. De asemenea, faptul că orice utilizator are dreptul de a contribui la îmbunătățirea aplicației prin mărirea volumului de informații existente în baza de date reprezintă un alt avantaj al utilizării acesteia. Totuși, aspectul central al aplicației este reprezentat de faptul că utilizatorul primește informația într-un mod interactiv, obiectivele existente putând fi localizate geografic cu ajutorul serviciului Google Maps. Asigurarea calității aplicației poate fi identificată la nivelul interfeței, întrucât aceasta are un design prietenos și ușor de utilizat, precum și la nivel funcțional, deoarece fiecare obiectiv introdus de către utilizatori cu drepturi obișnuite trebuie verificat și confirmat de către utilizatorii cu drept de administrator.
Caracterul relativ general al soluției informatice permite dezvoltarea acesteia pe mai multe ramuri, aceasta putând fi îmbunătățită prin adăugarea unei serii de funcționalități. În primul rând, utilizatorul ar putea avea posibilitatea alegerii obiectivelor preferate în funcție de distanța față de poziția sa curentă, precum și în funcție de ușurința de acces la acestea. De asemenea, o altă funcționalitate ce ar putea fi implementată este posibilitatea salvării unei liste de obiective preferate. În acest fel, utilizatorul ar putea să își definească și salveze anumite obiective preferate, în funcție de natura economică a acestora, distanță sau alte caracteristici. O altă funcționalitate suplimentară pe care ar putea să o aibă această aplicație este implementarea unei soluții de calcul a rutei optime până la obiectivul dorit, cu ajutorul rețelei de metrou Metrorex și a Regiei Autonome de Transport București. În acest fel, orice utilizatorul obține informații legate nu doar de distanța până la punctul comercial la care dorește să ajungă, ci și de modul în care poate să o facă, beneficiind de serviciile de transport ale municipiului București. Beneficierea complementară a celor două servicii de transport aduce un plus de valoare soluției informatice, întrucât îi conferă un caracter versatil, adresându-se unui public țintă mai larg. În ultimul rând, în scopul fiecare dintre obiective ar putea fi însoțite de mai multe detalii, cum ar fi posibilitatea plății cu cardul prin serviciul POS, existența locurilor de parcare în curtea sau apropierea punctului comercial sau utilizarea tichetelor de masă pentru a achita produsele achiziționate, în cazul în care respectivul punct comercial oferă bunuri comerciale și nu servicii.
Așadar, deși soluția informatică gândită, proiectată și implementată în această lucrare științifică nu reprezintă o misiune de pionierat întrucât există deja aplicații mai mult sau mai puțin asemănătoare, caracterul de noutate adus precum și posibilitatea extinderii funcționalităților acestuia o transformă într-un proiect util, cu potențial, adresându-se unui public țintă larg și adaptându-se la cerințele acestuia prin interfață și funcționalități.
REFERINȚE BIBLIOGRAFICE
ANEXA I
LISTA FIGURILOR
CAPITOLUL 1 – UTILIZAREA SISTEMELOR INFORMATICE ÎN ECONOMIE
Figura 1. 1 – Captură de ecran Zomato 8
Figura 1. 2 – Captură de ecran Caut ATM 8
Figura 1. 3 – Captură de ecran Magazoo 9
CAPITOLUL 2 – ANALIZA SISTEMULUI INFORMATIC
Figura 2. 1 – Diagrama generală a cazurilor de utilizare 10
Figura 2. 2 – Diagrama cazului de vizualizare a marcajelor 10
Figura 2. 3 – Diagrama cazului de adăugare a marcajelor 11
Figura 2. 4 – Diagrama cazului de administrare 12
Figura 2. 5 – Diagrama de clase 13
Figura 2. 6 – Diagrama de activitate pentru vizualizarea punctelor comerciale 14
Figura 2. 7 – Diagrama de activitate pentru adăugarea punctelor comerciale 14
Figura 2. 8 – Diagrama de activitate pentru administrare 15
Figura 2. 9 – Diagrama de stare pentru marcaje 16
CAPITOLUL 3 – PROIECTAREA SISTEMULUI INFORMATIC
Figura 3. 1 – Diagrama de clase detaliată 17
Figura 3. 2 – Schema conceptuală a bazei de date 18
CAPITOLUL 4 – IMPLEMENTAREA SISTEMULUI INFORMATIC
Figura 4. 1 – Crearea bazei de date 22
Figura 4. 2 – Fișierul de inițializare 22
Figura 4. 3 – Clasa Config 23
Figura 4. 4 – Constructorul clasei DB și metoda getInstance 23
Figura 4. 5 – Metodele query, action, get și delete 24
Figura 4. 6 – Metoda get din clasa Input 24
Figura 4. 7 – Metoda check din clasa Validation 25
Figura 4. 8 – Constructorul clasei User și metoda create 25
Figura 4. 9 – Metodele de autentificare și deconectare pentru clasa User 26
Figura 4. 10 – Verificarea datelor introduse 26
Figura 4. 11 – Clasa Hash 27
Figura 4. 12 – Funcția de geocodare și salvarea coordonatelor în formular 27
Figura 4. 13 – Adăugarea marcajului în baza de date 28
Figura 4. 14 – Inițializarea hărții și salvarea poziției utilizatorului 28
Figura 4. 15 – Preluarea marcajelor din baza de date 29
Figura 4. 16 – Crearea obiectelor și adăugarea în vector 29
Figura 4. 17 – Parcurgerea vectorului și afișarea marcajelor pe hartă 29
Figura 4. 18 – Confirmarea marcajelor 30
Figura 4. 19 – Desenarea histogramei 30
Figura 4. 20 – Funcția de desenare a graficului adăugării din ultimele șapte zile 31
Figura 4. 21 – Interogarea tabelelor și salvarea rezultatelor în formular 31
CAPITOLUL 5 – DESCRIEREA SISTEMULUI INFORMATIC
Figura 5. 1 – Captură de ecran cu pagina principală 32
Figura 5. 2 – Captură de ecran cu formularul de căutare 32
Figura 5. 3 – Captură de ecran cu formularul de înregistrare 33
Figura 5. 4 – Captură de ecran cu formularul de autentificare 33
Figura 5. 5 – Captură de ecran cu opțiunile utilizatorului 34
Figura 5. 6 – Captură de ecran cu pagina de profil a utilizatorului 34
Figura 5. 7 – Captură de ecran cu pagina de adăugare a unui marcaj 35
Figura 5. 8 – Captură de ecran cu panoul de administrare 35
Figura 5. 9 – Captură de ecran cu histograma categoriilor 36
Figura 5. 10 – Captură de ecran cu graficul adăugărilor din ultimele șapte zile 36
ANEXA II
LISTA TABELELOR
Tabel 1 – Descrierea textuală a cazului de vizualizare 11
Tabel 2 – Descrierea textuală a cazului de administrare 12
Tabel 3 – Descrierea textuală a cazului de administrare 13
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: Solutie Informatica Pentru Localizarea Geografica a Spatiilor Comerciale (ID: 150624)
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.
