Sistem Informatic de Fidelizare a Clientilor In Cadrul Magazinelor Naturiste

SISTEM INFORMATIC DE FIDELIZARE A CLIENȚILOR ÎN CADRUL MAGAZINELOR NATURISTE

CUPRINS

INTRODUCERE

1. Domeniul studiat-Modalități de fidelizare a clienților

1.1. Fidelizarea-concepte

1.1.1. Tipuri de fidelizare a clienților

1.1.2. Instrumente de fidelizare a clienților

1.2. CRM-concepte

1.2.1. Obiectivele CRM

1.2.2. Clasificarea CRM

1.3. Carduri de fidelitate-instrumente de marketing/CRM

1.3.1. Avantajele cardurilor de fidelitate

1.3.2. Clasificarea cardurilor de fidelitate

2. Tehnologii utilizate în proiectarea aplicației

2.1. SQL

2.2. Sistemul de gestiune a bazei de date-SGBD

2.2.1. SGBD-concepte

2.2.2. MySQL

2.2.3. XAMPP

2.3. Limbajul C#

2.3.1. Apariție

2.3.2. Principii POO

2.3.3. Relația dintre C# și arhitectura .NET

2.4. Arhitectura .NET

2.4.1. Ce este arhitectura .NET?

2.4.2. ADO.NET

2.4.3. ASP.NET

3. Analiza și proiectarea sistemului informatic

3.1. Definirea activității de fidelizare a clienților

3.2. Definirea cerințelor sistemului informatic

3.2.1. Modelarea cazurilor de utilizare(MCU)

3.3. Analiza sistemului informatic

3.3.1. Cauze, soluții și efecte

3.3.2. Modelarea structurii statice

3.3.3. Modelarea structurii dinamice

3.4. Proiectarea sistemului informatic

3.4.1. Proiectarea bazei de date

3.4.2. Proiectarea interfețelor

4. Implementarea sistemului informatic

4.1. Implementarea bazei de date

4.2. IMPLEMENTAREA INTERFEȚEI

Concluzii

Bibliography

Bibliography

INTRODUCERE

Piața cardurilor de fidelitate a apărut, în România, în anii 2000-2003, prin copierea tendințelor din Occident. Adoptate în special de hoteluri, restaurante, magazine, cluburi sportive, farmacii, agenții de turism, cardurile de fidelitate au menirea de a fideliza clienții, în recompense precum bonusuri, reduceri, premii. Un astfel de card se eliberează clientului prin completarea unui formular, urmând ca pe acesta să fie calculate punctele de bonus, la fiecare cumpărare.

În cadrul acestei lucrări de licență îmi propun să implementez un sistem informatic care se ocupă de cardurile de fidelitate ale magazinelor naturiste. Acesta presupune două module, primul dintre ele fiind accesibil doar magazinului naturist, pentru o interacțiune mai bună cu clienții, iar cel de-al doilea modul va fi destinat doar clientului, pentru a-și putea gestiona mai ușor cardul atunci când va cumpăra din magazinul respectiv.

Am ales această temă, întrucât cardurile de fidelitate sunt o modalitate bună de a atrage client , de a-i face fideli magazinului respectiv. Voi crea o soluție prietenoasă, ușor de utilizat, prin care aduc în plus faptul că, posesorii cardurilor își pot verifica situația în orice moment.Aceștia pot vedea câte puncte au acumulat pe card, ce produse pot obține cu acestea, precum si informații despre ce a mai apărut nou în cadrul magazinului.

Lucrarea este structurată în patru capitole după cum urmează:

În capitolul I este prezentată analiza domeniului de marketing din care face parte aplicația, tehnici de fidelizare a clienților, în special cea a cardurilor de fidelitate, precum și analiza sistemului actual.

Capitolul II conține prezentarea tehnologiilor informatice utilizate pentru dezvoltarea aplicației de carduri de fidelitate pentru magazinele de produse naturiste, precum C#.NET, ASP.NET și MYSQL.

Capitolul III cuprinde analiza și proiectarea bazei de date, cu definirea cerințelor sistemului informatic, diagrame UML, schema conceptuală a bazei de date, precum și ierarhia videoformatelor utilizate în aplicație.

Cel de-al IV-lea capitol este rezervat atât implementării bazei de date, prin codul utilizat pentru crearea tabelelor, precum și implementării interfeței sistemului informatic, prin codul utilizat din spatele acestuia, precum și realizarea capturilor de ecran

În final sunt prezentate principalele concluzii despre dezvoltarea sistemului de fidelizare a clienților prin cardurile de fidelitate, precum și bibliografie și anexe.

Domeniul studiat-Modalități de fidelizare a clienților

Fidelizarea-concepte

“Fidelizarea reprezintă strategia de marketing prin care se permite consumatorului/clientului să devină și să rămână fidel produselor, serviciilor sau chiar punctelor de vânzare. În prezent, atât gestionarea relațiilor cu clienții cât și fidelizarea acestora au întâietate în concurența pe piețele saturate.

Nu întotdeauna un client satisfăcut este în totalitate și un client fidel. De aceea, fidelizarea este strâns legată de studiul de satisfacție. Printr-un astfel de studiu, sunt identificate nevoile și așteptările clienților, iar prin implementarea unui program de fidelizare pot apărea avantaje economice importante companiilor. În cazul în care un consumator este satisfăcut de ceea ce i se oferă, acesta poate repeta cumpărarea și poate influența mai departe alți oameni să cumpere din același loc, sau același tip de produs. Sunt aduse beneficii și ofertanților, în urma satisfacției clienților, întrucât vânzările de produse sporesc și capătă o imagine favorabilă pe piață, față de celalalte firme concurente.

Fiecare piață are propriile ei reguli de fidelizare. Tocmai de aceea o strategie de fidelizare necesită o analiză aprofundată pe mai multe direcții. Astfel, trebuie analizate nevoile, așteptările clienților, modalitățile prin care acestea le sunt satisfăcute, deciziile pe care le iau în cumpărarea anumitor produse. De asemenea, trebuie analizată atât modalitatea companiei de a relaționa cu clienții, practicile comerciale ale acesteia, cât și imaginea, ofertele concurenței.”

Tipuri de fidelizare a clienților

„Legătura emoțională (Fidelizarea propriu-zisă prin satisfacerea clientului)

Legătura economică (Fidelizarea clientului prin costurile de schimbare reale sau percepute subiectiv)

Legătura contractuală (Fidelizarea clientului prin înțelegeri care trebuie respectate)

Legătura tehnic-funcțională (Fidelizarea clientului printr-o legătură funcțională între produsul de bază și un serviciu suplimentar).

Instrumente de fidelizare a clienților

Intrumente ale politicii de comunicare

Direct Mail

Reviste pentru clienți

Carduri pentru clienți

Cluburi ale clienților

Telefon-marketing

Instrumente ale politicii de preț

Sisteme de rabat și bonusuri

Contracte și garanții

Diferențieri de preț

Instrumente ale politicii de produs

Integrarea clienților și dezvoltarea ofertei

Managementul calității

Măsuri pentru realizarea de servicii suplimentare

Instrumente ale politicii de distribuție

Orientate spre comerț

-Evaluarea partenerului

-Programe de susținere a relației cu comercianții

Orientate spre consumatori

-Oferirea drepturilor exclusive de distribuție

-Distribuție Online“

Companiile trebuie să pună întotdeauna în prim plan clientul prin diverse strategii, pentru a fi mereu cu un pas înaintea concurenților și a face performanță pe piața în care activează. De multe ori, este mai puțin costisitoare păstrarea clienților vechi, decât atragerea unor noi clienți, fapt realizat prin intermediul marketingului relațional. Pentru o gestiune mai ușoară, au apărut concepte precum GRC (Gestion de la Relation Client) sau CRM (Customer Relationship Management).

CRM-concepte

CRM poate fi abordat ca un instrument strategic pentru îmbunătățirea profitabilității, eficienței operaționale și rentabilității investiției de marketing. CRM sintetizează ideea lui Peter Drucker, conform căreia “clientul este unicul centru de profit”, acesta ducând la creșterea numărului de clienți și câștigarea fidelității lor.

Senior Marketing Consultant al companiei de consultanță Ensight,, Andreea Enache, susține că “CRM este mai degrabă o practică de business care implică strategia și operațiunile într-un efort integrat de a îmbunătăți relațiile cu clienții prin intermediul vânzărilor optimizate, activităților de marketing și serviciilor conexe, care ar trebui să conducă la creșterea satisfacției și a loialității clienților”.

Figura 1.1. Sistemul CRM simplificat

În cadrul figurii 1.1. de mai sus, este prezentată ideea de interacțiune permanentă cu clienții prin diferite canale de comunicație: web, vânzări directe, rețele de distribuție, e-mail, centre de apel.

Implementarea unei strategii CRM permite constatarea unor potențiali clienți, observarea nevoilor și rezolvarea acestora, atragerea lor prin cât mai multe oferte și promoții. Un element foarte important este acela de a comunica pe cât mai mult căi posibile cu clienții, în vederea atragerii și păstrării acestora.

Factorii care influențează atragerea clienților:

Analiza vânzărilor

Segmentarea clienților

Promovarea vânzărilor

Publicitatea

Merchandising(practici și metode folosite pentru promovarea activității comerciale la punctul de vânzare, în scopul optimizării vânzărilor)

Factorii care influențează păstrarea clienților sunt:

