Proiectarea Unei Aplicatii Pentru Recomandarea Unui Stil Vestimentar Feminin
Cuprins
1. INTRODUCERE
1.1 Contextul general
Incă din cele mai vechi timpuri omul se află într-o continuă evoluție, astfel încat în ziua de azi tehnologia este prezentă în toate domeniile.
Așadar, putem întalni sisteme complexe în domenii în care aparent nu ne-am fi imaginat că ne-am putea folosi de tehnologie cum ar fi cel culinar sau vestimentar.
Ritmul alert în care se desfășoară viața omului contemporan a condus la o necesitate de a folosi diverse dispozitive menite să-i minimizeze timpul necesar desfășurării unor activități. Cum ar fi viața unui om conectat la tehnologie fără motorul de căutare Google? Timpul necesar căutării unor informații ar crește exponențial, astfel ne folosim de anumite sisteme informatice pentru a obține rezultate mai eficiente temporal, cantitativ și calitativ.
1.2 Contextul aplicației
Tehnologia și stilul vestimentar sunt aparent două domenii divergente, insă evolutiă aplicațiilor informatice actuale determină o imbinare a acestora.
Alegerea unui outfit poate necesita timp de care unii oameni nu dispun. In acest sens o aplicație ar putea face acest lucru prin intermediul unei recomandări realizată prin intermediul evoluției tehnologice.
1.3 Rezumat
Subiectul acestei lucrări constă intr-o aplicație realizată pentru a recomanda un stil vestimentar feminin. Această aplicatie este de fapt un sit web ce poate rula pe o platforma de tip desktop sau mobila.
In cele ce urmează vor fi explicate tehnologiile folosite pentru a realiza aplicația impreună cu motivarea alegerii acestora si prezentarea aplicației impreună cu obiectivele sale principale.
In final este prezentată o concluzie a acestei lucrari, o posibilă directie pentru a imbunatați aplicația si conchid cu bibliografia.
2.TEHNOLOGII UTILIZATE
2.1 Introducere
In acest capitol vor fi prezentate tehnologiile folosite pentru realizarea acestui proiect.
Am realizat această aplicație folosind tool-uri si tehnologii de tip open-source la care are acces toată lumea si sunt intr-o dezvoltare continuă, fiind imbunatațite constant de echipe de dezvoltatori software.
Mediul de programare pe care l-am ales este Visual Studio Community IDE.Am dezvoltat acest sit web folosint frameworkul .NET dezvoltat de Microsoft pe partea de frontend si C# ca limbaj de programare pe partea de backend.
2.2 Aplicațiile Web
O aplicație web este o aplicație software de tip client-server în care partea de client ruleaza in browser-ul web. Aplicațiile web sunt practice si populare datorita ușurinței de accesare, intrucat in browser se ruleaza doar limbajele suportate de acesta cum ar fi JavaScript combinat cu limbajul de markup HTML.
Programele de navigare pe internet comunică cu aplicația folosind HTML și protocolul HTTP/HTTPS.
Diferența dintre aceste două protocoale este ca cel de al doilea este un protocol ce comunică folosind o conexiune criptată.
La nivel de integrare schimbul de informații se produce astfel : browser-ul trimite către server o cerere http/https, iar serverul trimite clientului un raspuns codat in limbaje precum HTML, CSS, JavaScript si altele. Mai jos, este realizată o schemă menită să contureze arhitectura client-server.
2.3 Avantajele/Dezavantajele unei aplicații web
Independența de sistemul de operare. Aplicațiile web pot fi rulate pe orice sistem informatic ce are incorporat un navigator web.
Avantaje :
Nu necesita instalare
Actualizările se realizează foarte ușor intrucât orice modificare a aplicației se va efectua pe partea de server a arhitecturii. Această componentă este stocată pe o altă mașină diferită de cea a utilizatorului. Astfel, se realizează un upgrade doar la codul server, lucru ce nu impacteaza modificări asupra componentei client a arhitecturii.
Pot fi rulate din orice zonă de pe glob. Singurele cerințe sunt existența unei conexiuni la Internet si un navigator web.
Pot fi utilizate de pe diverse dispozitive cum ar fi laptop-uri,tablete, telefoane inteligente (smartphone) dat fiind faptul că acestea au un browser web incorporat.
Backup-ul se realizează ușor deoarece datele sunt stocate centralizat
Acces direct la ultimele informații
Dezavantaje:
Necesitatea unei conexiuni la Internet
Internetul nu e mereu 100% disponibil
Necesitatea de a suporta diferite sisteme de navigare și diferite versiuni a acestora
Riscuri de securitate
2.4 Visual Studio Community IDE
Visual Studio Community 2015 este un mediu integrat de dezvoltare software. Acesta este folosit de către dezvoltatori pentru a realiza aplicații pe diferite dispozitive. Ediția community include toate facilitățile necesare pentru un student, un freelancer sau o echipa mica pentru a dezvolta aplicații .
De ce am ales Visual Studio Community?
Motivele sunt urmatoarele:
Unelte complexe de programare
Unelte web
Limbaje de programare multiple
Integrare Git
Unelte complexe de programare
Visual Studio oferă asistență in timp real pe masură ce codul este redactat indiferent de limbajul de programare ales, fie că este vorba de C#/VB si C++ sau JavaScript si Phyton.
Se folosește de un InetlliSense pentru a utiliza completare automată astfel incat crește viteza si acuratețea scrierii de cod. Conține unelte care te ajută să vezi rapid definții ale unor API ( application programming interface) si iți arată in timp real posibilele erori de cod oferind sugestii spre rezolvarea acestora.
Folosind Code Lens avem la dispoziție o bună imagine de ansamblu asupra codului.
Putem vizualiza dacă testele unei metode trec sau dacă avem ultima versiune a unei metode.
Code Lens se concentrează asupra a trei obiective importante asupra unei metode/clase : impact, test si ultima versiune.
Impactul se referă la faptul că putem urmări ce metode/clase sunt impactate de modificarea metodei/clasei de la care pornim.
Testul ne ajută sa observăm dacă o metodă a fost testată sau nu si care este rezultatul testului.
Ultima versiune ne arată dacă deținem sau nu ultima versiune a unei metode/clase, iar daca rezultatul este negative vom ști că trebuie sa luăm ultima versiune de pe serverul unde este salvata aplicația.
Unelte web
Putem dezvolta aplicații pentru web folosind ASP.NET, Node.js, Phyton si JavaScript.
La care se adaugă framework-uri complexe cum ar fi : AngularJS, jQuery, Bootstrap, Djangp.
Limbaje de programare multiple
Suportul pentru multiple limbaje de programare include : C#, Visual Basic, F#, C++, JavaScript, Phyton si altele. Visual Studio te ghideaza in timp ce scrii, depanezi sau testezi cod indiferent de limbajul de programare ales.
Integrare Git
Găzduirea codului online se poate realiza cu ușurință. Gestionarea codului sursă in repositoare Git se poate realiza folosind orice furnizor inclusive GitHub. Se poate folosi chiar Visual Studio Online pentru a gestiona codul. Visual Studio Online furnizeaza un set de unelte de tip cloud care lucrează impreună cu IDE-ul sau editorul utilizat.
Pentru acest proiect am ales sa folosesc Visual Studio Online, deoarece imi oferă o imagine de ansamblu practică si mi-am salvat codul in cloud folosind un repo de tip Git.
2.5 Comparatie intre Visual Studio Community IDE si Visual Studio Professional IDE
Principalul avantaj al utilizării ediției Community este cel financiar, astfel încat aceasta este gratuită pentru orice tip de utilizator. Deși cele doua ediții dispun ce aceleasi unelte termenii legali decid cine poate folosi un anume produs. Adițional, Visual Studio Professional dispune de anumite servicii si beneficii cum ar fi training software, acces gratuity la serviciile cloud oferite de Azure.
2.6 Framework-ul .NET
Framework-ul .NET este o platformă pentru a dezvolta aplicații pentru for Windows, Windows Phone, Windows Server, and Microsoft Azure. Este compus din CLR ( common language runtime) si biblioteca de clase specifică care include clase, interfețe si alte tipuri de date. Acest framework furnizează un mediu de execuție gestionat, dezvoltare simplă si integrare cu o varietate de limbaje de programare precum Visual Basic si Visual C#.
De asemenea, pune la dispoziție un mediu de rulare numit CLR ( common language runtime) ce rulează codul si furnizează servicii ce ușurează procesul de dezvoltare.
Common Language Runtime este o mașină virtuală, componentă a framework-ului .NET ce gestionează execuția programelor .NET. Un process numit just-in-time-compilation realizează conversia dintre codul compilat în intrucțiuni mașină ce sunt interpretate de către unitatea central de procesare si apoi executate.
Framework-ul .NET este conceput pentru a îndeplini următoarele obiective:
Să pună la dispoziție un mediu consistent de programare orientat obiect, indiferent de locul în care este stocat si executat codul.
Să furnizeze un mediu de execuție al codului ce promovează execuția sigură la nivel de securitate.
Să furnizeze un mediu de execuție al codului ce elimină problemele de performanță.
Să construiască sistemul de comuncații la nivelul industriei actuale, astfel încât codul bazat pe framework-ul .NET să poată fi integrat cu orice alt cod.
Să pună la dispoziție dezvoltatorului opțiunea de a dezvolta diferite tipuri de aplicații cum ar fi cele bazate pe Windows și cele bazate pe Web.
2.7 Aplicații web ASP.NET
ASP.NET este o platformă web ce furnizează servicii necesare construirii unei aplicații web bazată pe un server. ASP.NET face parte din framework-ul .NET, prin urmare toate funcționalitățile framework-ului .NET sunt disponibile pentru aplicațiile ASP.NET. Acest tip de aplicație poate fi scris in orice limbaj de programare compatibil cu CLR ( common language runtime), inclusiv Visual Basic si C#.
2.7 Html, CSS, BootStrap, JavaScript
HyperText Markup Language, abreviat ca HTML, este un limbaj de marcare standard utilizat pentru a crea pagini web. Navigatoarele web pot citi fisiere HTML și să le interpreteze in pagini web vizuale sau audio. HTML descrie structura unui sit web din punct de vedere semantic, acest lucru il caracterizeaza ca fiind un limbaj de marcare și mai puțin unul de programare.
Caracteristicile inițiale pentru orice element HTML sunt definite in navigatorul web, însă aceste caracteristici pot fi modificate de către designer-ul paginii web folosind CSS.
CSS- Cascading Style Sheets este un limbaj folosit pentru a controla prezentarea elementelor
unui document scris intr-un limbaj de marcare. Folosind CSS putem stiliza de exemplu fontul, culoare, dimensiunea unor elemente HTML.
Un framework ce îmbină elementele de mai sus (HTML+CSS) este Bootstrap ce este o colecție open-source de utilități pentru a crea situri web și aplicații web. Acesta conține pe lângă HTML si CSS, extensii JavaScript. Scopul acestui framework este de a facilita dezvoltarea dinamică a siturilor web si a aplicațiilor web.
Bootstrap este un framework pentru partea de front-en a aplicației, in consecință , o interfață pentru utilizator, spre deosebire de codul server-side ce implică partea de back-end a aplicației.
Bootstrap este compatibil cu ultimele versiuni de navigatoare web precum Google Chrome, Firefox, Internet Explorer, Opera.
Începând cu versiunea 2.0 suportă design-ul web receptiv. Asta insemnând că schema generală a unei pagini web se ajustează automat, luând în considerare caracteristicile dispozitivului utilizat ( desktop, tablet, telefon mobil)
Începând cu versiunea 3.0, Bootstrap a adoptat o filosofie de design orientate către mobil subliniind design-ul receptiv.
În cele ce urmează o să arăt această funcționalitate în aplicația dezvoltată de către mine.
Pagina de login a aplicației folosind un device de tip desktop.
-Pagina de login a aplicației folosind un device mobil
Fiind de tip open-source, acest framework este disponibil pe GitHub. Dezvoltatori din toată lumea sunt încurajați să participe la proiect pentru a avea propria contribuție la această platformă.
2.8 C#
C# este un limbaj de programare elegant,type-safe, orientat obiect ce permite dezvoltatorilor sa construiasca a gamă largă de aplicații sigure si robuste ce ruleaza prin intermediul framework-ului .NET. Folosind acest limbaj de programare se pot crea aplicații locale pe Windows, servicii web XML, aplicații client-server, aplicații de baze de date si multe altele.
Sintaxa limbajului C# este expresivă, dar în același timp foarte simplă si ușor de învațat. Renumitele acolade vor fi ușor recuonscute de către orice persoana familiară cu C,C++ sau Java. Sintaxa C# simplifică multe dintre complexitățile limbajului C++ punând la dispoziție caracteristici preum posibilitatea ca valoarea unui tip de date să fie nulă, enumerații, delegate ( delegate in C# este similar cu o funcție pointer din C sau C++. Folosind delegate putem încapsula într-un obiect de tip delegate o referință către o metodă), expresii lambda si acces direct la memorie. Caracteristici ce nu se întalnesc in alte limbaje precum Java.
Fiind un limbaj orientat obiect, C# suportă conceptele de încapsulare, moștenire si polimorfism. Toate variabilele, metodele, incluzând metoda Main, sunt încapsulate in definiții de clase. O clasă poate moșteni direct de la o clasă părinte, dar poate implementa oricâte interfețe. Metodele din clasa derivată ce suprascriu metodele din clasa părinte trebuie marcate prin cuvantul-cheie override pentru a preveni o redefinire accidentală. În C#, o structură de tip struct este ca o clasă mai puțin complexă, poate implementa interfețe, dar nu suportă conceptul de moștenire. Pe lângă aceste principii de bază ale programării orientate obiect, C# furnizează LINQ ( Language-Integrated Query) ce permite folosirea de interogări built-in.
Realizarea unei aplicații in C# este destul de simplă comparând cu alte limbaje precum C si C++ si mai flexibilă decât in Java, întrucât nu există o ordine prestabilită pentru declararea unei metode sau a unui tip de date. Un fișier sursă scris în C# poate defini oricâte clase, struct-uri, interfețe si evenimente.
Programele scrise in limbajul C# rulează pe framework-ul .NET, o componentă integrală Windows ce a fost detaliată mai sus.
Următoarea diagramă ilustrează relațiile compile-time si run-time ale fisierelor sursă C#, biblioteca de clase a framework-ului .NET și CLR.
Folosind C# pot fi dezvoltate patru tipuri de aplicații:
Aplicații de tip consolă
O aplicație de tip consolă folosește ca date de intrare și date de ieșire standardul unei linii de comandă. Aplicațiile de tip consolă folosesc clasa System.IO pentru a gestiona datele de intrare și cele de ieșire. Aceste aplicații sunt ușor de realizat întrucât pentru a le dezvolta se poate folosi Visual Studio, dar și alte medii de dezvoltare cum ar fi un editor text precum Notepad.
Aplicații Windows
Aplicațiile Windows au o interfață grafică asemanatoare cu cea din Windows, având butoane și câmpuri ( ex: list boxes) pentru datele de intrare. Pentru a dezvolta rapid o aplicație din punctul de vedere al interfeței grafice C# pune la dispoziție Windows Forms. Aplicațiile Windows Forms folosesc clase din namespace-ul System.Windows.Forms . Aceste aplicații sunt ușor de realizat întrucât pentru a le dezvolta se poate folosi Visual Studio, dar și alte medii de dezvoltare cum ar fi un editor text precum Notepad.
Aplicații ASP.NET
O aplicație ASP.NET rulează pe un server web și se folosește de navigatoare web precum Internet Explorer sau Firefox. Tehnologia ASP.NET facilitează dezvoltarea aplicațiilor web intr-un mod ușor și rapid.
Servicii web
Serviciile web sunt aplicații complexe ce pot fi accesate folosind protocoale standard de Internet și care oferă servicii precum cotațiile curente ale bursei, conversii ISBN – titlu, ce pot fi folosite de alte aplicații.
Rezumat
C# a fost creat special pentru platforma .NET
C# este folosit impreuna cu framework-ul .NET, ceea ce oferă acces la multe biblioteci create special pentru Windows.
CLR (Common Language Runtime) este o componentă a framework-ului .NET care face posibila compilarea si executarea aplicațiilor scrise in C# sau Visual Basic .NET.
C# este simplu, type-safe, orientat obiect și cu o performanță de nivel înalt.
Clasele sunt baza acestui limbaj de programre și a programării orientate obiect deoarece permit crearea de noi tipuri de date .
Folosind C# se pot dezvolta aplicații de tip: consolă, windows, web si servicii web.
3. PREZENTAREA APLICAȚIEI
3.1 Introducere
Aplicația The Outfit este un sit web ce recomandă haine pentru sexul feminin pe baza unor opțiuni setate de către utilizator.
Obiectivul aplicației este de a veni in sprijinul tuturor femeilor ce se confruntă cu o indecizie asupra stilului vestimentar. Astfel, această aplicație oferă sugestii vestimentare ce pot imbunătăți aspectul estetic vestimentar.
3.2 Autentificarea in aplicație
Adresa la care se accesează aplicația cu ajutorul unui browser web este:
http://theoutfit.azurewebsites.net/
Un utilizator poate fi de două tipuri:
Admin
Cont special creat pentru administrarea bazei de date a aplicației
User
Cont ce poate fi creat de oricine pentru a utiliza aplicația
Un utilizator de tip user are următoarele drepturi:
Să se logheze în aplicație având un username si o parolă setate la inregistrare
Să configureze un profil în baza căruia i se vor recomanda un set de articole vestimentare
Să salveze un anumit articol vestimentar pe o pagină specială creată numită Wardrobe
Să acceseze pagina de About unde se află informații despre aplicație
Să acceseze pagina de Contact unde poate contacta administratorul aplicației
Un utilizator de tip admin are toate drepturile utilizatorului de tip user la care se adaugă:
-administrarea bazei de date
3.2 Diagrama claselor
O clasă este o colecție de obiecte ce au același comportament( metode sau operații) si aceleași caracteristici. În UML (Unified Modelling Language) o clasă este o diagramă statică ce descrie structura unui sistem software.
Diagrama generală a cazurilor de utilizare:
Diagrama de secvență pentru vizualizarea recomandărilor:
Diagrama de secvență pentru salvarea unui articol vestimentar:
3.3 Cazuri de utilizare
Să presupunem că un utilizator dorește să obțină o recomandare asupra stilului vestimentar cât mai precisă. Pentru a realiza acest lucru utilizatorul are la dispoziție un formular ce trebuie completat in funcție de nevoile acestuia rezultând astfel un set de articole vestimentare ce satisfac necesitățile clientului.
Principalele cazuri de utilizare sunt:
Autentificare – implică furnizarea unei adrese de email valide si alegerea unei parole sau conectarea in aplicație folosind rețeaua de socializare Facebook,oferind aplicației acces la date personale din profilul de Facebook.
Configurare profil- implică completarea unui formular în baza căruia se vor genera liste de articole vestimentare potrivite nevoilor utilizatorului.
Contact- implică furnizarea unor date de tip autentificare pentru a contacta administratorul sitului.
Metodologia cazurilor de utilizare permite identificarea, clarificarea si organizarea acestei aplicații. În UML actorii, sunt indivizii ce interacționează cu sistemul in concordanță cu rolul acestora. Această aplicație poate sa aibă un actor inregistrat sau neînregistrat.
Detalierea cazurilor de utilizare:
I.Autentificare utilizator
Realizează procedeul prin care un utilizator se înregistrează in aplicație.
Fluxul de activități se împarte în două categorii:
a)Autentificare folosind adresa de e-mail
b)Autentificare folosind contul de Facebook
a)Autentificare folosind adresa de e-mail
Introducerea adresei de e-mail si a parolei (setate in prealabil la înregistrarea in aplicație) în pagina de Log in
Validarea datelor introduse
Daca datele introduse sunt corecte atunci userul este autentificat în aplicație și redirecționat către pagina principală a sitului
Dacă datele introduse sunt incorecte atunci userul este atenționat printr-un mesaj de eroare marcat cu roșu că datele sunt invalide și poate sa încerce din nou reluând fluxul de autentificare.
Această buclă se încheie în momentul în care userul este autentificat sau nu mai dorește să mai încerce.
b)Autentificare folosind contul de Facebook
– Userul dă click pe butonul de autentificare via Facebook
– Se verifică datele furnizate
– Daca datele sunt corecte utilizatorul este rugat sa introducă o adresă de e-mail pentru aplicația curentă, apoi este redirecționat către pagina principală a aplicației.
-Daca date sunt incorecte utilizatorul poate încerca din nou.
Această buclă se încheie în momentul în care userul este autentificat sau nu mai dorește să mai încerce.
II.Configurare profil
Procedeul prin care utilizatorul își exprimă nevoile spre a vizualiza o recomandare punctuală.
Configurarea profilului se poate realiza numai dacă utilizatorul este înregistrat.
Acțiuni efectuate de utilizator:
Configurare profil
Vizualizarea articolelor vestimentare listate pe categorii
Vizualizarea unui anumit articol pe situl magazinului de unde poate fi achiziționat
Salvarea articolelor vestimentare favorite
Ștergerea articolelor vestimentare favorite
Configurarea profilului:
Actori: Utilizator înregistrat
Acțiuni:
-Utilizatorul selectează dintr-un formular următoarele opțiuni:
-bugetul
-stilul vestimentar
-clima
-culorile preferate
-După selectarea opțiunilor utilizatorul este redirecționat către pagina cu recomandări pentru a vizualiza articolele vestimentare recomandate
Dacă cele două operații sunt realizate cu success atunci cazul de utilizare se repetă până când dorește utilizatorul.
Vizualizarea articolelor recomandate
Actori: Utilizator înregistrat
Acțiuni:
-Userul selectează o categorie de haine din care dorește să vizualizeze articole vestimentare
– După ce a selectat categoria este redirecționat către o pagină cu o listă de haine recomandate din acea categorie
– Utilizatorul poate să:
-salveze articolul
-îl vizualizeze în magazin
Acest caz de utilizare se încheie atunci când dorește userul.
Salvarea articolelor vestimentare preferate
Actori: Utilizator înregistrat
Acțiuni:
-Utilizatorul salvează un articol preferat utilizând butonul Add to Wardrobe
-Dacă articolul nu se află deja salvat atunci cazul de utilizare se încheie.
Ștergerea articolelor vestimentare preferate
Actori: Utilizator înregistrat
Acțiuni:
-Utilizatorul șterge un articol preferat utilizând butonul Remove from Wardrobe
-Cât timp există produse salvate in pagina Wardrobe cazul de utilizare poate fi reluat.
III.Contact
Procedeul prin care utilizatorul poate contacta administratorul sitului.
Contact
Actori: Utilizator neînregistrat, Utilizator înregistrat
Acțiuni:
-Utilizatorul introduce numele, adresa de e-mail si mesajul ce se dorește a fi trimis
Dacă datele introduse sunt corecte cazul de utilizare se incheie, iar utilizatorul este înștiințat că mesajul a fost trimis.
Modul de logare
Logarea în aplicație se poate face in două moduri:
clasic în baza unui e-mail și a unei parole setate la înregistrare
folosind rețeaua de socializare Facebook
Înregistrarea clasică
Utilizatorul introduce o adresă de e-mail și o parolă. Înainte de a da click pe butonul de login are opțiunea de a bifa Remember me . Această opțiune este expusă pentru ca un user să poată rămâne logat în aplicație chiar daca deschide o nouă sesiune a navigatorului web. Acest lucru a fost posibil folosind cookies.
Înregistrarea folosind Facebook
Folosind frameworkul OWIN (Open Web Interface for .NET) am realizat înregistrarea în aplicație prin intermediul unei rețele de socializare.
3.4Sistemul de recomandări
Principala funcționalitate a acestei aplicații o reprezintă sistemul de recomandări. Un sistem de recomandare reprezintă o sublcasă a unui sistem de filtrare ce își propune să prezică preferința unui utilizator asupra unui obiect.
Cele două mari grupuri de tehnici folosite de sistemele de recomandare sunt:
Tehnica Content-based ce examinează proprietățile elementelor recomandate.
Tehnica Collaborative filtering utilizează similaritatea dintre utilizatori și/sau elemente.
Detalierea tehnicilor de recomandare folosite:
Tehnica Content based
Fiecare articol vestimentar are atașat câte un vector binar identificat printr-un id unic ce reprezintă stilul și clima din care face parte acel articol pentru a putea identifica preferințele utilizatorului. La rândul său, utilizatorul are atașat un vector identificat printr-un id de profil unic ce reprezintă opțiunile alese pentru stilul vestimentar și climă.
Exemplu de vectori pentru articol vestimentar:
Stil vestimentar:
Climă:
Aceste trei atașamente pot fi îmbinate sub forma unei matrice formând perechi PreferințăUser-ArticolVestimentar ce reprezintă gradul de preferință al unui utilizator asupra unui articol vestimentar.
Exemplu de matrice PreferimțăUser-StilVestimentar:
Fiecare stil vestimentar aparține intervalului întreg [1;5]. Astfel, utilizatorul decide cât este de interesant de un anumit stil vestimentar. Valorile null reprezintă faptul că userul încă nu a furnizat informațiile necesare configurării profilului.
Exemplu de matrice PreferințăUser-Climă:
Fiecare climă aparține intervalului întreg [1;5]. Astfel, utilizatorul decide din ce climă face parte zona pentru care dorește să i se recomande haine. Valorile null reprezintă faptul că userul încă nu a furnizat informațiile necesare configurării profilului.
Tehnica Collaborative filtering
Fiecare utilizator are opțiunea de a salva un articol,ce i-a fost recomandat , în pagina de Wardrobe. Prin acest mod aplicația salvează date suplimentare despre preferințele utilizatorlui. Această tehnica se folosește de feedback-ul utilizatorilor spre a realiza recomandări cât mai precise.
Fie mulțimile U,B,
U=mulțimea tuturor utilizatorilor;
Fie x U un utilizator
Notăm yx={U-{x}|xU}
B=mulțimea listelor Wardrobe a tuturor utilizatorilor;
B=U Bi
iU
Atunci, definim familia de funcții (Fj) j U
fj : B B
fj=
Această funcție este integrată intr-un ciclu ce pornește de la mulțimea articolelor din Wardrobe a primului user salvat in baza de date până la mulțimea articolelor din Wardrobe a ultimului user salvat in baza de date.
Configurarea profilului si vizualizarea recomandărilor
Utilizatorul înregistrat are următoarele opțiuni pe pagina de configurare a profilului:
Alegerea bugetului
Alegerea gradului unui stil vestimentar
Alegerea climei
Alegerea culorilor preferate
Aceste alegeri sunt reprezentate prin numere întregi din următoarele intervale ce aparțin mulțimilor Buget, GradStil, Climă, respectiv CuloriPreferate :
– [1;3] Buget
– [1;5] GradStil
– [1;5] Climă
– [1;3] CuloriPreferate
Configurarea profilului reprezintă, de fapt, niște bijecții între mulțimile ce sunt vizibile pentru utilizator ( BugetUser, LeisureUser, CasualUser, Glam&RockUser, ElegantUser, ClimăUser, CuloriUser) și mulțimile ce sunt folosite pentru manipularea datelor ( Buget, Leisure, Casual, Glam&Rock, Elegant, Climă, Culori)
Diagrama Venn-Euler ce reprezintă relația de bijecție dintre mulțimea ClimăUser si mulțimea Climă:
ClimăUser Climă
Brr 1
Very cold 2
Moderate 3
Pretty warm 4
Seriously hot 5
Vizualizarea recomandărilor a fost gândită în așa fel încât utilizatorul poate să aleagă, pe rând, categoria de haine din care vrea sa vizualizeze articole vestimentare. Fiecare articol vestimentar aparține unei categorii, iar o categorie conține unul sau mai multe articole. Avem, deci o surjecție între mulțimea articolelor vestimentare si mulțimea categoriilor vestimentare.
Diagrama Venn-Euler ce reprezintă relația de surjecție dintre mulțimea articolelor vestimentare si mulțimea categoriilor vestimentare:
Tricou1 Tops
Tricou2 Accesories
Eșarfă1 Dresses
Eșarfă2
Rochie1
Articole vestimentare Categorii vestimentare
Administrarea bazei de date
Fiind vorba despre o aplicație web, este de la sine înțeles că baza de date nu poate fi stocată local, astfel încât am ales serverul pus la dispoziție de către Azure pentru a găzdui baza de date.
Pentru a gestiona baza de date am folosit un model creat in Visual Studio IDE pentru a lucra cu entități ce fac apoi referire la tabelele din baza de date.
Diagrama bazei de date conform modelului creat:
Pentru a popula baza de date cu articole vestimentare am folosit Product API furnizat de către Shopstyle Collective. Manipulând date de tip JSON am putut integra articole vestimentare de pe situl : http://shopstyle.com în aplicația mea. Acest lucru a fost posibil folosind o pagină specială de administrator care a fost securizată astfel în două moduri:
Butonul ce conduce către pagina de admin este vizibil doar dacă utilizatorul este logat în aplicație în calitate de admin.
Pagina de admin se va încarca doar dacă utilizatorul este logat ca admin în sensul că dacă un user ce nu este admin dorește să acceseze url-ul către pagina de admin acest lucru nu va fi posibil datorită unui fișier de configurare special creat în acest scop.
Pagina de admin:
Specificații aplicație
Fiind o aplicație găzduită online aceasta poate fi rulată in orice navigator web folosind dispositive precum tabletă, telefon mobil, desktop, laptop.
Singura mențiune este faptul funcționalitățile aplicației funcționează conform scenariului așteptat doar pentru ultimele două versiuni ale nagivatoarelor web larg utilizate precum Firefox si Google Chrome.
4. CONCLUZII ȘI BIBLIOGRAFIE
4.1 Concluzii
Această aplicație vine în sprijinul tuturor femeilor ce doresc să minimizeze timpul petrecut la cumpărături. Tehnologia este într-o continuă dezvoltare, astfel încât aceasta vine în sprijinul nostrum pentru a ne ușura viața și pentru a realiza anumite activități mai rapid.
Realizarea lucrării de față contribuie la dezvoltarea tehnologiei și îmbunătățirea stilului vestimentar al unui utilizator.
4.2 Bibliografie
1.https://msdn.microsoft.com
2.http://www.visualstudio.com
3.http://wikipedia.com
4.http://owin.org/
5. https://www.shopstylecollective.com
6. „Learning C# 3.0 Master the fundamentals of C# 3.0”, autori: Jesse Liberty, Brian MacDonald
7. G. Adomavicius and A. Tuzhilin, “Towards the next generation of rec-
ommender systems: a survey of the state-of-the-art and possible exten-
sions,” IEEE Trans. on Data and Knowledge Engineering 17:6, pp. 734–
749, 2005.
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: Proiectarea Unei Aplicatii Pentru Recomandarea Unui Stil Vestimentar Feminin (ID: 150249)
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.
