FACULTATEA DE MATEMATICĂ SI INFORMATICĂ CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI LUCRARE DE LICENȚĂ APLICATIE WEB PENTRU GESTIONAREA UNUI PARC AUTO… [611346]
UNIVERSITATEA DIN BUCURESTI
FACULTATEA DE MATEMATICĂ SI INFORMATICĂ
CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
LUCRARE DE LICENȚĂ
APLICATIE WEB PENTRU GESTIONAREA UNUI PARC AUTO
Coordonator științific: Absolvent: [anonimizat]-Andrei
BUCUREȘTI
2017
Cuprins
2
1.Introducere
Până de curând, producătorii de autovehicule și dealerii au avut tendința să se concentreze
asupra vânzării de vehicule noi, excluzând autoturismele uzate, adesea văzând comerțul cu
autovehicule second-hand ca un produs secundar, nedorit al vânzărilor de autoturisme noi.Mașinile
noi,cu prețuri evident mai ridicate decât mașinile uzate,se aflau în centrul eforturilor de vânzări
datorită capacității de atrage cumpărători mai înstăriți,insemnând o cifră de afaceri mai mare. De-a
lungul timpului, însă, concurența pe piața de autoturisme a dus la o situație surprinzătoare: vânzările
de mașini uzate au început să aducă mai mult profit decât vânzările de mașini noi ,de înaltă calitate.
Piața de automobile second-hand în întreaga lume a crescut semnificativ. În Franța, de
exemplu, vânzările de unități de mașini second-hand au crescut de la 4,7 milioane la 5,4 milioane
între 1990 și 2005, în același timp vânzările de vehicule noi au scăzut de la 2,3 milioane la 2,07
milioane de unități.
Dezvoltarea internetului a schimbat lupta dintre distribuitori și consumatori.Clienții sunt din
ce în ce mai informați despre autoturisme, calitatea acestora, valoarea reziduală, prețurile aplicate,
costurile de finanțare .Un studiu recent subliniază faptul că majoritatea cumpărătorilor de
autovehicule utilizate găsesc vehiculul pe care îl cumpără căutând pe internet ,decât prin intermediul
anunțurilor din ziare, sau reviste.
Piața de mașini second-hand este cea mai activă în Statele Unite, Franța și Marea Britanie.
Pe aceste piețe, afacerea cu mașini uzate generează venituri economice considerabile. În schimb,
piața de mașini uzate este mai slabă în Canada, Japonia și Spania. De fapt, fiecare piață națională
este influențată de condițiile socio-culturale. Dincolo de impactul culturii, cu toate acestea, este
necesar să se examineze modul în care piețele funcționează în termeni economici.
Teoriile economice prevăd, de asemenea, că vânzătorii și cumpărătorii posedă aceleași
informații prin care să determine calitatea unui produs aflat în tranzacție. Aceasta este definită ca o
relație simetrică între cumpărători și vânzători. Cu toate acestea, pentru anumite bunuri, inclusiv
vehiculele uzate, vânzătorii pot decide să nu dezvăluie valoarea reală (din punct de vedere al
calității) a ceea ce este vândut. Aceasta înseamnă că este posibil să se pună un preț mare pentru
bunurile de calitate mediocră. Cumpărătorii nu sunt în măsură să determine calitatea reală a ceea ce
cumpără. Vânzătorii, pe de altă parte, sunt conștienți de calitatea a ceea ce vând. Această situație
este una tipică de asimetrie între cumpărători și vânzători. Pentru ca piața să se extindă, vânzătorii
trebuie să se asigure că vor câștiga încrederea consumatorilor prin eliminarea, sau cel puțin
minimizarea, a asimetriei informațiilor.
În Europa, de exemplu, unele surse estimează că fiecare vehicul are în prezent pe parcursul
întregii sale vieți o medie de patru proprietari, ceea ce oferă dealerilor posibilitatea de a vinde
același vehicul de mai multe ori.Supraproducția globală de autovehicule,a dus la creșterea
concurenței între mărci și astfel a condus la un nivel de reduceri oferite cumpărătorilor de
autoturisme noi, atât de către dealeri, cât și de către producători.
Site-urile,având fotografii, descrieri detaliate și rapoarte privind istoricul vehiculelor pentru
a asigura cumpărătorii de calitatea autovehiculelor , au facilitat vânzarea vehiculelor second-hand
pe piața privată.Majoritatea consumatorilor de astăzi au cumpărat și vândut mai multe mașini și sunt
din ce în ce mai exigenți atunci când achiziționează un vehicul nou sau unul folosit.
Reglementarea guvernamentală este unul dintre cei mai influenți factori care afectează
dezvoltarea pieței vehiculelor uzate într-o anumită țară.
Dezvoltarea de instrumentelor online pentru cumpărători și vânzători a făcut piața de
autoturisme mai competitivă ,oferind în același timp distribuitorilor noi oportunități de a îmbunătăți
3
operațiunile și de a capta vânzări profitabile. Cele mai importante strategii de succes pe care dealerii
trebuie să le urmeze pentru a profita de aceste oportunități sunt:
-îmbunătățirea experienței clienților
-raționalizarea relațiilor cu clienții
-promovare online și merchandising
-maximizarea oportunităților de vânzări cu marjă mare
-optimizarea programelor de certificare a vehiculelor second-hand
Industria automobilelor este de o importanță primordială pentru economia Uniunii Europene
și joacă un rol major în comerțul internațional. Autovehiculele noi și uzate au reprezentat 11,0% din
valoarea totală a exporturilor din afara UE în 2016, dar numai 4,5% din valoarea totală a
importurilor din afara UE.
În 2016, UE a exportat autovehicule în valoare de 192,0 miliarde de euro. În același an,
importurile s-au ridicat la 40% din această valoare (77,0 miliarde EUR), rezultând un surplus
econimic al UE de 128,2 miliarde EUR.Statele Unite au rămas partenerul numărul unu pentru
exporturile din afara UE , cu o cotă de 25% (aproape de 48 de miliarde de euro). China a reprezentat
a doua piață de export pentru autovehicule din UE (16%), urmată de Turcia (7%), Elveția și Japonia
(ambele 5%).Germania a fost responsabilă pentru mai mult de jumătate (53%) din totalul
exporturilor UE în 2016. Regatul Unit, ocupând locul al doilea, a înregistrat puțin de sfert din
valoarea exportului german, cu o cotă de 13%. În termeni relativi, adică în comparație cu comerțul
total în afara UE, exporturile de autovehicule din Germania reprezentau 20% din comerțul total.
Această cotă a fost depășită doar de Slovacia (43%).
Industria automobilelor rămâne de o importanță majoră pentru UE, producând aproximativ
un sfert din totalul automobilelor din lume. Industria reprezintă 5% din ocuparea forței de muncă în
UE și contribuie în mod semnificativ la multe dintre economiile naționale ale UE. Motivație
4
1.1. Motivație
Piața vehiculelor uzate s-a dezvoltat în ultimul deceniu și este în continuă creștere și are un efect
semnificativ asupra cifrelor de vânzări ale unui producător de automobile. Cumpăratorii au devenit
mai exigenți,o data cu fiabilitatea și calitatea imbunătățită a vehiculelor,implicând investiții
financiare semnificative din partea producătorilor,care trebuie să se adapteze rapid noilor cerințe
pentru a nu rămâne în urmă.
Principalul motiv pentru care este abordată această temă este,deși piața de autoturisme
second-hand este în creștere,lipsa site-urilor specializate în vânzarea automobilelor uzate în țara
noastră(exista o singură aplicație de acest gen, Autovit).Nu de puține ori s-a întâmplat să dorim
aflarea câtor mai multe informații fără prea multe bătăi de cap,internetul fiind una dintre cele mai
simple metode prin care putem afla anumite date despre un produs pe care dorim să-l achiziționăm.
S-a ales conceperea unei aplicații de promovare a automobilelor uzate datorită avantajelor
față de o aplicație e-comert sau o aplicație de cumpărare a unui automobil nou.În cazul unei aplicații
de tip e-comerț,relația dintre client și vânzător este una asimetrica din punct de vedere al
informațiilor,consumatorul având acces la un număr limitat de date despre produs.În acest caz o
aplicație de gestionare este benefică eventualului client,doarece el poate afla mai multe informații
de la vânzător,poate negocia prețul autovehicului și cel mai important aspect,poate efectua un test-
drive.
5
2.Tehnologii folosite
În cadrul acestui capitol vor fi prezentate tehnologiile folosite pentru conceperea proiectului.
2.1 PHP
Ce este PHP?
PHP: Hypertext Preprocessor. Este un sistem software open source ,sintaxa sa împrumutând
elemente provenite din limbajele C, Java și Perl, fiind un limbaj ușor de învățat. Scopul principal al
limbajului este acela de a permite dezvoltatorilor web de a crea rapid pagini web generate dinamic.
Creat în 1994 de către Rasmus Lerdorf, prima versiune a PHP a fost un simplu set de piese pentru
Common Gateway Interface (CGI), scris în limbajul de programare C. În iunie 1995, Rasmus punea
la dispoziția publicului codul sursă pentru PHP Tools, care a permis dezvoltatorilor să-l folosească
așa cum consideră necesar. De asemenea, le-a permis utilizatorilor și chiar i-a încurajat să rezolve
erorile apărute în urma compilării codului.
PHP 3.0 a fost prima versiune care se aseamănă cu versiunea PHP aflată astăzi pe piață.
PHP FI 2.0 era încă ineficientă pentru a crea o aplicație de comerț electronic , astfel Andi Gutmans
și Zeev Suraski din Tel Aviv, Israel, au început să rescrie o nouă versiune.
O caracteristică cheie introdusă în PHP 3.0 a fost folosirea conceptelor programării orientat-obiect.
La momentul de vârf, PHP 3.0 a fost instalat pe aproximativ 10% din servere web de pe Internet.
În iarna anului 1998, la scurt timp după ce PHP 3.0 a fost lansat oficial, Andi Gutmans și Zeev
Suraski au început să lucreze la o rescriere a limbajului. Obiectivele de proiectare au fost de a
îmbunătăți performanța aplicațiilor și de a modulariza codul.
PHP 4.0 a inclus suportul pentru mai multe servere Web, sesiuni HTTP, moduri mai sigure
de gestionare a datelor .În data de 13 iulie 2004 PHP 5 a fost lansat, incluzând caracteristici noi,
cum ar fi suport îmbunătățit pentru programarea orientată pe obiecte, extinderea PHP Data Objects
(DOP) și numeroase îmbunătățiri performanță. În 2008, PHP 5 a devenit singura versiune stabilă în
curs de dezvoltare.Dezvoltatorii PHP au primit critici datorită lipsei de suport petru
Unicode,incercându-se implementarea pe PHP6,insă fără un succes notabil.
PHP 7 a fost numit inițial PHP Next Generation (phpng). A fost scris de Dmitry Stogov,
Xinchen Hui și Nikita Popov și vizează optimizarea performanțelor Zend Engine de a utiliza
structuri de date mai compacte.
Echipa de dezvoltare PHP anunță disponibilitatea imediată a PHP 7.1.5. Multe bug-uri au fost fixate.
PHP include mai multe biblioteci open source.PHP este un sistem Internet-aware cu module built-in
pentru accesarea File Transfer Protocol (FTP) și mai multor servere de baze de date, cum ar fi
PostgreSQL, MySQL, Microsoft SQL Server și SQLite.
Există două modalități de a rula un program PHP:din linia de comandă sau rularea cu ajutorul unui
web server.
PHP este în momentul actual cel mai utilizat limbaj în domeniul programării web.
2.2 HTML
6
Ce este HTML?
HTML este limbaj de descriere a structurii paginilor web .HTML oferă programatorilor
mijloacele necesare pentru a:
Publica online documente cu titluri, text, tabele, liste, imagini, etc.
Prelua informații on-line, prin intermediul hypertext links.
Utiliza module de proiectare pentru efectuarea de tranzacții cu servicii remote.
HTML poate încorpora programe scrise într-un limbaj de scripting cum ar fi JavaScript, care
influențează comportamentul și conținutul paginilor web. Includerea CSS definește aspectul și
conținutul. World Wide Web Consortium (W3C), deține ambele standarde, HTML si CSS,
încurajează utilizarea CSS asupra codului HTML .
În 1980, fizicianul Tim Berners-Lee, un contractor la CERN, a propus și creat prototipul
ENQUIRE, un sistem pentru cercetătorii CERN pentru a folosi și distribui documente. În 1989,
Berners-Lee a scris un sistem Internet-based hypertext. Berners-Lee a considerat HTML ca o
aplicatie a SGML. Acesta a fost standardizat în mod oficial de către Task Force Internet
Engineering (IETF).
HTML markup este format din mai multe componente cheie:tag-uri (și atributele lor), tipuri de
date , referințe și entități. Tag-urile HTML cel mai frecvent vin în perechi, cum ar fi <h1> și </ h1>,
deși există și elemente fără preche, cum ar fi <img>. Primul tag-ul într-o pereche este tag-ul de start,
iar al doilea este tag-ul final (acestea sunt, de asemenea, numite și opening tags și closing tag).
Documentele HTML implică o structură de elemente imbricate. Acestea sunt indicate în
document prin etichete HTML, închise în paranteze : <p> .În caz, general, conținutul unui element
este indicat printr-o pereche de tag-uri: un "start tag" <p> și "end tag" </ p>.
HTML defineste un set de 252 de caractere și un set de caractere numerice (1 114 050) care permit
scrierea caracterelor , cu markup, mai degrabă decât literal. Un caracter literal și omologul său de
markup sunt considerate echivalente și sunt identice.
HTML definește mai multe tipuri de date, cum ar fi datele scriptului ,datele stylesheet și o serie de
tipuri de atribute ale valorilor, inclusiv ID-uri, nume, numere, URI-uri, unități de măsură, limbi,
descriptori media, culori, codificarea caracterelor, datele și ora. Toate aceste tipuri de date sunt
specializări de date caracter.
World Wide Web este compus în principal din documente HTML transmise de la servere
Web către browsere Web utilizând Hypertext Transfer Protocol (HTTP). Cu toate acestea, HTTP
este utilizat pentru a servi imagini, sunete și alte tipuri de conținut, precum și HTML. Pentru a
7
permite browser-ului web să știe cum să se gestioneze fiecare document pe care il primește,
informațiile sunt transmise împreună cu documentul.
De la început, HTML și protocoalele asociate s-au bucurat de o popularitate prematura și un
grad de acceptare ridicat deși nu au existat standarde clare în primii ani ai limbajului. Deși creatorii
săi au conceput initial HTML ca un limbaj semantic lipsit de detalii de prezentare, s-a produs
implementarea elementelor de prezentare și atributelor în cadrul limbajului, determinată în mare
măsură de către gama variată de furnizori browser. Pentru revenirea HTML-ului la statutul de
limbaj semantic, W3C a dezvoltat, CSS si XSL pentru a prelua sarcina prezentării.
Există două variante HTML,aflate pe axe diferite: HTML bazat pe SGML, comparativ cu HTML
bazat pe XML (denumit XHTML) .
HTML 4 definește trei versiuni diferite ale limbajului: Strict, Transitional și Frameset.
Versiunea Strict destinată pentru documentele noi și este considerată best practice, în timp ce
versiunile Transitional și Frameset au fost dezvoltate pentru a facilita tranziția documentelor
conforme cu specificațiile mai vechi sau.HTML5 a început să câștige popularitate în dezvoltarea
software înainte de adoptarea sa oficială, în octombrie 2014, reducând încrederea în alte tehnologii
web, cum ar fi Adobe Flash și Microsoft Silverlight. Elementul HTML5 video pentru încorporarea
videoclipurilor într-un document, a fost o inovație majoră. HTML5 este, de asemenea, conceput
pentru a schimba platforma Web dintr-o platformă de navigare,într-una unde vei putea crea aplicații
distribuite.
World Wide Web Consortium (W3C) a dezvăluit câteva detalii cu privire la ceea ce va fi
inclus în următoarea iterație a standardului HTML5 și informații cu privire la direcția pe care
standardul o va urmări. Următoarea versiune HTML5 va fi numit 5.2 și va introduce un nou element
de meniu, o politică de securitate pentru conținutul web și adrese de e-mail cu caractere non-latine.
W3C are în dezvoltare Web Components, un framework pentru identificarea componentelor
reusabile ale website-urilor și Service Workers pentru a facilita executarea mai multor funcții într-un
browser cu capacități offline.
Pentru securitatea web, W3C are trei soluții:
Un framework de autentificare web. Aceasta soluție este în progres, scopul acesteia este de a sprijini
securitatea prin autentificare multi-factor.
Web Crypto API finalizată la inceputul acestui an, aceasta oferă un API JavaScript pentru
operațiunile criptografice de bază în aplicațiile web.
Best practices for web-development security,de asemenea finalizată și aceasta implementare,are ca
scop împiedicarea schimbului de informații între aplicații.
8
2.3 Bootstrap
Bootstrap este un framework open-source pentru proiectarea site-urilor și aplicațiilor web.
Acesta conține HTML și template-uri de design bazate pe CSS pentru tipografie, formulare,
butoane, navigare și alte componente de interfață, precum și extensii opționale JavaScript. Spre
deosebire de framework-uri, este strict dedicat dezvoltării front-end. Bootstrap ocupă locul al doilea
în topul proiectelor de pe GitHub.
Bootstrap, numit inițial Twitter Blueprint a fost dezvoltat de către Mark Otto și Jacob
Thornton pe Twitter ca un framework pentru a încuraja consecvența între instrumente interne.
Înainte de Bootstrap, diferite biblioteci au fost utilizate pentru dezvoltarea interfețelor, având ca
rezultat neconcordanțe și o costuri de întreținere ridicate.
Bootstrap este un framework modular și constă dintr-o serie de Less stylesheets care implementează
diferitele componente ale setului de instrumente. Aceste stylesheets sunt compilate, de obicei, într-
un bundle și incluse în paginile web, dar componentele individuale pot fi adăugate sau eliminate.
Bootstrap oferă o serie de variabile de configurare de exmplu pentru modificarea culorii.
Începând cu versiunea Bootstaps 2.0 s-a implementat suport pentru responsive web design .
Acest lucru înseamnă că aspectul paginilor web se modifica dinamic în funcție de caracteristicile
dispozitivului folosit (desktop, tabletă, telefon mobil) .
Bootstrap 3 suportă cele mai recente versiuni ale Google Chrome, Firefox, Internet Explorer, Opera
și Safari (cu excepția Windows). De asemenea,oferă suport pentru IE8 și cele mai recente versiuni
Firefox Extended Support.(ESR).
În cadrul versiunii 4.0 ( versiunile alpha lansate) s-au introdus Sass și Flexbox Support.
Alpha 5 a sosit la doar o lună după apariția Alpha 4, cu unele îmbunătățiri și o cu multitudine de
erori remediate.S-a actualizat procesul de build pentru a include toate versiunile compilate de CSS
bundles. Fiecare bundle inclus a fost compilat ,minimizat și trecut prin Sass,la fel ca și celelalte
9
fișiere CSS compilate precedent.În Alpha5 comportamentul grid-ului .container s-a modificat
puțin .A fost setata lățimea fiecărui container cu lățimea maximă: 100%, pentru a asigura o randare
cât mai adecvată în browser în modurile standard și flexbox.
Bootstarp grid
div class="container">
<div class="row">
<div class="col-*-*"></div>
</div>
<div class="row">
<div class="col-*-*"></div>
<div class="col-*-*"></div>
<div class="col-*-*"></div>
</div>
<div class="row">
…
</div>
</div>
10
11
Bootstrap în Laravel
O data cu apariția versiunii Alpha 6 au fost incluse clase pentru afișare, float și flexbox.
Bootstrap în Laravel
2.4 CSS
Cascading Style Sheets, de obicei abreviat ca CSS, este un limbaj stylesheet care definește
aspectul unui document scris în HTML sau XML (inclusiv XML SVG sau XHTML). CSS descrie
modul în care este randat un document pe ecran, pe suport de hârtie, în vorbire sau în alte
medii.Obiectivul de bază al limbajului Cascading Style Sheet (CSS) este de a permite motorului de
căutare să editeze elemente ale paginii cu anumite caracteristici, cum ar fi culoarea, poziționarea .
Sintaxa CSS reflecta acest obiectiv și blocurile sale de bază sunt:
– property, un identificator,ce poate fi citit și identificat ușor , care definește caracteristica ce
este luată în considerare.
-value,descrie modul în care caracteristica este manipulata de către motorul de căutare.
Fiecare proprietate are o gamă de valori valide, care sunt definite printr-o gramatica formală și
semantică sens, implementate de către motorul de browser-ul .
O pereche property- value se numește declarație, iar fiecare motor CSS calculează care
declarație se aplică fiecărui element al paginii.Ambele elemente property-value case-insensitive în
CSS . Declarațiile sunt grupate în blocuri, adică, într-o structură care este delimitată „{“ (U + 007b
LEFT CURLY BRACKET) și o „ }“ (U + 007D RIGHT CURLY BRACKET) . Blocurile pot fi
uneori imbricate, astfel încât și acoladele început cât și cele de sfârșit trebuie să se potrivească.
Astfel de blocuri sunt denumite blocuri de declarare și declarațiile care fac parte din acest bloc sunt
separate prin punct și virgulă „ ; “ (U+00#B SEMICOLON). Un bloc de declarație poate fi gol,
conținând elementul null.Fiecare bloc de declarație (valid) este precedat de unul sau mai mulți
selectori, reprezentând condiții care selectează anumite elemente ale paginii. Perechea selector
group-declaration block se numește ruleset(set de reguli) sau simplu regulă.Un stament este un bloc
de construcție care începe cu caractere non-spațiu și se termină la prima paranteza dreapta sau
virgulă (în afara unui șir,și nu într-un alt {}, () sau [] ).
CSS are diferite niveluri și profiluri. Fiecare nouă versiune CSS păstreaza dar are și noi
caracteristici față de versiunile anterioare.Prima specificație CSS recomandată de către W3C este
nivelul CSS 1, care a fost publicat la data de 17 decembrie 1996 .Håkon Wium Lie și Bert Bos sunt
creditați ca fiind dezvoltatorii originali. Include suport pentru:propietati de font,culoarea
textului,culoarea fundalului,atribute de text,alinierea textului.(W3C nu mai oferă suport pentru
CCS1,fiind considerată deprecated). Nivelul CSS 2 a fost dezvoltat de către W3C și publicat ca o
recomandare în mai 1998. Un superset al CSS 1, CSS 2 include mai multe caracteristici noi, cum ar
fi poziționarea absolută, relativă și fixă a elementelor și z-index.Spre deosebire de CSS 2, care este
o specificație unică care definește
diferite caracteristici, CSS 3 este împărțit în mai multe documente separate denumite
„module“.Unele dintre aceste module sunt CSS Grid și Shortand.
CSS Grid este cel mai puternic sistem de layout în CSS. Acesta este un sistem
bidimensional, ceea ce înseamnă că se ocupa și de coloane și de rânduri, spre deosebire de flexbox,
care este în mare măsură un sistem unidimensional.Folosind Grid poți aplica protocoalele CSS atât
elementului părinte cât și elementului copil.
.container {
{ display: grid | inline-grid | subgrid;
12
}
Shorthand sunt proprietăți CSS care vă permit să specificați valorile mai mult or proprietăți CSS
simultan. Folosind Shorthand un dezvoltator web poate scrie style sheets mai concis și, adesea, mai
ușor de citit.
2.5 JavaScript
JavaScript (abreviat JS) este un limbaj orientat-obiect cu funcții de primă clasă și este
cunoscut ca un limbaj de scripting pentru paginile web, dar, de asemenea,este folosit în multe medii
non-browser.
A fost standardizat de către ECMAScript. Alături de HTML și CSS,JavaScript este una dintre cele
trei tehnologii-cheie din producția de conținut World Wide Web. Majoritatea site-urilor web îl
folosesc, fără a fi nevoie de plug-in-uri. JavaScript este utilizat în medii care nu sunt bazate pe web,
de exemplu documente PDF, și widget-uri desktop. JavaScript ruleaza pe partea de client Web, care
poate fi folosit pentru a proiecta /programa, modul în care paginile web, se comportă în funcție de
anumite evenimente.Contrar concepțiilor, JavaScript nu este „Interreted Java“. Într-un cuvânt,
JavaScript este un limbaj de scripting dinamic bazat pe obiect. Sintaxa de bază este în mod
intenționat similară cu ambele, Java si C ++, pentru a reduce numărul de noi concepte necesare
pentru a învăța limbajul. JavaScript poate funcționa atât ca limbaj procedural, precum și limbaj
orientat pe obiect. Obiectele sunt create programatic în JavaScript, prin atașarea de metode și
proprietăți pentru obiecte goale, în run time, spre deosebire de definițiile clasei din limbajele C ++
si Java. Odată ce un obiect a fost proiectat, acesta poate fi folosit ca un model (sau prototip), pentru
crearea de noi obiecte similare.
JavaScript utilizează prototipuri,spre deosebire de alte limbaje orientate obiect care folosesc
clase pentru moștenireSe pot implementa multe caracteristici bazate pe clasă, cu prototipuri în
JavaScript.
În mai 2017, 94,5% din 10 de milioane de site-uri utilizează JavaScript.Cea mai comună
utilizare a JavaScript este adăugarea de comportament client-side pentru pagini HTML,cunoscut sub
numele de HTML dinamic (DHTML). Script-urile sunt incorporate sau incluse din pagini HTML si
interactionează cu Document Object Model (DOM) al paginii. Câteva exemple sunt:încărcarea
13
conținutului unei noi pagini sau transmiterea de date către server prin intermediul Ajax fără a
reîncărca pagina,animații ale elementelor paginii,conținut interactiv.Deoarece codul JavaScript
poate rula local în browser-ul unui utilizator (mai degrabă decât pe un server de la distanță),
browser-ul poate răspunde la acțiunile utilizatorului rapid, făcând aplicațiile mai receptive.Deoarece
JavaScript ruleaza pe diferite medii de dezvoltare,o parte importantă în testare este de a verifica
dacă scriptul rulează pe mai multe browsere.Proiectul CommonJS care a luat naștere în ianuarie
2009,are ca scop crearea unei biblioteci standard pentru dezvoltare JavaScript în medii non-browser.
2.6 JQuery
JQuery este o bibliotecă cross-platform JavaScript care a fost concepută pentru a simplifica
client-side scripting-ul HTML.Este un software gratuit, open-source sub licența MIT.Analiștii web
indică faptul că acesta este cea mai utilizată bibliotecă JavaScript.JQuery este o biblioteca de
manipulare Document Object Model (DOM). DOM este o reprezentare cu o structură de tip arbore a
elementelor paginii web. JQuery simplifică sintaxa pentru identificarea, selectarea și manipularea
elementelor DOM .De exemplu, jQuery poate fi folosit pentru a identifica un element din document,
cu o anumită caracteristică (de exemplu, toate elementele cu tag-ul h1), schimbarea uneia sau mai
multora dintre atributele sale (cum ar fi culoarea, vizibilitatea) sau de asteptare a unui eveniment (de
exemplu, un click).
Principiile de dezvoltare cu jQuery sunt:separarea elementelor JavaScript de elementele
HTML( biblioteca jQuery oferă o sintaxă simplă pentru adăugarea de agenți de procesare a
evenimentelor în DOM utilizând JavaScript, decât să adauge atributele evenimentului HTML pentru
a apela funcțiile JavaScript ),concizie și claritate și extensibilitate(noi elemente,metode care pot fi
adăugate și apoi refolosite ca și plugin).
JQuery include următoarele caracteristici:
selecție de elemente DOM folosind multi-browser-ul open source,selector engine
manipulare de elemnte DOM bazată pe selectori CSS
parsare Json
extensibilitate prin plug-in-uri
efecte și animații
Ajax
utilitare(de exemplu un utilitar de detectare a unor anumite caracteristici)
14
2.7 SQLite
SQLite este o mică bibliotecă C care implementează un motor de baze de date SQL
încapsulat,
oferă posibilitatea de a-l introduce în diverse sisteme și necesită zero-configurare.SQLite este un
motor de baze de date SQL încorporat. Spre deosebire de alte baze de date SQL, SQLite nu are
procese server separate.
Caracteristici SQLite:
Tranzacțiile sunt atomice, consistente, izolate și durabile (ACID)
Zero-configurare – nici o setare sau administrare necesară.
Implementează o mare parte a SQL92
O bază de date întreagă este stocată într-un singur fișier de pe HDD.
Fișierele bază de date pot fi liber partajate între mașini cu ordine diferită de octeți.
Suportă baze de date de până la 2 terraocteți (2 ^ 41 octeți) în mărime.
Mărimea șirurilor și BLOB-urile sunt limitate doar de memoria disponibilă.
Cod de bază mic: mai puțin de 250KiO configurat complet sau mai puțin de 150KiO cu
caracteristici opționale omise.
Mai rapid decât baze de date client/server cunoscute pentru majoritatea operațiilor obișnuite.
15
API simplu, ușor de folosit.
Încapsulat: nu are dependențe externe.
Exemplu de SQLite în mediul de dezvoltare C/C++
#include <stdio.h>
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if(argc != 3){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
exit(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if(rc != SQLITE_OK){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}
2.8 Laravel
Laravel a fost creat de Taylor Otewll pentru a suplini deficiențele CodeIgniter, deficiențe
cum ar fi suport integrat pentru autorizarea/autentificarea utilizatorilor. Prima versiune a apărut la
data de 9 iunie 2011 sub denumirea de Laravel 1 și includea suport pentru loalizare, rutare și
autentificare.Ultima versiune existentă este 5.1 și a apăut la iunie 2015 fiind prima versiune LTS
16
(long-term-support) ce urmează să fie îmbunătățită pe parcursul următorilor ani. Laravel este un
framework OpenSource destinat pentru dezvoltarea aplicațiilor web după modelul architectural
MVC. Începând cu luna martie 2015, Laravel este unul dintre cele mai populare framework-uri de
PHP.GitHug găzduiește codul sursă, iar licența asupa sa este dețiută de MIT.
Laravel 2 a fost lansat în septembrie 2011,aducând diverse îmbunătățiri din partea autorului
și a comunității. Principalele caracteristici,adăugate, a fost includerea de suport pentru controllers
care au transformat Laravel 2 într-un framework MVC, și introducerea template-tului Blade.
Blade este simplu, dar totodată un puternic template engine furnizat cu laravel. Două beneficii ale
utilizării Blade sunt moștenirea si secțiunea.
Laravel 3 a fost lansat în februarie 2012, cu o serie de caracteristici noi, inclusiv interfața în
linie de comandă (CLI) numit Artisan. Artisan oferă o serie de comenzi utile,ce pot fi folosite în
timpul creări aplicației. Laravel 4, denumit Illuminate, a fost publicat în mai 2013. Acesta a fost
realizat ca o rescriere completă a framework-ului Laravel, constând în migrarea layout-ului în
pachete distincte, repartizate prin Composer.Laravel 5 a apărut în februarie 2015 și a inclus
următoarele pachete:Scheduler,Flysystem,Exlir și Socialite.Ultima versiune de Laravel este 5.4
2.9 PhpStorm
JetBrains PhpStorm este un IDE pentru PHP construit pe platforma IntelliJ IDEA.PhpStorm
este un editor pentru PHP, HTML, JavaScript.Suportă versiunile de Php începând cu 5.3 până la
7.0..Are autocomplete pentru codul de PHP și de HTML cât și un editor cu drepturi depline SQL
care oferă posibilitatea editării rezultatelro interogării.PhpStorm este construit pe platforma ItelliJ
IDEA , scrisă în Java . Utilizatorii pot extinde IDE-ul prin instalarea de plugin-uri create pentru
platforma ItelliJ sau pot scrie propriile plugin-uri .Platforma conține toate caracteristicile incluse în
17
WebStorm ce asigură suport pentru PHP și baze de date.WebStorm este livrat cu Java preinstalat, iar
plug-inurile cum ar fi Node.js se pot downloada gratuit .
Conține un debugger ușor de configurat (Zed Debugger).Acesta oferă un raport agregat, iar
developer-ul poate sări din statisticile de execuție direct în funcția PHP. PhpStorm este un IDE
open-source
2.10 AJAX
Ajax ( prescurtarea de la Asynchronous JavaScript și XML) este un set de tehnici de
dezvoltare web, folosind mai multe tehnologii web pe partea de client pentru a crea aplicații
asincrone.Cu Ajax, aplicatii web pot trimite/prelua date asincron (în fundal) de la un server fără a
interfera cu afișajul și comportamentul paginii existente.Ajax permite paginii web să schimbe
conținutul, dinamic, fără ca întreaga pagină să fie reîncărcată.La începutul anilor 1990, cele mai
multe pagini erau create în HTML . Fiecare acțiune a utilizatorului necesita ca o întreagă pagină să
fie încărcată de către server. Acest proces a fost ineficient, tot conținutul paginii dispărea, apoi era
încărcat. Termenul „Ajax“ a apărut pe data de 18 februarie 2005 într-un articol intitulat "Ajax: A
New Approach to Web Applications“ publicat de către Jesse James Garrett .
send-ajax-data.php:
<?php
// This is the server-side script.
// Set the content type.
header('Content-Type: text/plain');
// Send the data back.
echo "This is the returned text.";
?>
(model conventional vs model Ajax )
18
19
3. Structura Aplicației
3.1 Diagrama cazurilor de utilizare
Capitolul 4 este destinat descrierii paginilor acestei platforme și detaliilor de
implementare.Diagrama alăturata conține principalele cazuri de utilizare.Aplicația determină doua
roluri de utilizare:vizitator al aplicației și utilizator înregistrat în baza de date.Utilizatorul logat are
aceleași drepturi ca și un vizitator,dar dispune și de drepturi privilegiate(poate adăuga un
anunț,vizualiza anunțul propriu și poate efectua operații asupra acestuia,de editare sau ștergere )
20
Aplicațiile web sunt construite pe baza Model View Controller (MVC) fiind ușor dezvoltate
iar Serviciile Web suportând mai multe modele de mesaje sau protocoluri.
3.2 MVC(Model View Controller)
Modelul arhitectural Model-View-Controller (MVC) separă o aplicație în trei componente
principale: modelul, view și controler.Modele. Obiectele model sunt părțile aplicației care
implementează logica domeniului de date al aplicației. Deseori, obiectele de model recuperează și
stochează starea modelului într-o bază de date. De exemplu, un obiect Produs ar putea să extragă
informații dintr-o bază de date, să opereze pe acesta și apoi să scrie informații actualizate înapoi la
un tabel Produse dintr-o bază de date SQL Server. Vizualizările (Views) sunt componentele care
afișează interfața cu utilizatorul (UI) a aplicației. În mod obișnuit, UI este creat din datele
modelului. Un exemplu ar fi o vizualizare de editare a unui tabel Produse care afișează casetele de
text, listele derulante și casetele de selectare pe baza stării actuale a unui obiect Produs. Controllers
sunt componentele care manipulează interacțiunea cu utilizatorul, lucrează cu modelul. Într-o
aplicație MVC, vizualizarea afișează numai informații; Controllerul se ocupă de interacțiunea cu
utilizatorii. De exemplu, Controllerul se ocupă de valorile șirului de interogare și transmite aceste
valori modelului, care la rândul său ar putea folosi aceste valori pentru a interoga baza de date.
Modelul MVC separă diferitele aspecte ale aplicației (input logic, business logic și logica
UI), oferind în același timp o legătură slabă între aceste elemente. Modelul specifică unde trebuie
localizat fiecare tip de logică în aplicație. Logica UI aparține vizualizării. Input logic aparține
controlerului. Business logic face parte din model. Această separare ajută utilizatorul să gestioneze
complexitatea atunci când dezvoltă o aplicație.
Avantajele unei aplicații web bazate pe MVC:
-facilitează gestionarea complexității prin împărțirea unei aplicații în model, view și controller
21
-nu utilizează formulare bazate pe stare sau pe server. Acest lucru face framework-ul MVC ideal
pentru dezvoltatorii care doresc control complet asupra comportamentului unei aplicații.
-utilizează un model de controler, Front Controller, care procesează cererile aplicați ei web printr-un
singur controler. Aceasta permite user-ului să proiecteze o aplicație care să susțină o infrastructură
de rutare.
-Oferă un sprijin mai bun pentru dezvoltarea bazată pe teste(TDD)
3.3 Arhitectura și diagrama bazei de date
Baza de date a aplicației este formată din șase tabele care conțin informații despre
utilizatori,anunțuri,mărci auto,modele și optiunile pentru fiecare model.
O bază de date este un instrument pentru colectarea și organizarea informațiilor. Bazele de
date pot stoca informații despre oameni, produse, comenzi sau orice altceva. Multe baze de date
pornesc ca o listă într-un program de procesare a cuvintelor sau într-o foaie de calcul. O bază de date
computerizată este un container de obiecte. O bază de date poate conține mai mult de un tabel. De
22
exemplu, un sistem de urmărire a inventarului care utilizează trei tabele nu este o bază de date, ci o
bază de date care conține trei tabele
O schemă este o colecție de obiecte baze de date. O schemă este deținută de un utilizator de
baze de date și are același nume ca și acel utilizator. Obiectele schemei sunt structurile logice care
se referă direct la datele bazei de date, și include structuri precum tabele, vizualizări și indexuri.
Tabelele reprezintă unitatea de bază a stocării datelor într-o bază de date . Tabelele de baze de date
conțin toate datele accesibile utilizatorului. Fiecare tabel are coloane și rânduri. Un tabel care are o
bază de date pentru angajați, de exemplu, poate avea o coloană numită număr de angajat, iar fiecare
rând din coloana respectivă este numărul angajatului. Index-urile sunt structuri opționale asociate
tabelelor. Se pot crea indexuri pentru a crește performanța preluării datelor.
View-urile sunt prezentări personalizate ale datelor într-unul sau mai multe tabele sau alte
vizualizări. Un view poate fi, de asemenea, considerat o interogare stocată. Vizualizările nu conțin
date. Mai degrabă, își derivă datele din tabelele pe care se bazează, denumite tabelele de bază ale
view-urilor.
Un sinonim este un alias pentru orice tabel, vi ew, secvență, procedură, funcție, pachet, tip, obiect
schema de clasă Java, tip de obiect definit de utilizator sau alt sinonim. Deoarece un sinonim este
pur și simplu un alias, acesta nu necesită alt tip de stocare decât definiția acestuia în dicționarul de
date .Zona globală de sistem (SGA) este o regiune de memorie partajată care conține date și
informații de control pentru o instanță. Zona globală a programului (PGA) este un tampon de
memorie care conține date și informații de control pentru un proces server. (este creat când un proces
este pornit).
Laravel face ca interacțiunea cu bazele de date să fie extrem de simplă într-o varietate de
backend-uri de baze de date utilizând fie SQL-ul brut sau alte
versiuni(MySQL,Postgres,SQLite,SQL Server).Configurația bazei de date pentru aplicația este
localizată la config / database.php.
Configurarea pentru SQLite:
După crearea unei noi baze de date SQLite utilizând comanda touch database /
database.sqlite, puteți configura cu ușurință variabilele de mediu pentru a indica această bază de
date nou creată utilizând calea absolută a bazei de date:
Configurarea SQL Server :
Laravel suportă SQL Server,cu toate acestea, va trebui să adăugați configurația conexiunii
pentru baza de date în fișierul de configurare config / database.php :
23
Tabela USER din cadrul bazei de date,este tabela ce conține informațiile despre utilizatori în
același timp și despre conturile create.În momentul autentificării din baze de date sunt preluate
informațiile unui user , mail și parola,pentru a fi verificate(dacă datele introduse corespund cu cele
aflate în DB,atunci el se poate loga).Tabela User este strict legată de Anunț(relația dintre ele este
one-to-many,un utilizator poate avea mai multe anunțuri),singura modalitate de a posta un anunț
este ca utilizatorul să aibă cont și să fie autentificat.
24
Tabela Anunț stochează informațiile despre anunțurile publicate,în cadrul BD.În ea sunt
reținute datele particulare ale unui autovehicul înregistrat în baza de date(prețul,tipul de
combustibil,transmisia). Este în relație one-to-many cu tabela User(deoarece nu se poate publica un
anunț,daca utilizatorul nu este logat) și one-to-one cu tabelele Model și Opțiune,deoarece conține un
model de autoturism ce are anumite particularități(diverse opțiuni,cum ar fi materialul din care este
confecționată tapițăria)
25
Această tabelă stochează informațiile despre opțiunile unui autovehicul(ex. Dacă este dotat
cu ABS).Este strict legată de tabela Anunț,fiind în relație one-to-one,deoarece în cadrul unui anunț
putem aloca toate sau un numar de date ce sunt reținute în cadrul tabelei Opțiune.
În cadrul bazei de date există o tabelă care reține informații despre anunțuri.Atunci când un
anunț este postat sau editat în tabela FILE sunt stocate numele anunțului,fotografiile(aferente
vehiculului)data modificării sau data creării.Este în legătura cu tabela Anunț(one-to-many,pentru un
anunț poate avea una sau mai multe modificări),deoarece orice modificare efectuată în tabela Anunț
este memorată în tabela FILE.
26
Tabela MODEL reține tipul de model asociat unui mărci de autovehicul.Este în legatură one
to many cu tabela Marcă,deoarece o marcă de autoturism are mai multe tipuri de modele,dar și în le-
gătură cu tabela Anunț,deoarece un anunț poate conține unul sau mai multe modele de mașini.
În baza de date există o serie de mărci de autoturisme,predefinite,stocate în Tabela MARCA.
Este strict legată de tabela Model,deoarece o marcă are unul sau mai multe modele.
27
);
4. Interfața cu utilizatorul
4.1 Pagina principală
Prin lansarea aplicației vom redirecționați către pagina principală a aplicației web,fisierul
predefinit fiind index.php .Aceasta are un design prietenos ,simplist și destul de intuitiv.Headerul
coține Url-ul aplicației,numele acesteia poziționate în partea stângă a ferestrei,în partea dreaptă fiind
plasate butoanele Adaugă anunț și Contul meu.
28
29
În centrul paginii se află butonul Caută,având rolul de căutare avansată în aplicație,aici
aflându-se ofertele publicate pe site.
Tot în cadrul paginii principale vor fi afișate și ultimele anunțuri.Rolul acestei secțiuni fiind de
promovare,gratuită,pentru vizitatorii noi ai aplicației.
30
4.2 Pagina Creează Cont
Pagina Creează cont,este strict legată de pagina principală,oferind utilizatorului opțiunea de
a-și crea un cont pe platformă ,pentru postarea unui anunț.Se poate accesa în două modalități,fie din
meniul Contul meu,fie din meniul Adaugă anunț.Pentru creea unui nou cont sunt necesare puține
informații,dar esențiale, pentru ca noul membru al platformei să poată fi contactat de către
eventualii cumpărători.
Câmpurile ce vor fi completate sunt următoarele:
Nume si prenume: utilizatorul își va introduce numele si prenumele
Numărul de telefon:se adaugă numărul de telefon
Adresa de email:în aceasta casuță utilizatorul va completă adresa de email
31
Parola:în această căsuță se va introducere parola
Modul de funcționare al aplicației pentru procesul de înregistrare.
Procesul de înregistrare este pornit atunci când un nou vizitator dorește să posteze un anunț
pe site,fiind redirecționat către meniul de înregistrare.Va completa câmpurile
obligatorii,nume,prenume,numărul de telefon,email-ul,adresa și parola. Va apasa butonul
Register,iar sistemul de calcul va verifica dacă email-ul este nou introdus în baza de date sau există
deja.Dacă email-ul este deja existentat utilizatorul este trimis la pagina de înregistrare pentru a
introduce un email nou,în caz contrar acesta este redirecționat către pagina personală.
4.3 Pagina de logare
Utilizatorul se va autentifica în aplicație,pentru a posta ,edita sau șterge anunțuri.Aplicația se
va comporta asemănător ca și în cazul procesului de înregistrare. Acest proces,procesul de logare,se
va porni când user-ul va dori să efectueze anumite posteze un anunț(editeze sau
32
șteargă).Utilizatorul,deja existent în baza de date,va introduce datele personale furnizate pe
parcursul procesului de înregistrare.După ce a completat câmpurile cu adresa de email și parola,va
apasa butonul Login,iar sistemul de calcul verifică dacă datele introduse la logare se potrivesc cu
email-ul și parola utilizate în cadrul procesului de înregistrare.Dacă datele corespund atunci
utilizatorul se va loga și va fi trimis către paginala personală.
4.4 Pagina Contul meu
33
În această pagină,utilizatorul poate adăuga,edita sau șterge anunțuri.Aceste operații se
efectuează prin simpla apasare a butoanelor corespunzătoare acțiunii pe care dorim sa o
efectuăm.Prin simpla apăsare a butonului Editează,user-ul este redirecționat către pagina
EDITEAZA VEHICUL,de unde poate administra informații despre vehicul.Informațiile ce pot fi
găsite la această pagină sunt despre:marca,modelul,prețul,anul fabricării,tipul de motorizare,diverse
opțiuni tehnice și accesorii ale automobilului.În timpul desfășurării procesului,asupra bazei de date
se produc operații de adăugare,modificare sau ștergere de date.Din cadrul acestui meniu se poate
accesa și opțiunea de ștergere de anunțuri.
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<input type="text" name="nume" value="{{ $anunt->nume }}" disabled>
</div>
</div>
</div>
<div class="cs-field-holder">
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<label>Model</label>
</div>
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<input type="text" name="model" value="{{ $anunt->model }}" disabled>
</div>
</div>
</div>
34
<div class="cs-field-holder">
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<label>Pret</label>
</div>
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<input type="text" name="pret" value="{{ $anunt->pret }}"required>
</div>
</div>
</div>
<div class="cs-field-holder">
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<label>Anul modelulului</label>
</div>
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<input type="text" name="an" value="{{ $anunt->an }}"required>
</div>
</div>
</div>
<div class="cs-field-holder">
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<label>Combustibil</label>
</div>
Există implentat și Option Box pentru unele caracteristici ale autovehiculului:tipul de
motorizare,capacitatea cilindrică a motorului,transmisia,climatizarea și tipul interiorului.
<div class="cs-field">
<select tabindex="1" name="combustibil" required>
<option value="Benzina" <?php if($anunt->combustibil == 'Benzina') echo 'selected' ?>
>Benzina</option>
<option value="Diesel" <?php if($anunt->combustibil == 'Diesel') echo 'selected' ?
>>Diesel</option>
<option value="Hibrid" <?php if($anunt->combustibil == 'Hibrid') echo 'selected' ?
>>Hibrid</option>
<option value="Electric" <?php if($anunt->combustibil == 'Electric') echo 'selected' ?
>>Electric</option>
<option value="GPL" <?php if($anunt->combustibil == 'GPL') echo 'selected' ?
>>GPL</option>
</select>
</div>
35
4.5 Pagina adaugă anunț
Această pagină este exclusivă userilor logați în aplicație fiind strict legată de pagina Contul
meu.Este alcătuită din două părți,prima parte incluzând date generale ale autoturismului.Există o
listă predefinită, care conține mărci de automobile, (ex. Dacia,BMW) de unde utilizatorul va selecta
marca dorită.Apoi va completa anul fabricației,prețul pe care dorește să-l obțină,existând și un
check-box dacă dorește ca acesta să fie negociabil sau nu.
36
<div class="cs-checkbox">
<input id="check15" type="checkbox" name="pret_negociabil" value="yes">
<label for="check15">Pret Negociabil</label>
</div>
Utilizatorul mai poate adăuga o mica descriere a vechiculului și poate selecta în funcție de marca
aleasă dintr-o listă predefinită tipul modelului cât și tipul de motorizare(Ex Diesel).
În partea a doua vom avea date particulare pentru un autovehicul.Există opțiuni pentru anumite
caracteristici ale vehicului care se vor fi alese dintr-un option box.Aceste opțiuni sunt urmatoarele:
-capacitatea minimă a motorului (se va introduce capacitatea cilindrică minimă)
<div class="cs-field">
<select tabindex="1" name="capacitate_motor_minima" required>
<option value="1000">1000</option>
<option value="2000">2000</option>
<option value="3000">3000</option>
<option value="4000">4000</option>
37
<option value="5000">5000</option>
<option value="6000">6000</option>
<option value="7000">7000</option>
<option value="8000">8000</option>
<option value="9000">9000</option>
</select>
</div>
-capacitatea maximă a motorului(user-ul va alege capacitatea cilindrică a motorului maximă)
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<select tabindex="1" name="capacitate_motor_maxima" required>
<option value="1000">1000</option>
<option value="2000">2000</option>
<option value="3000">3000</option>
<option value="4000">4000</option>
<option value="5000">5000</option>
<option value="6000">6000</option>
<option value="7000">7000</option>
<option value="8000">8000</option>
<option value="9000">9000</option>
</select>
</div>
</div>
-transmisie(există trei variante:manuală,automată și semiautomată)
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<label>Transmisie</label>
</div>
38
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<select tabindex="1" name="transmisie" required>
<option value="Automata">Automata</option>
<option value="Semiautomata">Semiautomata</option>
<option value="Manuala">Manuala</option>
</select>
</div>
-climatizare
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<label>Climatizare</label>
</div>
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<select tabindex="1" name="climatizare" required>
<option value="Manuala">Manuala</option>
<option value="Semiautomata">Semiautomata</option>
<option value="Automata">Automata</option>
</select>
</div>
-interior(se va alege tipul tapițeriei,având de ales dintre:piele,parțial piele sau stofă)
<div class="cs-field-holder">
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
<label>Interior</label>
</div>
<div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
<div class="cs-field">
<select tabindex="1" name="interior" required>
<option value="Manual">Piele</option>
<option value="Semiautomat">Partial piele</option>
<option value="Automat">Stofa</option>
</select>
</div>
</div>
</div>
39
Pentru opțiunile adiționale există un checkbox care conține:ABS,computer board,scaune încălzite
etc.
Procesul de publicare al unui anunț se va porni atunci când utilizatorul accesează web site-ul
,introduce datele de logare,adresa de email și parola aferentă(sistemul de calcul verifică dacă ele
corespund cu datele aflate în BD).După ce apasă butonul de logare(Login) selectează opțiunea
+Adaugă Anunț,va completa câmpurile ,va încărca o imagine cu automobilul(acest câmp este unul
obligatoriu.) și va finaliza procesul dând click pe Submite(în acest moment anunțul este adăugat în
baza de date )
(se adaugă un model pentru o anumita marcă)
<script>
jQuery( document ).ready(function() {
jQuery('#marca').change(function() {
var marca = jQuery('#marca').val();
$.ajax({
url: "/adauga/marca",
data: {
marca_masina: marca
},
success: function(data) {
var modeleMasini = jQuery.parseJSON(data);
var i;
jQuery('#model_masina').empty();
for(i = 0; i < modeleMasini.length; i++) {
var content = '<option
value="'+modeleMasini[i].nume+'">'+modeleMasini[i].nume+'</option>';
jQuery('#model_masina').append(content);
40
}
},
type: 'POST'
});
});
});
</script>
4.6 Pagina de afișare al anunțurilor
Această pagină poate fi accesată de un user înregistrat sau de un vizitator al aplicației.Este în
legatură cu pagina principală și poate fi accesată prin apăsarea butolui de search Caută.Accesând
pagina, user-ul va vedea toate anunțurile aflate in baza de date și poate face căutări pentru a găsi un
automobil apropiat preferințelor sale,în funcție de anumiți parametrii(An
fabricație,preț,combustibil,transmisie)
jQuery("#price_s").change(function() {
var pret = jQuery("#price_s").val();
var content = jQuery(".auto-collection").val();
jQuery(".auto-collection").empty();
$.ajax({
url: "/cauta/filter",
data: {
price: pret
},
success: function(data) {
var anunt = jQuery.parseJSON(data);
var i;
for(i = 0; i < anunt.length; i++) {
var content ="<div class=\"col-lg-4 col-md-4 col-sm-6 col-xs-12 auto-cell\">\
<div class=\"auto-listing auto-grid\">\
<div class=\"cs-media\" style=\"height: 150px; overflow: hidden;\">\
<figure><a href=\"/anunturi/\"+anunt[i].id +\"/view\"> <img
src=\""+anunt[i].files[0].path+"\" alt=\"#\"/></a></figure>\
</div>\
<div class=\"auto-text\">\
<span class=\"cs-categories\"><a href=\"#\">"+anunt[i].nume+"</a></span>\
<div class=\"post-title\">\
<h4><a href=\"#\"></a></h4>\
<h6><a href=\"#\">"+anunt[i].model+" – " + anunt[i].combustibil + "</a></h6>\
<div class=\"auto-price\"><span class=\"cs-
color\">"+anunt[i].pret+"EUR</span></div>\
<a href=\"#\"><img src=\"theme/extra-images/post-list-img2.jpg\" alt=\"\"/></a>\
</div>\
<div class=\"btn-list\">\
<div id=\list-view1\">\
<ul>\
<li>An fabricatie:"+anunt[i].an+"</li>\
41
<li>Capacitate Motor: "+anunt[i].motor_capacitate_minima+" –
"+anunt[i].motor_capacitate_maxima+" CC"+"</li>\
<li>Transmie: "+anunt[i].transmisie+"</li>\
</ul>\
</div>\
</div>\
</div>\
</div>\
</div>";
jQuery(".auto-collection").append(content);
jQuery("#year_s").val("");
}
},
type: 'POST'
});
jQuery("#year_s").empty();
});
4.7 Pagina Detaliu anunț
Această pagină se adresează tuturor utilizatorilor aplicației și se poate accesa prin
vizualizarea anunțului dorit.Utilizatorul accesează site-ul,iar în funcție de parametrii introduși este
redirecționat către pagina de afișare al anunțurilor,putând viziona detalii despre un anumit
autovehicul accesând anunțul dorit.
42
4.8 Pagina de contact
Această rubrică poate fi accesată din orice pagină a web site-ului,fiind poziționtă în
Footer,pentru a fi accesată de către toți utilizatorii aplicației.Secțiunea Pagină de contact conține
date de contact ale parcului auto,programul de funcționare și numărul de telefon.
43
5.Sondaj de opinie
Înainte de a concepe aplicația am efectuat un sondaj de opinie despre platformele
specializate în vânzarea autovehiculelor uzate.Studiul s-a adresat tuturor categoriilor de vârste,fiind
efectuat pe un eșantion de 50 de respondenți cu vârste cuprinse între 18 și 60 de ani.
A fost elaborată o aplicație bazată pe Responsive Web Design,pentru ca utilizatorii acesteia
să se poată bucura de o experiență cât mai plăcută indiferent de device-ul utilizat
(desktops,telefon,tabletă).Desing-ul este unul simplist si minimalist pentru a facilita navigarea
userului.
În societatea actuală autoturismul reprezintă o componentă importantă în viața
oamenilor,indiferent dacă aceștia sunt pasionați sau nu de automobilism,deoarece în contexul
societății actuale mașina a devenit o utilitate,spre deosebire de anii incipienți când era considerată
un lux.
44
Majoritatea persoanelor intervievate au spus ca preferă un autoturism uzat,însă fiecare
categorie de vârstă a raspuns comform nevoilor specifice vârstei.
Prima categorie de vârsta(18-20 de ani) a spus ca preferă un autovehicul second-
hand,deoarece ca și începător ești mai predispus accidentelor,iar eventualele reparații sunt mai
ieftine.Cea mai mare parte a subiecților au răspuns că preferă o mașină uzată în detrimentul uneia
noi datorită prețului mai scăzut,deprecierii masive al automobilelor noi,dar și a timpului de așteptare
destul de ridicat în cazul achiziționării unui vehicul nou.
Foarte puțini din cei intervievați sunt familiarizați cu noțiunea de comerț online de
autovehicule,cei pasionați de automobilism urmărind oscilațiile pieței,iar o mică parte și-au
achiziționat automobilul prin intermediul unei astfel de platforme.Toți participanții sondajului au
declarat că își doresc să efectueze un test drive,pentru a se acomoda cu automobilul,pentru a-i testa
funcționalitățile și pentru a detecta eventualele defecte,mai ales in cazul unui vehicul uzat.
Majoritatea respondenților sunt nemulțumiți de lipsa unor astfel de platfome autohtone,în
țara noastră existând o singură platformă dedicată vânzării de automobile,autovit.ro.
Printre așteptările clienților se numără o interfață prietenoasă,simplistă,intuitivă și cât mai
ușor de utilizat.Respondenții își doresc ca anunțurile postate să fie verificate și să ateste cu
exactitate calitatea autovehicului,să conțină detalii tehnice precise și date reale despre starea
automobilului.
45
6.Concluzii
În urma studiului realizat, au fost evaluate mașinile uzate,piața de vânzări online ale
acestora,și au fost analizate avatanjele și dezavantajele cumpărării unui autovehicul second
hand.Deși mai ieftine decât automobilele noi,cele uzate prezintă un dezavantaj ,nu oferă cele mai
noi tehnologii sau echipamente de protecție ce ar putea salva viețile pasagerilor,nu au garanție dar
sunt mai ușor de reparat în cazul unui accident sau al unei defecțiuni(de ex. senzori)
46
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: FACULTATEA DE MATEMATICĂ SI INFORMATICĂ CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI LUCRARE DE LICENȚĂ APLICATIE WEB PENTRU GESTIONAREA UNUI PARC AUTO… [611346] (ID: 611347)
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.