Service-ul

Calitatea produselor/serviciilor

Încrederea și intimitatea

Susținerea pe tot canalul de distribuție

Satisfacția

Lanțul succesului în CRM:

Figura 1.2 Lanțul succesului în CRM

Obiectivele CRM

“Majoritatea obiectivelor inițiativelor CRM țin de sfera creșterii profitabilității. Majoritatea viziunilor sunt pe termen scurt. Uneori, ținta este reducerea costurilor, în alte cazuri, scopul principal este creșterea veniturilor. Aceste obiective sunt prezentate în tabelul 1.1 de mai jos:

Tabelul 1.1– Obiectivele CRM”

Clasificarea CRM

Există patru tipuri de tehnologii CRM în funcție de ținta urmărita:

1. “pentru recuperarea și păstrarea clienților; care au renunțat la un produs în ultimul moment sau au fost atrași de altă ofertă;

2.de fidelizare; prin intermediul acestor instrumente se analizează preferințele consumatorilor, se acordă bonusuri;

3.diversificarea și îmbunătățirea ofertei; se fac numeroase campanii de marketing, se promovează noutățile de pe piață;

4.prospectarea pieței; se concentrează pe clienții posibili și segmentele de piață nou descoperite.”

Scopul ar putea fi chiar mai subtil în ceea ce privește companiile orientate către client, cum ar fi creșterea loialității și dedicării clienților, care ar conduce la creșterea profitabilității pe termen lung.

A gestiona o relație cu clienții este extrem de important în zilele noastre, întrucât aceștia se pot îndrepta oricând către competitori. În general, o relație bună nu se bazează numai pe oferte avantajoase, cât și pe importanța acordată clienților. Spre exemplu, atunci când este ziua lor de naștere, aceștia să primească un premiu, o felicitare pe adresa de e-mail, sau plângerile acestora să fie tratate cu seriozitate. Orice produs defectuos sau serviciu care a adus neplăceri, ar trebui să fie înlocuit, sau banii plătiți să fie returnați.

Conceptul de apropiere de client

Figura 1.3. Conceptul apropierii de client

După cum este prezentat și în figura 1.3, relația companiei cu clienții este întărită de calitatea produselor și serviciilor, recunoașterea greșelilor companiei, acceptarea părerilor clienților.

Carduri de fidelitate-instrumente de marketing/CRM

O măsură foarte apreciată și din ce în ce mai răspândită în România, este emiterea de carduri de fidelitate, cu ajutorul cărora, companiile încearcă să-și răsplătească clienții fideli.

Programele de tipul cumperi unul-primești unul gratis sunt foarte populare, la fel ca și cadourile acordate. Există si programul pentru probarea produsului pentru o anumită perioadă de timp, iar în caz de neplăceri, acesta se poate returna, fiind înlocuit cu un produs nou, sau banii să fie restituiți cumpărătorului.

“Cardul de fidelitate este un instrument de marketing ce face parte din planurile de fidelizare a clienților diferitelor companii. Din punct de vedere al posesorului, acesta are diferite avantaje la cumpărarea produselor firmei emitente sau ale partenerilor acesteia. Avantajele pot consta în reduceri, acces privilegiat la diferite promoții, cadouri și chiar anumite cecuri cu care pot cumpăra alte produse.”

Pe lângă fidelizarea clienților, aceste carduri sunt folosite de unele companii și pentru a urmări și a înțelege mai bine de apropiere de client

Figura 1.3. Conceptul apropierii de client

După cum este prezentat și în figura 1.3, relația companiei cu clienții este întărită de calitatea produselor și serviciilor, recunoașterea greșelilor companiei, acceptarea părerilor clienților.

Carduri de fidelitate-instrumente de marketing/CRM

O măsură foarte apreciată și din ce în ce mai răspândită în România, este emiterea de carduri de fidelitate, cu ajutorul cărora, companiile încearcă să-și răsplătească clienții fideli.

Programele de tipul cumperi unul-primești unul gratis sunt foarte populare, la fel ca și cadourile acordate. Există si programul pentru probarea produsului pentru o anumită perioadă de timp, iar în caz de neplăceri, acesta se poate returna, fiind înlocuit cu un produs nou, sau banii să fie restituiți cumpărătorului.

“Cardul de fidelitate este un instrument de marketing ce face parte din planurile de fidelizare a clienților diferitelor companii. Din punct de vedere al posesorului, acesta are diferite avantaje la cumpărarea produselor firmei emitente sau ale partenerilor acesteia. Avantajele pot consta în reduceri, acces privilegiat la diferite promoții, cadouri și chiar anumite cecuri cu care pot cumpăra alte produse.”

Pe lângă fidelizarea clienților, aceste carduri sunt folosite de unele companii și pentru a urmări și a înțelege mai bine modalitatea de cumpărare a clienților, tocmai pentru a putea personaliza diverse oferte. Prin această comunicare directă, se dezvoltă loyalty brand-ul (loialitatea/fidelizarea față de marcă) și se stabilesc relațiile între clienți și vânzători.

Aceste carduri pot fi în diferite forme. Un exemplu simplu ar fi un card la un magazin de cafea, unde să spunem ca la fiecare achiziție se primesc anumite puncte și când se ajunge la 10 puncte, poți obține o băutură gratuită. Cele mai noi versiuni ale cardurilor de fidelitate pot arăta foarte mult ca un card de credit. Acesta este scanat, iar informațiile legate de achiziție sunt păstrate într-o bază de date care urmărește informațiile legate de ceea ce s-a cumpărat și ce premii poate obține cumpărătorul.

Ca și instrument CRM, cardurile de fidelitate sunt diferite față de promoțiile de vânzare, datorită caracterului lor defensiv și orientarea de lungă durată[Sharp and Sharp,”Loyalty programs and their impact on repeat-purchase loyalty patters,1997]. Cele mai frecvente programe de loialitate, pe piața din România, sunt cele de acumulare de puncte și încasare premii[„The hidden side of loyalty card programs”,buseco.monash.edu.au,December 2009]. Majoritatea programelor de fidelizare au nevoie de la client de numeroase informații personale, precum adresă, număr de telefon, CNP, data nașterii, adresa de e-mail. Sondajele legate de vârstă, venituri, preferințe și obiceiuri de cumpărături, pot însoți, de asemenea, procesul de înscriere. De aceea, fiecare afacere este responsabilă cu punerea în aplicare a unei politici de confidențialitate, pentru a nu expune fără permisiune clientul respectiv. Toate informațiile acumulate de la clienți, în general, sunt folosite pentru a se face ajustări asupra stocului magazinului, evaluarea programului de tip CRM, marketing intern, sau trimiterea materialelor promoționale( prin intermediul poștei electronice, telefon mobil etc).

Alegerea tipurilor de recompense va depinde de fiecare afacere și de ceea ce îi motivează pe clienții respectivi. Trebuie să se experimenteze cu diferite recompense, pentru a observa ceea ce le convine cel mai mult consumatorilor. Totodată, acestea nu trebuie să fie prea complexe, întrucât consumatorii trebuie să aibă mereu în vedere ceea ce au de făcut pentru a ajunge la următorul premiu.

Avantajele cardurilor de fidelitate

Folosirea unor astfel de carduri, aduce avantaje atât clienților, cât și comercianților.

Avantaje pentru comerciant:

Informații despre client;

Creșterea vânzărilor-creșterea profitului;

Avantaje față de competitor;

Prin faptul că, posesorii cardurilor primesc puncte, creșterea prețurilor este mai ușor digerată față de ceilalți clienți, care nu prezintă aceleași avantaje;

Avantaje pentru clienți:

Acumularea de puncte și folosirea acestora mai târziu;

Discount-uri, reduceri de preț

Simțul de apartenență la un grup de clienți mai importanți. Aceștia se simt răsplătiți pentru loialitatea lor.

Clasificarea cardurilor de fidelitate

Tipuri de carduri pe piața din România:

Cardurile co-branded: sunt cardurile lansate în parteneriat de două companii: o instituție financiară( bancă sau instituție non-bancară) și o altă companie care dorește să își promoveze produsele prin intermediul cardului. Cardul oferă bonusuri sau reduceri la anumite produse cu scopul de a crește fidelitatea față de cele două companii care au emis cardul. Exemple: Visa, MasterCard, American Express. MasterCard se ocupă de peste 16 carduri de credit: Carrefour-BRD, Ultra PRO-BCR, Staer-BRD, Raiffeisen-Vodafone.

Cardurile de loialitate: sunt instrumente des folosite pe piața comercială din România, dar și în restul lumii. Prima rețea de supermarket-uri care folosește astfel de carduri este G’s Market(2001). Ele permit deținătorului să acumuleze puncte, beneficii din discount-uri, competiții, promoții. În România: G’Market, Angst, Cora, Altex, Electrolux, Kenvelo, Hollywood Multiplex, MOL, HelpNet, Catena,Sensiblu etc. SensiBlu a fost prima farmacie care a introdus pe piața farmaceutică din România cardurile de fidelitate, în anul 2003. Investițiile firmelor se ridică lunar la 20.000-30.000 de carduri noi. Aproximativ, în anul 2012, existau 5 milioane de carduri de fidelitate active pe piața din România(money.ro,2012).

Există numeroase sisteme de fidelizare actuale, care să permită crearea unei relații pe termen lung cu clienții magazinelor unde sunt implementate:exemple sistemul de fidelizare al DataLight Retail, Compania AnziSoft oferă software fidelizare clienți “Fidelity”, WinMentor oferă aplicația fidelizare puncte bonus, proiectată de ID System, precum și sistemul de fidelizare clienți implementat de Software System Technologies.

Software-ul fidelizare clienți, “Fidelity” vine ca un stimulent pentru clienți de a cumpăra mai mult și de a rămâne fideli. Aplicația creează și întreține baza de date referitoare la cei care își fac cumpărăturile în magazinul respectiv. Formularul de înscriere al clienților presupune cunoașterea mai bună a acestora, având în vedere că include informații precum : dacă are copii sau nu, venit lunar personal și în familie, studii, deținere automobil, cât de des fac cumpărături în magazin, reviste, posturi de radio tv preferate etc. Cardul permite oferirea de recompense precum, preț alternativ la produse, discount la valoare bon, sau acumulare de puncte ce presupune plata cu puncte sau premierea la acumularea unui anumit punctaj. Se pot observa prin rapoarte care sunt cei mai importanți clienți ai magazinului respectiv, motiv pentru care li se poate aplica și o politică de vânzare diferențiată. Programul permite rapoarte de distribuție a clienților precum și rapoarte de vânzare pe clienți, respectiv pe firme. Totodată, firma Anzisoft, poate furniza carduri de fidelizare personalizate.

Un exemplu de formular al acestui program poate fi observat în figura 1.4.:

Fig.1.4.Nomenclator clienți

Din punctul meu de vedere, fidelizarea clienților este exrem de importantă, întrucât clienții vor cumpăra din ce în ce mai mult de la unitatea respectivă de vânzare, vor fi din ce în ce mai mulțumiți de promoții , de calitatea produselor, de felul în care sunt tratați. De asemenea, având o frecvență mai mare de cumpărare, clienții au o anumită predispoziție la schimbările de prețuri, față de restul lumii. Totodată, cu cât crește gradul de satisfacție, cu atât cei mulțumiți pot să recomande mai departe compania respectivă, iar ei vor avea o influență mult mai mare față de campaniile de promovare.

Tehnologii utilizate în proiectarea aplicației

SQL

Baza de date relațională reprezintă o bază de date ce utilizează modelul relațional, dezvoltat de Edgar Frank Codd. Modelul relațional prezintă datele sub forma unor tablouri bidimensionale, numite tabele sau relații de date.

Limbajul standard pentru bazele de date relaționale este SQL(Structured Query Language). Acesta este un limbaj de regăsire relațional, standardizat internațional ANSI-American National Standard Institute. (sisteme de baze de date evoluate pag 69). Scopul limbajului este de inserare a datelor, interogații, actualizări și ștergeri, modificarea și crearea schemelor precum si controlul accesului la date. SQL permite atât accesul la conținutul bazelor de date, cât și la structura acestora.

Instrucțiunile SQL prezintă următoarele categorii:

un limbaj de definire a datelor-LDD=( Data Definition Language- DDL)- utilizat la definirea schemei bazei de date

un limbaj de manipulare a datelor( Data Manipulation Language- DML)- permite utilizatorului manipularea obiectelor bazei de date și a relațiilor dintre acestea, în contextul schemei bazei de date.

LDD-comenzi:

CREATE DATABASE- creează o bază de date(inclusiv dicționarul BD);

CREATE TABLE-creează structura de date a unei tabele, denumirea tabelei, structura de date, restricțiile de integritate;

ALTER TABLE-actualizează structura de date a unei tabele, adaugă, modifică, șterge atribute(câmpuri) dintr-o tabelă specificată;

DROP TABLE-șterge tabela;

CREATE VIEW-creează o viziune/tabelă virtuală;

DROP VIEW-șterge tabela virtuală;

CREATE INDEX-creează un fișier de index atașat unei tabele;

DROP INDEX-șterge un fișier de index;

CREATE CLUSTER-creează un cluster construit din una sau mai multe tabele;

ALTER CLUSTER-actualizează un cluster;

DROP CLUSTER-șterge un cluster;

LMD-comenzi de actualizare a datelor:

SET TRANSACTION-stabilește condițiile de acces pentru o tranzacție;

INSERT-adaugă o întregistrare la sfârșitul unei tabele;

DELETE-șterge întregistrări dintr-o tabelă;

UPDATE-modifică înregistrări dintr-o tabelă;

COMMIT-finalizează tranzacțiile anterioare, acestea devenind permanente;

ROLLBACK-anulează tranzacțiile anterioare și care nu au fost finalizate;

SAVEPOINT-marchează puncte de salvare într-o tranzacție, adică împarte o tranzacție în subtranzacții;

Ultimele 3 instrucțiuni fac parte din limbajul de control al tranzacțiilor(TCL) care permit administrarea acestora.

-comenzi de regăsire a datelor:

SELECT-implementează și cei șase operatori relaționali de bază:proiecția, selecția, intersecția, joncțiunea, reuniunea, diferența;

COPY-copiază date dintr-o tabelă sursă într-una destinație;

SHOW-afișarea valorilor variabilelor de sistem;

-comenzi de control al datelor –permit crearea rolurilor și a privilegiilor

GRANT;

REVOKE;

Sistemul de gestiune a bazei de date-SGBD

SGBD-concepte

Sistemul de gestiune a bazei de date(SGBD) este un sistem de programe ce permite definirea, crearea și întreținerea bazei de date, precum și accesul controlat la aceasta. Din sistemele de gestiune a bazelor de date relaționale putem enumera: Microsoft Access, MS SQL Server, Oracle Database, DB2, Ingres, MySQL.

MySQL

MySQL este un sistem de gestiune a bazelor de date relațional, produs de compania suedeză MySQL AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a platformei LAMP(Linux, Apache, MySQL, PHP).

Deși este folosit foarte des împreună cu limbajul de programare PHP, există și alte limbaje de programare ce permit scrierea aplicațiilor cu accesare de baze de date MySQL precum: C, C++, C#, Java, Perl, PHP, Python, FreeBasic etc,fiecare dintre acestea folosind un tip specific API.

MySQL este componentă integrată în platformele LAMP, WAMP sau XAMPP( Linux/Windows-Apache-MySQL-PHP/Perl/Python). –wikipedia

Tehnologia MySQL este una de mare actualitate în dezvoltarea aplicațiilor cu baze de date de tip Internet.În această lucrare de licență, m-am decis sa aleg utilizarea sistemului de gestiune a bazelor de date relațional, MySQL, datorită ușurinței utilizării acestuia, gratuității sale, precum și compatibilității sale cu limbaje de programare C#, PHP, Python, Perl, C, C++.

Alte argumente în favoarea MySQL ar fi scalabilitate bună(suportă baze de date de dimensiuni mari), este acceptat de majoritatea sistemelor de operare, prezintă securitate ridicată, întrucât toate parolele care sunt stocate, sunt în formă criptată, prin urmare, accesul neautorizat la baza de date este limitat.

MySQL Workbench este un mediu de lucru gratuit dezvoltat de MySQL AB, care permite utilizatorilor să administreze grafic bazele de date MySQL și să vizualizeze structurile bazei de date. MySQL Workbench permite utilizatorilor să gestioneze baza de date, prin proiectare și modelare, dezvoltarea limbajului SQL și administrarea bazei de date. Acesta este valabil în 2 ediții, cel gratuit și open source care poate fi downloadat de pe site-ul oficial MySQL, precum și Standard Edition care extinde și îmbunătățește setul de caracteristici al celeilalte ediții. Un alt instrument open-source care se ocupă cu administrarea MySQL este si phpMyAdmin ce include pachetele LAMP, MAMP, XAMPP și WAMP.

Pentru integrarea cu Microsoft Visual Studio, este nevoie de un driver, MySQL Connector/Net. Prin intermediul acestuia, aplicațiile .NET au acces la bazele de date MySQL.

XAMPP

XAMPP este un pachet de programe free software, open source de tip multiplatformă, care include Apache HTTP Server, MySQL și interpretoare pentru scripturile scrise în limbajele de programare PHP și Perl. XAMPP acționează ca un web server, capabil să servească pagini web dinamice. De asemenea, asigură suport pentru crearea și manipularea bazelor de date în MySQL și SQLite.

Limbajul C#

Apariție

C# este moștenitorul unei averi bogate în domeniul programării. Acesta derivă direct din două dintre cele mai de succes limbaje de programare pe plan mondial: C și C++, fiind și o rudă apropiată a limbajului Java. De la C, C# moștenește sintaxa, multe dintre cuvintele cheie și operatorii. C# construiește peste modelul de obiecte definit în C++, îmbunătățindu-l totodată. Spre exemplu, au fost adăugate interfețe, delegări, tipul String, au fost eliminate moștenirea multiplă, pointerii care sunt considerați “unsafe”.

C# a fost creat de Microsoft la sfârșitul anilor ’90 ca parte a ansamblului strategiei .NET, dezvoltată tot de Microsoft. Prima lansare a versiunii alfa a avut loc la mijlocul anului 2000. Arhitectul șef al construcției C# este Anders Hejlsberg(autorul limbajului Turbo Pascal).

Principii POO

Metodologia orientată obiect fiind inseparabilă de C#, principiile de bază ale programării orientate obiect sunt: încapsularea, polimorfismul, abstractizarea și moștenirea.

Încapsularea este un mecanism care combină codul și datele pe care le manipulează, menținând integritarea acestora față de interferență cu lumea exterioară. Când codul și datele se încapsulează, se crează un obiect. Acestea pot fi publice sau private. Unitatea fundamentală de încapsulare este clasa, care definește forma unui obiect, specifică datele și codul care operează asupra lor. Datele definite în cadrul clasei sunt denumite variabile membru sau instanță, iar codul care operează asupra lor este denumit prin termenul de metode( funcții în C/C++).

Polimorfismul permite unei interfețe să aibă acces la un grup generic de acțiuni. Este abilitatea de a procesa obiectele în mod diferit, în funcție de tipul sau de clasa lor( redefinirea metodelor pentru clasele derivate).

Abstractizarea reprezintă posibilitatea unui program de a se concentra asupra esențialului. Identifică trăsăturile caracteristice esențiale ale unui obiect, care îl deosebesc de toate celelalte feluri de obiecte. Procesele, funcțiile sau metodele pot fi de asemenea abstracte.

Moștenirea este procesul prin care un anumit obiect poate dobândi proprietățile altui obiect. Implementează conceptul de clasificare ierarhică. O clasă ce moștenește una sau mai multe clase de bază se numește clasă derivată(păstrează datele și funcțiile membru de la clasa de bază). Esența moștenirii constă în posibilitatea refolosirii lucrurilor care funcționează.

Limbajul C# conține mai multe facilități dintre care cele mai importante se referă la suportul încorporat pentru componente software. Poate cea mai importantă facilitate de care dispune limbajul este aceea de a lucra într-un mediu cu limbaj mixt.

Relația dintre C# și arhitectura .NET

C# , pe de o parte, a fost inițial dezvoltat de Microsoft pentru crearea codului pentru arhitectura .NET, iar pe de altă parte, bibiliotecile utilizate de C# sunt cele definite de arhitectura .NET.

Arhitectura .NET

Ce este arhitectura .NET?

Arhitectura .NET definește un mediu care permite dezvoltarea și execuția aplicațiilor independente de platformă. Aceasta permite diferite limbaje de programare, oferă facilități de securitate și portabilitate a programelor și un mediu de programare comun pentru platformele Windows. Arhitectura definește două entități importante și anume biblioteca de clase .NET și motorul comun de programare sau Common Language Runtime(CLR). Cel din urmă, CLR, se ocupă de execuția programelor C#. El asigură de asemenea programarea în limbaj mixt, securitatea și portabilitatea programelor(orice program compilat în format Intermediate Language IL poate rula în orice mediu pentru care CLR este implementat).

Am ales .NET deoarece există mai multe limbaje pe această platformă, oferă acces ușor la baze de date, iar design-ul aplicațiilor poate fi implementat ușor prin intermediul instrumentelor grafice.

ADO.NET

ADO.NET (ActiveX Data Objects) reprezintă o parte componentă a nucleului .NET Framework ce permite accesarea și manipularea datelor. Amintim că o sursă de date poate fi: un fișier text, un fișier Excel sau XML, o bază de date Dbase, Access, SQL etc. Lucrul cu o sursă de date se poate face fie conectat, fie deconectat de la sursa de date. ADO.NET implementează clase ce oferă servicii atât pentru lucrul în stil deconectat cât și conectat,oferă instrumentele de utilizare și reprezentare XML, de combinare a datelor din diferitesurse și de diferite tipuri (pe bază mecanismenlor de reprezentare comună implementate de.NET.

ADO.NET se folosește pentru accesarea(SELECT) și modificarea(INSERT, UPDATE, DELETE) datelor stocate în baze de date relaționale, și nu numai. Faptul că se poate ca serverul de baze de date să lucreze cu mai multe conexiuni deodata face ca ADO.NET să fie o tehnologie mai potrivită pentru dezvoltarea aplicațiilor Internet.

Câțiva dintre furnizorii de date în ADO.NET sunt:

“MySQL Connector/NET-furnizor folosit și în cadrul acestei lucrări, ce permite crearea ușoară a aplicațiilor .NET cu MySQL. Implementează interfețele ADO.NET și integrează instrumentele acestuia.

Oracle Data Provider for .NET-permite accesul la baza de date Oracle

Progress DataDirect Connect- folosit petru conexiunea la baze de date precum Oracle, DB2, Sybase și MS SQL Server.

Devart-permite accesul la baze de date Oracle, MySQL, SQL Lite, PostreSQL și SQL server.”

ASP.NET

ASP.NET(Microsoft Active Server Pages-ASP) este un set de tehnologii ce beneficiază de suportul platformei de dezvoltare Microsoft.NET, pentru crearea aplicațiilor web. Printre avantajele aduse de ASP.NET, se numără timpul redus dezvoltării unei aplicații web, datorită limbajelor de programare C# sau VB.NET(limbaje de programare orientate obiect), funcționalității bibliotecilor de controale și clase .NET.

Realizarea interfeței web a fost dezvoltată utilizând limbajul de marcare HTML, întrucît este independent de platformă, și poate fi uor de înțeles și utilizat. HTML reprezintă limbajul descriptiv prin care se conturează scheletul paginilor Web, prin intermediul tabelelor,paragrafelor, referințelor către alte pagini, sau imagini etc.

Am ales această tehnologie, întrucât este gândită pentru dezvoltarea aplicațiilor web complexe, astfel fiind la fel de simplă dezvoltarea unui magazin online, sau site-uri personale. Modulul 2 dedicat clienților, din cadrul acestei lucrări, este realizat prin intermediul acestei tehnologii, utilizând ca limbaj de programare, C#.

Analiza și proiectarea sistemului informatic

Definirea activității de fidelizare a clienților

Lucrarea de față oferă o soluție îmbunătățită la sistemul actual al aplicațiilor pentru fidelizarea clienților. Aceasta presupune crearea unui pachet software care să permită accesarea conturilor clienților care au carduri de fidelitate la magazinul naturist respectiv. Astfel, soluția oferă facilități precum: vizualizarea totalului punctelor de fidelitate, promoții, produse care pot fi câștigate în urma acumulării punctelor de fidelitate. Aplicația își propune atât consolidarea relației cu clienții, cât și să ofere societății comerciale o perspectivă completă asupra modului de cumpărare al clienților, preferințelor și nevoilor acestora. Clienților li se oferă posibilitatea nu doar de a-și putea observa numărul de puncte de fidelitate acumulate până la momentul respectiv, ci și posibilitatea de a vedea cât mai au de cumpărat până la câștigarea unui anumit produs, precum și vizualizarea promoțiilor actuale la acea dată sau anumite informații despre produsele respective.

Modulul 1 este accesibil angajaților magazinului pentru verificarea existenței unui cont al clientului pentru numărul de puncte acumulate și adăugarea acestora la fiecare cumpărare, în funcție de tipul produsului. În cazul în care clientul nu are un card de fidelitate, i se creează unul, iar numărul cardului va permite accesarea contului. Totodată, se pot crea rapoarte cu privire la produsele vândute, clienții existenți, numărul de puncte asociat fiecărui client. Această aplicație va oferi un avantaj firmei, pentru menținerea unei evidențe a cumpărăturilor clientului, implicit și a preferințelor acestuia.

Modulul 2 va fi accesibil clienților, aceștia putându-se loga de acasă cu numărul cardului si o parolă, la contul lor, întărind astfel relația clientului cu magazinul respectiv, acesta menținându-și sau creându-și fidelitatea față de anumite produse, de un anumit brand sau chiar de magazinul în sine.

Definirea cerințelor sistemului informatic

Modelarea cazurilor de utilizare(MCU)

Diagrama cazurilor de utilizare(Use Case Diagram)

Modelul cazurilor de utilizare este compus din actori și cazuri de utilizare. Actorul Actorul este o entitate care schimbă informație cu sistemul, acesta nefăcând parte din sistem. Ei pot fi conectați la cazuri de utilizare prin asocieri. Cazul de utilizare reprezintă principalele acțiuni inițiate de un actor. El poate interacționa însă și cu alți actori, nu doar cu inițiatorul său.

Un actor poate participa la mai multe cazuri de utilizare si invers. În aplicațiile de față, actorii implicate sunt administratorul/utilizatorul din magazin și clientul.

Cazurile de utilizare sunt următoarele:

Autentificare;

Vizualizare produse disponibile;

Vizualizare număr de puncte;

Vizualizare promoții;

Înregistrare clienți;

Vizualizare rapoarte;

Vizualizare clienți înregistrați;

Accesare cont client

Adăugare cumpărare

Relații între cazuri de utilizare

Tipurile de relații utilizate în analiza de față sunt:

Asociere directă între actorul client și cazurile : autentificare, vizualizare produse disponibile, vizualizare număr de puncte, modificare parola și între actorul administrator și cazurile: înregistrare clienți, vizualizare rapoarte, vizualizare clienți înregistrați, informații despre fiecare client în parte prin accesarea contului, vizualizare puncte, vizualizare produse disponibile;

Includere: între informații despre fiecare client și adăgare sau scădere puncte clienți, deoarece pentru a modifica numărul de puncte, de fiecare data va trebui accesat contul clientului și vizualizat cât a acumulat până la momentul respectiv.

Fig.3.1. Diagrama cazurilor de utilizare

Diagrama cazurilor de utilizare presupune actori, cazuri de utilizare precum și relațiile dintre acestea.Diagrama poate include descrieri în detaliu al fiecărui caz în parte sau scenarii ale acestora. Voi prezenta în continuare, scenariile cazurilor de utilizare pentru ambele module, atât pentru client, cât și pentru funcționarul magazinului naturist.

Tabelul 3.1. Scenariu modul1–caz de utilizare autentificare

Tabelul 3.1. Scenariu modul 2–caz de utilizare autentificare

Tabelul 3.2. Descrierea cazurilor de utilizare

Analiza sistemului informatic

Mai jos, am realizat o schemă a cauzelor, efectelor și soluțiilor oferite atât de aplicația web cât și de aplicația desktop.

Cauze, soluții și efecte

Fig.3.2. Cauze,efecte și soluții

Prin modelarea unei aplicații, se realizează o simplificare a realității, în așa fel încât să se poată înțelege mai bine sistemul dezvoltat. “Analiza culege informații despre funcționarea sistemului existent în scopul înțelegerii și cunoașterii cât mai detaliate a problemei, cerințelor și restricțiilor la care trebuie să se aducă o rezolvare, din perspectiva tuturor părților interesate.” Modelarea structurii statice și dinamice reprezintă această etapă de analiză, iar diagramele incluse în cadrul acestor modelări sunt următoarele:

Modelarea structurii statice: diagrama claselor( diagrame structurale)

Modelarea structurii dinamice: diagrama de activitate și diagrama de stare( diagrame comportamentale)

Diagramele structurale sunt folosite pentru vizualizarea, construirea, specificarea aspectelor statice ale sistemului de față, pe când diagramele comportamentale sunt folosite pentru modelarea interacțiunilor obiectelor( aspectele dinamice ale sistemului).

Modelarea structurii statice

Diagrama de clase

Diagrama de clase reprezintă un set de clase, interfețe, colaborări și oferă o imagine de ansamblu asupra reprezentării tabelelor și a relațiilor dintre ele. Această diagramă este folosită cel mai des în modelarea obiect, rolul acesteia fiind de structurarea statică a analizei sistemului. Diagrama conține elemente precum atribute, operații, legaturile dintre acestea. Atributele reprezintă proprietățile unei case, operațiile definesc comportamentul claselor, iar legăturile(relațiile) explică conexiunea dintre elemente existând patru tipuri de relații: dependențe, generalizări, asocieri și realizări.

Relația dintre diagrama claselor și a altor diagrame UML este prezentată în figura 3.2:

Fig.3.2.Toate diagramele contribuie la diagrama claselor

Diagrama claselor conține clase și relațiile dintre acestea. Clasele conțin atribute și se leagă de alte clase prin diverse asocieri. Acestea reprezintă ansamblul de obiecte care au proprietăți asemănătoare, comportament comun, relații comune cu alte obiecte și aceeași semantică. Clasele se vor transforma ulterior în tabele.

Fig.3.3.Diagrama claselor

Aplicația se bazează pe șase clase, care oferă o perspectivă asupra soluției și structurii sale. Clasa Categorie se află în asociere cu clasa Produs, o categorie putând deține mai multe produse la un moment dat, pe când un produs poate face parte dintr-o singură categorie. Clasa Produs se află în relație de asociere cu clasa Rand _factura, iar aceasta din urmă este asociată cu clasa Factura. Întrucât un produs se poate afla pe mai multe facturi și o factură poate conține mai multe produse, am introdus clasa Rand_factura pentru a transforma relația de asociere many-to-many, în vederea ținerii unei evidențe clare a cumpărăturilor realizate de fiecare client în parte.

Clasa Client se află în relație de asociere cu clasa User și clasa Factura. Un client are un singur user și acesta unic, rezultând astfel o relație de asociere unu la unu între clasa user și casa client. Clientul, totodată, poate avea mai multe cumpărături pe o factură la o anumită dată, iar factura aparține unui singur client, cu un cod unic al acesteia.

Modelarea structurii dinamice

Diagrama de activitate(DA)

Diagrama de activitate presupune fluxurile de control dintre activități, aspectele dinamice ale unui sistem informatic, sub forma unor procese. O diagrama de activitate pentru un caz de utilizare, explică modalitate prin care actorul interacționează cu sistemul, pentru atingerea unui scop al cazului, incluzând reguli, schimb de informații, decizii. O activitate poate fi un calcul, căutarea unor date, manipularea unor informații, sau verificări de date. Activitățile sunt reprezentate printr-un dreptunghi rotunjit, acestea fiind legate între ele prin săgeți.

Modulul 1

În figura 3.4. este prezentată diagrama de activități pentru modulul 1, ce descrie fluxul activităților corespunzătoare cazuri de utilizare “Autentificare” și “Adăugare cumpărare”.

Fig.3.4.Diagrama de activități

Pentru autentificarea utilizatorului de la plafar se desfășoară următoarele activități:

În primă fază, funcționarul magazinului, trebuie să introducă username-ul și parola pentru autentificarea în sistem. Odată validat, acesta poate observa meniul principal al aplicației, de unde poate alege activitatea pe care o desfășoară la momentul respectiv.

Pentru adăugarea unei cumpărături, clientul trebuie să fie înregistrat în baza de date. Acesta solicită produsele pe care le dorește , precum și cantitatea acestora. Utilizatorul va introduce datele aferente cererii clientului, după care va înregistra factura cumpărării, cu id-ul clientului, data cumpărării, cantitatea cumpărată, precum și produsul achiziționat.

Modulul 2

În figura 3.5. este prezentată diagrama de activități pentru activitatea de autentificare a

clientului în cadrul contului personal, precum și opțiunea de modificare a parolei/username-ului și vizualizarea punctelor acumulate.

Fig.3.5.Diagrama de activități

Clientul trebuie să introducă username-ul și parola, pentru accesare cont, care de fapt sunt numărul cardului, implicit. Dupa autentificare, aceștia au opțiunea de a-și modifica parola, după preferințe. Totodată, în bara de meniu, în secțiunea Client, se găsesc informațiile personale, unde aceștia pot vizualiza istoricul punctelor care le-au avut de la primirea cardului până în prezent, precum și punctele actuale deținute, dupa primirea unor premii, precum și produsele achiziționate.

Diagrama de stare

“Starea reprezintă o situație, o interacțiune a unui obiect, în cursul căreia acesta execută anumite acțiuni, așteaptă anumite evenimente sau satisface anumite condiții.” Forma unei diagrame de stări este dată de starea inițială, starea finală reprezentată prin cerculețe, dreptunghiuri cu colțurile rotunjite ce conțin numele obiectului și acțiunile corespunzatoare (entry=intrarea in stare, do=acțiunea propriu-zisă, exit=ieșirea din stare), precum și legăturile dintre acestea care reprezintă tranzițiile sau evenimentele declanșatoare. Tranziția reprezintă trecerea de la o stare la alta, odată cu executarea unei acțiuni.

În figura 3.5. , următoare, voi prezenta diagrama de stare corespunzătoare vizualizării contului clienților înregistrați. Starea inițială este dată de conturile utilizatorului. Scopul este vizualizarea datelor clienților, acordarea de produse premiu dacă aceștia au acumulat punctele bonus aferente. În cazul în care contul nu există, se accesează din meniul client, înregistrarea acestuia, urmată de cumpărarea unui produs, după care se poate accesa și contul respectivului client.

Fig.3.5.Diagrama de stare

Proiectarea sistemului informatic

Proiectarea bazei de date

Cele două aplicații din cadrul acestei lucrări, se bazează pe șase tabele : Categorie, Produse, Rând_factură, Factură, Clienți și Useri. Cerințele pentru aceste aplicații sunt următoarele:

Un produs poate intra într-o singură categorie, însă o categorie poate conține mai multe tipuri de produse. Un user aparține unui singur client, iar la rândul lui, clientul are un singur user, unic. Un client poate cumpăra de mai multe ori(mai multe facturi), dar o factură aparține unui singur client. Un produs se poate găsi în mai multe cumpărături(rând_factură). Tabela rând_factură a fost creată pentru a sparge relația many-to-many , care ar fi fost între produse și facturi. Tabele conțin informații sub forma următoarelor atribute:

Tabel.3.1.Structura tabelei Useri

Tabel.3.2.Structura tabelei Categorie

Tabel.3.3.Structura tabelei Produse

Tabel.3.4.Structura tabelei Clienti

Tabel.3.5.Structura tabelei Factura

Tabel.3.6.Structura tabelei Rand_factura

Schema conceptuală a tabelelor este prezentată în figura următoare:

Fig.3.6.Schema conceptuală a tabelelor

Proiectarea interfețelor

Proiectarea interfețelor sistemului informatic presupune prezentarea modului în care utilizatorul interacționează cu aplicațiile prin diverse controale, rapoarte, formulare, precum și ferestrele de lucru care apar. Sistemul informatic presupune două aplicații. În tabelul următor va fi prezentată proiectarea aplicației vizibilă doar magazinului Plafar.

Tabel.3.7.Ferestrele aplicației desktop(modulul 1 pentru magazinul naturist)

Tabel.3.8.Ferestrele aplicației desktop(modulul 2 pentru clienți)

Cele mai utilizate controale în aplicații sunt textBox, Label, Chart, ReportDesigner, Button, DateTimePicker, ListView, GridView. Interfața este prietenoasă, intuitivă, devenind practic un ghid care însoțește utilizatorul la fiecare pas. Aplicația pornește de la formularul principal meniu, din punct de vedere structural.

Modulul 1

Principalele formulare ale modulului 1 vor fi prezentate prin intermediul print-screen-urilor. Figura 3.7. de mai jos identifică formularul de intrare în aplicație, urmat de formularul de autentificare(figura 3.8.) a angajatului magazinului. Dacă acesta a uitat parola, poate contacta serviciul de asistență Plafar,altfel nu poate intra mai departe în aplicație și i se afisează un mesaj de eroare.

Fig.3.8.Formular autentificare

Fig.3.7.Pagina de intrare în aplicație

După autentificare, utilizatorului îi este prezentat meniul principal(figura 3.9), din care poate alege opțiunea dorită.

Fig.3.9.Meniu principal

Opțiunile vizualizare produse(figura 3.10) și vizualizare clienți(figura 3.11) presupun afișarea produselor în funcție de categoria din care fac parte, selectată, precum și clienții,într-un control de tip GridView, cu diverse informații despre aceștia.

Fig.3.11.Vizualizare produse

Fig.3.11.Vizualizare clienti

Fig.3.12.Formular de introducere a nr de card

În urma introducerii numărului de card, angajatul poate accesa contul clientului pentru a-i putea comunica acestuia situația actuală, legată de punctele acumulate, valoarea totală cumpărată, precum și atenționarea în cazul ajungerii la pragul de 200 de puncte, pentru ca beneficiarul cardului să primească un produs.

Fig.3.13.Cont client

Formularul de cumpărare(figura 3.14) permite salvarea în baza de date a produselor achiziționate de clienți.

Fig.3.14.Formular de cumpărare produse

Înregistrarea unui client în baza de date, presupune și înregistrarea username-ului și parolei acestuia care inițial sunt la fel ca numărul de card. Parolele sunt criptate în baza de date cu funcția aes_encrypt și decriptate cu funcția aes_decrypt pentru a putea modifica parola în modulul 2.

Fig.3.15.Formular de înregistrare clienți

Rapoartele create cu ajutorul designerului de rapoarte, Crystal Reports, prezintă clienții cu produsele achiziționate, la ce dată au fost cumpărate și cantitatea acestora, precum și produsele grupate după categorie(ceaiuri, cosmetice, produse copii, suplimente).

Fig.3.15.Raport clienți Fig.3.16.Raport produse

Modulul 2

Modulul 2 a fost creat pentru client, în varianta unei aplicații web, pentru ca acesta să își poată accesa de acasă contul și să-i fie mai ușor să afle informații despre ce a cumpărat, câte puncte a acumulat în urma achizițiilor etc.Totodată, îi este permisă și opțiunea de modificare a parolei, întrucât el primește o parolă implicită, odată cu primirea cardului, echivalentă cu numărul de card. Pe langă informațiile personale, clientul mai are posibilitatea de vizualizare a produselor existente, în funcție de categoria selectată, precum și o scurtă informare despre ceaiul verde, despre magazinul respectiv și un filmuleț despre ceaiul verde.

Fig.3.18.Pagina Despre noi

Fig.3.17.Pagină de intrare Acasă

z

Fig.3.19.Pagina de vizualizare a produselor in functie de categorie

Fig.3.21.Cont Client-Informatii personale

Fig.3.23.Pagina de modificare a parolei

Implementarea sistemului informatic

Implementarea bazei de date

Pentru crearea bazei de date am folosit platforma phpmyadmin Xampp, creand-o in MySQL. Conexiunea dintre baza de date și cele două module în C#, respectiv ASP.NET, din cadrul mediului de programare Visual Studio 2010 s-a realizat foarte ușor, prin intermediul driver-ului MySQL Connector/NET.

Codul pentru crearea tabelelor este prezentat mai jos:

CREATE TABLE CATEGORIE

(

ID_CATEGORIE INT (1) PRIMARY KEY ,

DESCRIERE VARCHAR(50)

) ;

CREATE TABLE CLIENTI

(

ID_CLIENT INT (4) PRIMARY KEY AUTO_INCREMENT,

NUME_PRENUME VARCHAR(50),

EMAIL VARCHAR(40) UNIQUE,

CNP VARCHAR(14) UNIQUE,

TELEFON VARCHAR(10),

NR_CARD_FIDELITATE INT(8) UNIQUE,

PUNCTE_BONUS INT(3)

) ;

CREATE TABLE FACTURA

(

COD_FACTURA INT (5) PRIMARY KEY ,

DATA_CUMPARARE DATE,

ID_CLIENT INT(4)

) ;

ALTER TABLE FACTURA ADD CONSTRAINT FACTURA_ID_CLIENT_FK FOREIGN KEY ( ID_CLIENT ) REFERENCES CLIENTI ( ID_CLIENT ) ;

CREATE TABLE PRODUSE

(

COD_PRODUS INT (3) PRIMARY KEY AUTO_INCREMENT,

DENUMIRE VARCHAR(80),

CARACTERISTICI TEXT,

CNP VARCHAR(14) UNIQUE,

PUNCTE_PRODUS INT(4),

ID_CATEGORIE INT(1),

PRET_PRODUS INT(8)

) ;

ALTER TABLE PRODUSE ADD CONSTRAINT PRODUSE_ID_CATEGORIE_FK FOREIGN KEY ( ID_CATEGORIE ) REFERENCES CATEGORIE ( ID_CATEGORIE );

CREATE TABLE RAND_FACTURA

(

COD_FACTURA INT (5) PRIMARY KEY ,

COD_PRODUS INT(2) PRIMARY KEY,

CANTITATE_VANDUTA INT(3)

) ;

ALTER TABLE RAND_FACTURA ADD CONSTRAINT RAND_FACTURA_COD_FACTURA _FK FOREIGN KEY ( COD_FACTURA ) REFERENCES FACTURA ( COD_FACTURA );

ALTER TABLE RAND_FACTURA ADD CONSTRAINT RAND_FACTURA_COD_PRODUS _FK FOREIGN KEY ( COD_PRODUS ) REFERENCES PRODUSE ( COD_PRODUS );

CREATE TABLE USERI

(

ID_USER INT (4) PRIMARY KEY AUTO_INCREMENT ,

USERNAME VARCHAR(20) UNIQUE,

PAROLA VARCHAR(10),

ID_CLIENT INT(4)

) ;

ALTER TABLE USERI ADD CONSTRAINT USERI_ID_CLIENT _FK FOREIGN KEY (ID_CLIENT) REFERENCES CLIENTI (ID_CLIENT);

create procedure login (IN username varchar(20),IN pass varchar(10)) Begin Select COUNT(*)from useri where username=username and parola=pass; End

IMPLEMENTAREA INTERFEȚEI

Pentru implementarea interfeței din cadrul modului 1 pentru angajatii magazinelor naturiste, am lucrat cu ferestrele de tip forms din cadrul Windows Forms din C#, pe platforma Microsoft Visual Studio 2013. Pentru implementarea celei de-a doua interfețe pentru modulul 2, am lucrat cu ASP.NET și limbajul HTML pentru realizarea template-ului, adica Master page.

Pentru conexiunea la baza de date, am folosit driverul MySQL Connector/NET, iar in cod, pentru validare,am utilizat blocuri try-catch. Dupa conexiunea la baza de date, am realizat maparea informatiilor din tabele in controalele .NET. Pentru formularul de autentificare, codul este prezentat mai jos:

try

{

String myConnection = "datasource=localhost;port=3306;username=root;password='bianca'";

MySqlConnection myConn = new MySqlConnection(myConnection);

MySqlCommand SelectCommand = new MySqlCommand("select * from plafar.useri where username='" + tbUsername.Text + "' and parola='" + tbParola.Text + "';");

MySqlDataReader myReader;

SelectCommand.Connection = myConn;

myConn.Open();

myReader = SelectCommand.ExecuteReader();

int count = 0;

while (myReader.Read())

{

count = count + 1;

}

if (count == 1)

{

MessageBox.Show("Bine ai venit " + tbUsername.Text);

Meniu frm = new Meniu();

frm.ShowDialog();

this.Hide();

this.Close();}

else if (count > 1)

{

MessageBox.Show("Username duplicat…Acces interzis!");

{ else{ MessageBox.Show("Username sau parola gresita! ");

tbParola.Clear();

tbUsername.Clear()

myConn.Close(); }

catch (Exception ex)

{ MessageBox.Show(ex.Message);}

Cumpărarea unui produs presupune inserarea în două tabele, și anume factură și rând_factură. Codul pentru cumpărarea unui produs este următorul:

if (tbCantitate.Text == "")

errorProvider1.SetError(tbCantitate, "Introduceti cantitatea ceruta!");

else if (tbID.Text == "")

errorProvider1.SetError(tbID, "Introduceti Id-ul clientului!");

else if (tbProdus.Text == "")

errorProvider1.SetError(tbProdus, "Introduceti codului produsului!");

else try {

string com1 = "insert into plafar.factura (data_cumparare, id_client)" + " VALUES ('" + dateTimePicker1.Text + " ' , '" + tbID.Text + "');";

inserare_fact(com1);

int cod_fact = select_cod_fact();

string com2 = "insert into plafar.rand_factura (cod_factura,cod_produs,cantitate_vanduta)" + " VALUES ('" + cod_fact + "','" + tbProdus.Text + "' , '" + tbCantitate.Text + "');";

inserare_rand(com2);

MessageBox.Show("Inserare cu succes!");}

catch(Exception ex)

{ MessageBox.Show("Inserare gresita!");

tbCantitate.Clear();

tbID.Clear();

tbProdus.Clear();}

finally{ errorProvider1.Clear();}

Modulul 2 orientat către client, presupune vizualizarea anumitor pagini pentru utilizatorul neautentificat, și accesarea contului personal pentru cel autentificat. Codul pentru realizarea paginii de tip Master, adică template-ul pe care rulează celelalte pagini, este prezentat in rândurile de mai jos:

body>

<form id="form1" runat="server">

<div id="wrapper">

<div id="banner">

</div>

<div id="navigation">

<ul id="nav">

<li><a href="~/Pages/Acasa.aspx" runat="server">Acasa</a></li>

<li><a href="~/Pages/Produse.aspx" runat="server">Produse</a></li>

<li><a href="#">Client</a>

<ul>

<li><a href="~/Pages/Informatii.aspx" runat="server">Informatii</a></li>

<li><a href="~/Pages/Achizitii.aspx" runat="server">Achizitii</a></li>

</ul>

</li>

<li><a href="~/Pages/DespreNoi.aspx" runat="server">Despre noi</a></li>

</ul>

<div id="Login" align="right">

<asp:Label ID="lblLogin" runat="server" ForeColor="White" Text=""></asp:Label>

<asp:LinkButton ID="LinkButton1" ForeColor="White" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>

<div id="Parola" align="right">

<asp:LinkButton ID="LinkButton2" ForeColor="White" runat="server" OnClick="LinkButton2_Click">Modificare Parola </asp:LinkButton>

</div>

</div>

</div>

<div id="content_area">

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

</div>

<div id="sidebar">

<img src="~/Images/produse-naturiste-sigla.jpg" runat="server" />

</div>

<div id="footer">

<p>All rights reserved.</p>

</div>

</div>

</form>

</body>

</html>

Pentru ca un client autentificat să poate vedea toate produsele care le-a cumpărat până atunci, m-am conectat la baza de date, am preluat datele realizând un join cu tabelele produse, rand_factura, factura, clienti, useri și le-am introdus într-un control de tip GridView. În cazul în care utilizatorul nu s-a autentificat, acesta este redirecționat către pagina de Autentificare(“Login.aspx”).

protected void Page_Load(object sender, EventArgs e)

{

if (Session["login"] != null)

{

string myConnection = "datasource=localhost;port=3306;username=root;password='bianca';database=plafar";

MySqlConnection myConn = new MySqlConnection(myConnection);

try

{

string query = "select a.denumire,c.data_cumparare,b.cantitate_vanduta from produse a,rand_factura b,factura c,clienti d,useri u where c.id_client=d.id_client and d.id_client=u.id_client and c.cod_factura=b.cod_factura and b.cod_produs=a.cod_produs and u.username='" + (string)Session["login"] + "';";

myConn.Open();

MySqlDataAdapter adp = new MySqlDataAdapter(query, myConn);

DataTable dt = new DataTable();

adp.Fill(dt);

if(dt.Rows.Count>0)

{

GridView1.DataSource = dt;

GridView1.DataBind();

}

}

catch (Exception ex)

{

System.Text.StringBuilder sb = new System.Text.StringBuilder();

sb.Append(ex.Message);

}

finally{ myConn.Close();}}

else

{ Response.Redirect("~/Pages/Cont/Login.aspx");}

Concluzii

Așa cum am menționat și la începutul acestei lucrări de licență, scopul final a fost de a crea o soluție cât mai prietenoasă, care să simplifice și sa personalizeze necesitățile clienților. Astfel, posesorii cardurilor de fidelitate își pot verifica oricând situația.

La momentul actual există numeroase sisteme de fidelizare utilizate din ce în ce mai mult de diverse companii. Recent, și magazinul Plafar a implementat acest sistem de fidelizare, cu ajutorul cardurilor bonus, însă site-ul lor nu permite clienților verificarea cardului deținut.

Am creat astfel, un software de fidelizare, care va fi utilizat în cadrul magazinelor naturiste care îl cer, precum și o aplicație web, prin care se permite accesul facil al clienților la pagina sa personală. Clientul își poate vizualiza produsele achiziționate, numărul de puncte acumulate pe card, devenind mai ușor pentru acesta să ia decizii cu ce produse mai poate cumpăra și dacă vrea să mai continue cu programul de fidelizare.

Sistemul de fidelizare poate fi îmbunătățit prin marirea gradului de complexitate, prin extinderea facilităților. Consider că pot fi luate în calcul următoarele aspecte pentru o posibilă dezvoltare ulterioară:

Prezentarea promoțiilor existente cu reducerile acestora;

Permiterea cumpărării online;

Trimiterea unor emailuri către magazinele respective și primirea de răspunsuri;

Conceperea unui plan de fidelizare complex, cu carduri Premium, Gold, Basic;

Completarea unor chestionare online de către consumator, pentru analiza nevoilor și a comportamentului acestuia;

Emiterea de facturi în urma achiziționării de produse;

Adaptarea aplicației la o aplicație mobilă, având în vedere evoluția tehnologiei până în prezent;

Bibliography

(n.d.). Retrieved from http://www.buseco.monash.edu.au/centres/acrs/research/whitepapers/hidden-side-of-loyalty.pdf

Acatrinei , C., & Puiu, V. (2012, July). The loyalty card:Issues in evaluating loyalt program effectiveness. International Journal of Economic Practices and Theories, 2.

AnziSoft. (n.d.). Retrieved mai 2014, from http://www.anzisoft.ro/produse/software-fidelizare-clienti-fidelity–25.html

Ce se ascunde în spatele abrevierii CRM. (2011). eFinance, pp 3.

Microsoft. (n.d.). Retrieved martie 2014, from http://msdn.microsoft.com/en-us/data/dd363565.aspx

Mihalca, R., Csaba, F., Uță, A., Întorsureanu, I., Andreescu , A., & Jișa, D. (2009). Modelarea orientată obiect. București: ASE.

Pender, T. A. (n.d.). UML Weekend Crash Course. New York: Wiley Publishing Inc.

Sharp, B., & Sharp, A. (1997). Loyalty programs and their impact on repeat-purchase loyalty patterns. International Journal of Research in Marketing Vol.14, 473-486.

Zaharie, D., & Roșca, I. (2002). Proiectarea obiectuală a sistemelor informatice. Dual Tech.

Bibliography

1. Revista eFinance-“ Ce se ascunde in spatele abrevierii CRM”,2011 [ http://www.ensight.ro/wp-content/uploads/2011/09/efinance_2011_09_01_ce_se_ascunde_in_spatele_abrevierii_crm.pdf -] accesat martie 2014-pp 3

5. http://www.dailybusiness.ro/stiri-finante-banci/cardul-de-la-supermarket-farmacie-sau-benzinarie-cat-de-fideli-sunt-romanii-90962/ ”Cardul de la supermarket,farmacie sau benzinarie.Cat de fideli sunt romanii”,Andreea Radu,25 iunie 2013, accesat martie 2014

6. http://www.wall-street.ro/articol/Marketing-PR/6554/Cardurile-de-fidelitate-multi-branded-se-lasa-asteptate.html “Cardurile de fidelitate multi-branded se lasa asteptate”,Monica Cercelescu,20 Sep 2005, Sursa:Saptamana financiara- accesat martie 2014

7. http://www.money.ro/la-cat-este-estimata-piata-romaneasca-a-cardurilor_1221873.html “La cât este estimată piața românească a cardurilor”,sursa:Agerpres, 01 iunie 2012 –accesat martie 2014

8. http://stirile.rol.ro/print/cardurile-de-fidelitate-profit-pentru-emitenti-facilitati-pentru-clienti-5031.html -accesat martie 2014

9 http://revistaie.ase.ro/content/30/DoinaFotache.pdf ,Revista Informatică Economică, nr.2(30)/2004, “Customer Relationship Management”, Conf.dr. Doina Fotache, Catedra de Informatică Economică, Universitatea “Alexandru Ioan Cuza”,Iași-accesat martie 2014

10. http://www.ellipse-marketing.ro/studiu-fidelizare.html -accesat martie 2014

11. http://www.esimplu.ro/articole/marketing-si-vanzari/4238-fidelizarea-clientilor-aspect-important-al-profitabilitatii -accesat martie 2014

12. http://solvabil.hotnews.ro/pro-si-contra-co-branded -accesat martie 2014

13. http://www.ensight.ro/wp-content/uploads/2011/09/efinance_2011_09_01_ce_se_ascunde_in_spatele_abrevierii_crm.pdf -accesat martie 2014

14. http://www.scribd.com/doc/33012866/Managementul-Relatiilor-Cu-Clientii -accesat martie 2014

15. Material curs Managementul relațiilor cu clienții, Prof.Univ.Dr. Nicolae Tiberiu Al. Pop,Facultatea de Marketing, ASE [http://webcache.googleusercontent.com/search?q=cache:SeXxS6pNELUJ:xa.yimg.com/kq/groups/21078959/804297399/name/MRC%2Bromana%2Bcurs%2Bcomplet%2B(10%2Bcap.).ppt+&cd=4&hl=ro&ct=clnk&gl=ro]-accesat martie 2014

16. Apud Manfred Bruhn- “Orientarea spre clienți:temelia afacerii de succes”, Editura Economică, București 2001 Curs optional, Facultatea de Marketing, Anul III ID, Semestrul II, 2008 [http://www.locomarkid.ro/site/Suport_de_curs_MRC_ID_www.locomarkid.com.pdf]-accesat martie 2014

17. http://sinf.ase.ro/curs.html , Integrarea sistemelor informatice Curs 3 Suport curs 3-accesat martie 2014

18. Material curs CRM, Disciplina Managementul Marketingului, Facultatea de Automatică și calculatoare, Universitatea Politehnică, București, dr.ing. Cristian-Aurelian Popescu, Catedra Management,FAIMA, [http://andrei.clubcisco.ro/cursuri/master/set-materii-2/managementul-marketingului.html]-accesat martie 2014

19.http://webcache.googleusercontent.com/search?q=cache:W88TXcuX0X0J:www.ase.ro/upcpr/profesori/523/CAPITOL%25204.1.ppt+&cd=2&hl=ro&ct=clnk&gl=ro –accesat martie 2014

20.Material curs Baze de date, Prof.univ.dr.Lungu Ion,Asist.univ.drd.Botha Iuliana,Academia de Studii Economice,Bucuresti,p12,[ http://bd.ase.ro/uploads/bd_curs/Curs_BD_Lungu,Botha.pdf]-accesat martie 2014

21. Sisteme de baze de date evoluate,Manole Velicanu, Ion Lungu, Iuliana Botha, Adela Bâra, Anda Velicanu, Emanuil Rednic, Editura ASE,2009-accesat martie 2014

22. http://www.mysql.com/products/workbench/ accesat martie 2014

23. http://www.howtomysql.net/mysql-advantages.html -accesat martie 2014

24. http://www.mysql.com/why-mysql/presentations/ -accesat martie 2014

25. http://ro.wikipedia.org/wiki/MySQL -accesat martie 2014

26. http://ro.wikipedia.org/wiki/XAMPP -accesat martie 2014

27. Herbert Schildt C# -Editura Teora 2002 ,Traducere de Bogdan Pisai pp 2-13

28. Limbajul C#- PhD Lucian Sasu

29. Programarea web cu Microsoft.Net/ ASP.NET, Ana Întuneric, Nicolae Olăroiu, Cristina Sichim

30. Programarea orientată pe obiecte și programarea vizuală,Microsoft.Net Framework, Adrian Niță, Maria Niță, Daniela Tarasă

31. http://www.microsoft.com/romania/educatie/curs_dot_net/elevi/ accesat martie 2014

32. http://msdn.microsoft.com/en-us/data/dd363565.aspx/ accesat martie 2014

Bibliography

(n.d.). Retrieved from http://www.buseco.monash.edu.au/centres/acrs/research/whitepapers/hidden-side-of-loyalty.pdf

Acatrinei , C., & Puiu, V. (2012, July). The loyalty card:Issues in evaluating loyalt program effectiveness. International Journal of Economic Practices and Theories, 2.

AnziSoft. (n.d.). Retrieved mai 2014, from http://www.anzisoft.ro/produse/software-fidelizare-clienti-fidelity–25.html

Ce se ascunde în spatele abrevierii CRM. (2011). eFinance, pp 3.

Microsoft. (n.d.). Retrieved martie 2014, from http://msdn.microsoft.com/en-us/data/dd363565.aspx

Mihalca, R., Csaba, F., Uță, A., Întorsureanu, I., Andreescu , A., & Jișa, D. (2009). Modelarea orientată obiect. București: ASE.

Pender, T. A. (n.d.). UML Weekend Crash Course. New York: Wiley Publishing Inc.

Sharp, B., & Sharp, A. (1997). Loyalty programs and their impact on repeat-purchase loyalty patterns. International Journal of Research in Marketing Vol.14, 473-486.

Zaharie, D., & Roșca, I. (2002). Proiectarea obiectuală a sistemelor informatice. Dual Tech.

Bibliography

1. Revista eFinance-“ Ce se ascunde in spatele abrevierii CRM”,2011 [ http://www.ensight.ro/wp-content/uploads/2011/09/efinance_2011_09_01_ce_se_ascunde_in_spatele_abrevierii_crm.pdf -] accesat martie 2014-pp 3

5. http://www.dailybusiness.ro/stiri-finante-banci/cardul-de-la-supermarket-farmacie-sau-benzinarie-cat-de-fideli-sunt-romanii-90962/ ”Cardul de la supermarket,farmacie sau benzinarie.Cat de fideli sunt romanii”,Andreea Radu,25 iunie 2013, accesat martie 2014

6. http://www.wall-street.ro/articol/Marketing-PR/6554/Cardurile-de-fidelitate-multi-branded-se-lasa-asteptate.html “Cardurile de fidelitate multi-branded se lasa asteptate”,Monica Cercelescu,20 Sep 2005, Sursa:Saptamana financiara- accesat martie 2014

7. http://www.money.ro/la-cat-este-estimata-piata-romaneasca-a-cardurilor_1221873.html “La cât este estimată piața românească a cardurilor”,sursa:Agerpres, 01 iunie 2012 –accesat martie 2014

8. http://stirile.rol.ro/print/cardurile-de-fidelitate-profit-pentru-emitenti-facilitati-pentru-clienti-5031.html -accesat martie 2014

9 http://revistaie.ase.ro/content/30/DoinaFotache.pdf ,Revista Informatică Economică, nr.2(30)/2004, “Customer Relationship Management”, Conf.dr. Doina Fotache, Catedra de Informatică Economică, Universitatea “Alexandru Ioan Cuza”,Iași-accesat martie 2014

10. http://www.ellipse-marketing.ro/studiu-fidelizare.html -accesat martie 2014

11. http://www.esimplu.ro/articole/marketing-si-vanzari/4238-fidelizarea-clientilor-aspect-important-al-profitabilitatii -accesat martie 2014

12. http://solvabil.hotnews.ro/pro-si-contra-co-branded -accesat martie 2014

13. http://www.ensight.ro/wp-content/uploads/2011/09/efinance_2011_09_01_ce_se_ascunde_in_spatele_abrevierii_crm.pdf -accesat martie 2014

14. http://www.scribd.com/doc/33012866/Managementul-Relatiilor-Cu-Clientii -accesat martie 2014

15. Material curs Managementul relațiilor cu clienții, Prof.Univ.Dr. Nicolae Tiberiu Al. Pop,Facultatea de Marketing, ASE [http://webcache.googleusercontent.com/search?q=cache:SeXxS6pNELUJ:xa.yimg.com/kq/groups/21078959/804297399/name/MRC%2Bromana%2Bcurs%2Bcomplet%2B(10%2Bcap.).ppt+&cd=4&hl=ro&ct=clnk&gl=ro]-accesat martie 2014

16. Apud Manfred Bruhn- “Orientarea spre clienți:temelia afacerii de succes”, Editura Economică, București 2001 Curs optional, Facultatea de Marketing, Anul III ID, Semestrul II, 2008 [http://www.locomarkid.ro/site/Suport_de_curs_MRC_ID_www.locomarkid.com.pdf]-accesat martie 2014

17. http://sinf.ase.ro/curs.html , Integrarea sistemelor informatice Curs 3 Suport curs 3-accesat martie 2014

18. Material curs CRM, Disciplina Managementul Marketingului, Facultatea de Automatică și calculatoare, Universitatea Politehnică, București, dr.ing. Cristian-Aurelian Popescu, Catedra Management,FAIMA, [http://andrei.clubcisco.ro/cursuri/master/set-materii-2/managementul-marketingului.html]-accesat martie 2014

19.http://webcache.googleusercontent.com/search?q=cache:W88TXcuX0X0J:www.ase.ro/upcpr/profesori/523/CAPITOL%25204.1.ppt+&cd=2&hl=ro&ct=clnk&gl=ro –accesat martie 2014

20.Material curs Baze de date, Prof.univ.dr.Lungu Ion,Asist.univ.drd.Botha Iuliana,Academia de Studii Economice,Bucuresti,p12,[ http://bd.ase.ro/uploads/bd_curs/Curs_BD_Lungu,Botha.pdf]-accesat martie 2014

21. Sisteme de baze de date evoluate,Manole Velicanu, Ion Lungu, Iuliana Botha, Adela Bâra, Anda Velicanu, Emanuil Rednic, Editura ASE,2009-accesat martie 2014

22. http://www.mysql.com/products/workbench/ accesat martie 2014

23. http://www.howtomysql.net/mysql-advantages.html -accesat martie 2014

24. http://www.mysql.com/why-mysql/presentations/ -accesat martie 2014

25. http://ro.wikipedia.org/wiki/MySQL -accesat martie 2014

26. http://ro.wikipedia.org/wiki/XAMPP -accesat martie 2014

27. Herbert Schildt C# -Editura Teora 2002 ,Traducere de Bogdan Pisai pp 2-13

28. Limbajul C#- PhD Lucian Sasu

29. Programarea web cu Microsoft.Net/ ASP.NET, Ana Întuneric, Nicolae Olăroiu, Cristina Sichim

30. Programarea orientată pe obiecte și programarea vizuală,Microsoft.Net Framework, Adrian Niță, Maria Niță, Daniela Tarasă

31. http://www.microsoft.com/romania/educatie/curs_dot_net/elevi/ accesat martie 2014

32. http://msdn.microsoft.com/en-us/data/dd363565.aspx/ accesat martie 2014

Similar Posts