Proiectarea Unei Aplicatii Privind Vanzarea Apartamentelor

INTRODUCERE

Interacționăm cu internetul la fiecare pas, iar orice acțiune de-a noastră ne face să depindem din ce în ce mai mult de tot ce se presupune a fi “online”. În această eră, omul devine din ce în ce mai ocupat, iar din dorință de a economisi timp recurge la foarte multe soluții online. Soluțiile pot fi diverse, de la o simplă căutare pe internet, care te scutește de timpul petrecut pentru a răsfoi într-o carte, până la consultații medicale online, interacționat cu prietenii printr-un simplu chat, chiar din fața televizorului, cumpărături zilnice, făcute chiar de la birou, la doar un click distanță.

Având în vedere faptul că evoluția internetului este din ce în ce mai rapidă și mai surprinzătoare cu fiecare zi ce trece, proiectul ales se învârte tot în jurul mediului online. El presupune realizarea unui site de anunțuri imobiliare și se bazează pe cunoștințe generale despre mediul online, dar și pe cunoștințe specializate pe domeniul imobiliar de pe internet. Rezultatele obținute în urma unui chestionar au arătat că 96% dintre cei intervievați ar folosi sau folosesc site-uri de anunțuri imobiliare în detrimentul firmelor de agenții imobiliare, pentru care, fizic, ți-ar luă mult prea mult timp să le cauți și să interacționezi cu ele. Tot din același chestionar a reieșit că 90% dintre cei care ar apela la o soluție online pentru satisfacerea nevoilor de vânzare sau cumpărare ar accesa cel mai des același site și anume imobiliare.ro.

Decizia realizării unui astfel de site a fost în primul rând o alegere personală, unul dintre proiectele pe care urmăream să le realizez, dar mai apoi, după ceva analiză, am bifat câteva motive pentru care pun acest proiect în practică:

este o soluție online la nevoile oamenilor,

este practică, utilă, des cerută și des folosită,

deși pe piața sunt multe micro-site-uri de acest gen, monopolul este deținut de un singur site, mai complex,

chiar dacă există un site complex deja, acesta nu acoperă toate cerințele utilizatorilor.

Doresc prin realizarea acestui site, să creez o interfață simplu de folosit de orice tip de utilizator, dar care să conțină în același timp rezolvări pentru cât mai multe nevoi, o interfață prin care să aduc ceva nou pe piața imobiliară, un exemplu fiind rating-ul acordat anunțurilor, dar și utilizatorilor. Interfața principală de anuturi va fi legată de o interfață numită “blog”, unde utilizatorii din ambele tabere își pot împărtăși părerile despre zone, prețuri, condiții etc.

Realizarea aplicației

Ideea de realizare a unei aplicații online a pornit de la sporirea nevoilor oamenilor care, odată cu evoluția mediului virtual, tind să își exercite tot mai multe acțiuni pe internet. Alegerea temei a fost o decizie personală luată în urma impactului cu domeniul imobiliar.

Mediul online

“Generația Net”, așa cum a fost numită în cartea “Crescuți Digital” a lui Don Tapscott, publicată pentru prima dată în anii 1996-1997, erau atunci caracterizați ca fiind diferiți și în număr mult mai mare față de “Generatia baby boom”. “Pentru prima dată în istorie, copiii se simt mult mai confortabil, sunt mult mai pricepuți și mai alfabetizati decât părinții lor în raport cu o inovație de-o importanță centrală pentru societate. Iar Generația Net își va dezvolta și își va impune cultura asupra restului societății tocmai prin utilizarea mediilor digitale. Cei din “Generația baby boom”, faceți un pas înapoi. Acești copii deja învață, se joacă, comunică, lucrează și creează comunități foarte diferite de cele ale părinților lor. Ei reprezintă forța transformării sociale.” În acea vreme web-ul abia apăruse, conectarea se făcea prin dial-up, iar viteza era foarte mică, viteză ce ar putea fi considerată imposibil de utilizat, în zilele noastre. Atunci nu existau canalele sociale ca Facebook, Twitter, YouTube și nici telefoane “smart” care să permită accesul în orice spațiu al internauților. Zece ani mai târziu, însă, te puteai conecta la internet de aproape oriunde prin telefoane inteligente, viteza de navigare a crescut foarte mult, se puteau trimite imagini, coordonate GPS, au apărut mai multe rețele sociale etc. Doisprezece ani mai târziu, această generație începe să inunde piața muncii, piața bunurilor și toate nișele societății.

Ca orice evoluție majoră, ce are un impact notabil asupra întregii societăți, ea nu este bine văzută de toată lumea. Cei mai speriați dintre indivizii implicați în evoluție au început, o dată cu apariția “Generatiei Net” să speculeze diverse efecte negative. Astfel, se svonea că:

sunt mai înceți la minte față de generațiile anterioare la aceași vârstă,

sunt screenagers,

sunt lipsiți de rușine

pentru că au fost răsfățați de părinți sunt dezorientați în lumea reală,

fură drepturi, violează intimități,

își agresează prietenii online,

sunt violenți,

vor fi angajați slabi, deoarece nu au niciun fel de etică a muncii,

o generație narcisistă,

nu au valori și nu le pasă de nimeni.

Ținând cont de efectele negative de mai sus, viitorul pare destul de îngrijorător, sumbru. Dar care este adevărul? În urmă unui studiu realizat între anii 2006 și 2008, ce a intervievat 6000 de reprezentanți ai Generației Net, a reieșit că această generație este mult mai inteligentă, mult mai rapidă și tolerantă cu diversitatea decât predecesorii ei. Fiind prima generație globală din istorie, reprezentații ei sunt preocupați de dreptate, de probleme cu care se confruntă, societatea din care fac parte și sunt în mod tipic angajați în activități civice la școală sau în comunitățile lor. “Dacă înțelegi Generația Net vei înțelege viitorul. Vei înțelege, de asemenea, felul în care instituțiile și societatea trebuie să se schimbe azi.”

Dacă vom privi în urmă cu 25 de ani, vom observa că cea mai importantă schimbare este dezvoltatea calculatorului, a tehnologiilor digitale, a internetului, a mediului online, într-un final. Acum accesul la internet este omniprezent atât acasă, cât și în oraș, pe stradă, în vacanță, oriunde se deplasează oamenii au acces la internet și tind să își dezvolte activitățile după acest stil de viață. De exemplu, dacă mergem într-o vacanță, vom căuta ca hoteul în care stăm să aibă internet sau cel puțin zona în care ne vom deplasa să ne permită accesul la internet de pe telefonul mobil sau alte gaget-uri, deoarece majoritatea persoanelor, cu vârste cuprinse între 10 și 65 de ani, și-au creat pe internet o a doua lume, evident, legată de lumea reală, pe placul fiecăruia.

Un studiu recent arată că, numai în România, peste 10 milioane de locuitori au acces la internet. “68% din persoanele cu vârsta cuprinsă între 16 și 64 de ani (10,3 milioane) utilizează Internetul, arată cele mai recente date ale Biroului Român de Audit Transmedia (BRAT), prezentate de Arina Ureche, director general BRAT, în cadrul Zilei Cercetării Media. Ponderea cea mai mare a utilizatorilor de Internet o au tinerii cu vârsta cuprinsă între 14 și 21 de ani: 34% în mediul urban, respectiv 25%, din mediul rural.” Pornind de la aceste date, observăm că internetul este viitorul și orice activitate exercitată în mediul online va înlocui, la un moment dat, activitatea echivalentă desfășurată în mediul real.

Elaborarea algoritmilor

Cu toate că era aceasta a internetului evoluează foarte repede și pare să ne depășească pe mulți dintre noi, calculatoarele și toate produsele electronice sau electrotehnice mai avansate nu fac decât ceea ce au fost programate să facă de alți oameni. Un calculator nu va putea niciodată să ne ghicească dorințele și din contra, trebuie să îi dai detalii chiar explicite, uneori prea explicite sau de neînțeles, pentru a putea executa o acțiune. Așadar, programul este cel care îi spune unei mașinării ce trebuie să facă, iar obiectivul programului este, implicit, de a determină calculatorul să efectueze unele operații bine stabilite.

Cum calculatorul înțelege un anumit limbaj standard format din coduri binare, de 0 și 1, inginerii au fost nevoiți, pentru a simplifica munca, să dezvolte limbaje de programare cum sunt FORTRAN, Basic și C. Aceste programe sunt folosite în scructuri de blocuri ce urmează a fi implementate într-un program mai mare. Deși, scrierea acestor programe trebuie studiată și necesită foarte multă atenție și gândire logică și structurată, codul rezultat poate fi descifrat destul de ușor de către un cunoscător de limbă engleză.

Utilizarea algoritmilor este larg răspândită în activitatea zilnică din întreaga lume. În afaceri, companiile care sunt bazate pe calculator sau internet folosesc algoritmi pentru o gamă largă de activități și aplicații. În cazul în care există volume mari de date nestructurate, identificând modelul și asemănările se poate crea ordine și procesa prin utilizarea algoritmilor. Simplu spus, un algoritm este un set bine definit de instrucțiuni pentru finalizarea unei sarcini. Ele sunt frecvent utilizate ca un mijloc de automatizare a unei game largi de procese de afaceri. Algoritmii nu sunt, neapărat, un tip special de operare. Ei sunt definiți conceptual ca un set de măsuri pe care le iei în cod pentru a atinge un anumit scop. Structurarea eficientă a algoritmilor este un angajament total. Dincolo de intelegerea fiecarui instrument in parte, trebuie, de asemenea, inteles modul in care ele interactioneaza cu sistemul general.

Scrierea programelor

Elaborarea unui program este cu atât mai complicată cu cât proiectul este mai complex. Pentru a putea simplifica acest proces trebuie parcurși câțiva pași de bază:

compunerea specificațiilor detaliate

realizarea unei schițe

scrierea unor părți importante în pseudocod

scrierea programului în limbajul ales

compilarea programului; transpunerea programului în instrucțiuni ce pot fi interpretate și executate de computer

rularea programului și verificarea pașilor ce ar trebuie să se reproducă

dacă programul nu funcționează cum ne-am dorit, rezolvarea problemelor (“bug-uri”); ultimii doi păși fac parte din testarea funcționalității proiectului.

Scrierea unui bun program software presupune luare în considerare a cinci pași majori.

Cerințe

Scopul cerințelor este de a identifica:

problema

funcționalitatea care o va rezolva

un mod de a sti cand va fi gata.

În funcție de mărimea proiectului, pași ce trebuie parcurși în această etapă sunt la fel de simpli ca o conversație la telefon. De-alungul elaborării cerințelor, ascultarea și punerea întrebărilor bune sunt critice. Cerințele servesc drept funddatie pentru restul proiectului de aceea la finalul acestui pas vom fi identificat deja următoarele:

obiectivele proiectului

facilități ce trebuie implementate

cerințele utilizatorului

riscuri

ipoteze

excluderi de la scopul proiectului

considerații de implementare

Scopul acestei etape este de a stabili un nivel înalt de înțelegere. Cerințele nu cuprind specificații tehnice și detalii funcționale. Acestea vor fi definite la următorul pas “Design Software”.

Software design

După ce cerințele sunt aprobate, inginerii software completează cu detalii despre cum va trebui, exact, programată aplicația. Este timpul pentru planificare și rezolvarea problemelor. În funcție de mărimea proiectelor, câteva sau toate cele de mai jos trebuie luate în considerare:

Robustețea – Software-ul este capabil să funcționeze la supraîncărcare sau să tolereze intrările invalide sau neprevizibile.

Întrebuințarea – Software-ul are o interfață intuitivă și este, de asemenea, și estetic.

Securitatea – Software-ul este capabil să reziste hacker-ilor și încercărilor de a-l compromite.

Compatibilitate – Software-ul nu va strica nimic și este compatibil cu versiunile mai vechi.

Tolerabil la greșeli – Software-ul este rezistent și capabil să refacă în urmă unor eșecuri ale componentelor cu care interacționează sau pe care rulează.

Mentenabilitate – Software-ul este proiectat astfel încât următorii programatori să poată modifică cu ușurință codul.

Modularitatea – Software-ul este construit bine definit, cu componente independente, făcându-l mai mentenabil. Componentele sunt construite și testate izolat înainte de a fi integrate. Acest lucru permite împărțirea muncii pe echipe.

Pentru proiecte foarte mici, ”Software Design-ul” ia forma unei liste de cerințe de îndeplinit, ipoteze, o cronologie a evenimentelor și bugetul. Cu cât proiectul crește în complexitate și mărime, se creează o documentație detaliată despre cerințele și specificațiile software. Cerințele și specificațiile software trebuie să cuprindă: capturi de ecran si diagrame ale noului sistem

detalii despre cumportamentul utilizatorului

cazuri de comportamente ale diferitelor segmente de utilizatori

reguli și excepții detaliate

proiectarea preliminară a bazei de date

dicționarul de date

ecuații, grafice și formule

machete raport și reguli

toate detaliile necesare pentru ca echipa de dezvoltare să poată construi sistemul

O data cu stabilirea specificațiilor de mai sus, sunt estimate și costurile și cronologia evenimentelor și sunt definite toate livrabilele proiectului. Scopul acestei planificări detaliate este de a anticipa și evita potențialele blocaje. Este adevărat că de obiecei proiectele se măresc, iar timpul de livrare devine mai scurt. Obiectivul este să se evite surprizele și neînțelegerile.

Programarea software

După ce proiectarea este gata, programarea începe împreună cu alte procese. Programarea se intercalează cu code review-ul. Code review-ul este un scurt proces de “arata și spune” în care programatorii vor prezenta cod proaspăt scris și vor primi păreri despre tehnica de codare, standardele de codare, stil, defecte. Aceste sesiuni permit împărtășirea cunoștințelor în ambele direcții și importante pentru prinderea potențialelor probleme cu scalabilitatea, modularitatea, mentenabilitatea, cu mult înainte ca codul să fie complet. Pentru că un programator mai fericit va scrie un cod mai bun, acesta trebuie să dețină o serie de programe pentru a putea scrie cât mai ușor codul: Visual Studio Team Edition, editor CSS, server de test, server pentru “build”. De asemenea și partea hardware, dar și componentele auxiliare sunt foarte importante: calculator rapid, memorie mare, mai multe monitoare. În proiectele mari, programatorii sunt responsabili de testele unitare, adică, de faptul că proiectul este testat și funcționează conform specificațiilor. În cazul în care proiectul este mai mic, programatorii sunt responsabili și de regresie și de testarea integrată. O data ce programul trece de testele programatorului, proiectul merge în etapa de testare de către un tester.

Testarea

Programul sigur va avea “bug-uri”. Chiar și cei mai mature programe refuză să interacționeze cu lucrurile care nu ar fi crezut că trebuie să interacționeze în mod explicit. Cele mai multe probleme apar, de obicei, din cauza unei linii de cod, de undeva, cu o mică neglijență, programatorul neimaginandu-și că cineva va introduce vreodată în câmpul de plată un număr negativ, de exemplu. Scopul tester-ilor este să găsească problemă înainte că utilizatorii să o observe.

Testarea este foarte importantă și de aceea implică și ea mult timp, de obicei, 20% din timpul petrecut de programator să dezvolte programul. Testerii buni forțează limitele, de aceea ei apasă butoane și întroduc numere la care nimeni nu s-ar fi gândit vreodată și folosesc software-ul până când acesta va cedă. Apoi ei înregistrează erorile împreună cu pașii prin care se reproduce acestea. Este necesar că altcineva față de programator să testeze programul, deoarece programatorii nu sunt foarte buni la acest lucru cum mulți oameni nu sunt buni la a-și corectă scrierile. Mintea omului este capabilă să treacă peste texte care deja sunt considerate că fiind corecte, chiar dacă ele conțin erori.

Testarea găsește, de obicei, 99% din erorile evidente. Din nefericire, sunt câteva tipuri de erori care pot fi găsite după ce proiectul este lansat. Aceste bug-uri sunt temporare sau apar într-o combinație de factori. De exemplu:

programul funcționează perfect mereu, dar cedează în fiecare vineri la ora 1 a.m

programul funcționează pentru 100 000 de utilizatori, dar doi utilizatori au probleme când își întroduc datele

programul funcționează perfect, mai puțin pentru un utilizator care are un sistem de operare mai vechi.

Astfel de erori, după livrare, sunt cele mai greu de reprodus și de obicei durează mai mult până când programatorul reușește să prindă toate excepțiile.

Instalarea si suportul

După ce testarea s-a terminat, urmează instalarea software-ului pe serverele proiectate pentru aplicație. Pentru aceasta trebuie parcurși următorii pași:

mutarea tuturor fisierelor pe server

configurarea serverului web, serverului de baza de date

configurarea firewall-urilor, serverelor proxy

conversia datelor sau migrarea, daca este necesară

instalarea sistemului de operare necesar

completarea unui test de regresie pentru a ne asigura că totul funcționează cum ar trebui

încărcarea unei documentații de folosire a aplicației, dacă este necesar

Acești pași trebuie urmați în totalitate și în detaliu pentru a ne asigură că software-ul este bun, funcțional și, cel mai important, este bine scris.

Pentru elaborarea acestui proiect am folosit ca și tehnologii C#, ASP.NET, MVC5, IIS, javascript, CSS, HTML, SQL Server, POO.

POO (Programare orientată obiect) este un model prin care programatorii nu definesc numai tipul de data al structurii de date, ci și tippul operațiilor (al funcțiilor) care pot fi aplicate structurii de date. În acest fel structură de date, devine un obiect care include atât datele cât și funcțiile (metodele). În plus, prin acest model, programatorii pot crea relații între obiecte. De exemplu, obiectele pot moșteni caracteristici de la alte obiecte. Unul din principalele avantaje ale programării orientate pe obiect față de programarea procedurală este acela că permite programatorilor să creeze module care nu trebuiesc schimbate atunci când este adăugat un nou tip de obiect. Un programator poate să creeze un nou obiect care să moștenească multe beneficii din obiectele deja create. Astfel, modelul POO ușurează scrierea și modificarea codului.

Pentru elaborarea acestui proiect am folosit ca și tehnologii C#, ASP.NET, MVC5, IIS, javascript, CSS, HTML, SQL Server, POO.

POO (Programare orientată obiect) este un model prin care programatorii nu definesc numai tipul de dată al structurii de date, ci și tipul operațiilor (al funcțiilor) care pot fi aplicate structurii de date. În acest fel structura de date, devine un obiect care include atât datele cât și funcțiile (metodele). În plus, prin acest model, programatorii pot crea relații între obiecte. De exemplu, obiectele pot moșteni caracteristici de la alte obiecte. Unul din principalele avantaje ale programării orientate pe obiect față de programarea procedurală este acela că permite programatorilor să creeze module care nu trebuiesc schimbate atunci când este adăugat un nou tip de obiect. Un programator poate să creeze un nou obiect care să moștenească multe beneficii din obiectele deja create. Astfel, modelul POO ușurează scrierea și modificarea codului.

C# este un limbaj sigur, bazat pe programarea orientată pe obiect, care permite programatorilor că construiască o varietate de aplicații sigure și robuste care rulează pe .NET Framework. C# este folosit pentru crearea aplicațiilor Windows, aplicații XML, componete distribuite, aplicații client-server, aplicații de bază de date și mult mai multe. Visual C# furnizează un editor de cod avansat, design-uri convenabile pentru interfețe, debugger integrat și multe alte instrumente care fac mai ușoară programarea bazată pe limbajul C# și .NET Framework.

HTML, Javascript, CSS sunt limbaj capabile să expună vizual toată funcționalitatea implementată în C#, astfel încât utilizatorul să se poată folosi de toate funcțiile programate. CSS și Javascript aduc un plus aplicației, deoarece cu ajutorul lor se îmbunătățește aspectul interfeței și experiența utilizatorului.

Pentru stocarea datelor am folosit SQL Server, care este un sistem relațional de management al bazei de date, produs de Microsoft, proiectat pentru mediul întreprinderilor. Acesta rulează pe T-SQL (Transact – SQL), un set de extensii de la Sysbase și Microsoft care adaugă câteva beneficii SQL-ului standard, inscruzand controlul tranzacției, excepții și manevrarea excepțiilor, procesarea rândurilor și declararea variabilelor.

Analiza si proiectarea codurilor

Înainte de a începe scrierea programului trebuie parcurși patru pași esențiali. Procedând astfel, nu vom mai pierde timpul scriind un program care nu va merge sau care merge dar nu face ceea ce trebuie și, apoi, nu merită să încerci să-l salvezi. Prin planificare creștem șansele că programul să funcționeze și să rezolve problema pe care o avem de fapt.

Următorii patru pași sunt cruciali în etapa proiectării programului:

Identificarea problemei; prima întrebare pe care trebuie să ne-o punem este: “Ce problemă va rezolvă programul nostru?” Dacă problema nu este clar definită, nu vom putea proiecta programul.

Identificarea utilizatorului; a doua întrebare la care trebuie să răspundem este: “Cine va folosi aplicația?”

Determinarea sistemului hardware și software necesar; “De ce calculator au oamenii nevoie pentru a putea folosi programul? Pe ce sistem de operare poate fi acesta rulat?”

Determinarea abilităților noastre de programare; “Pot scrie tot programul de unu singur sau voi avea nevoie de ajutorul celorlalți? Dacă voi avea nevoie de ajutor, ce părți ale aplicației le voie programa singur?”

Identificarea problemei

Fiecare problemă rezolvă o altă problemă. Un program de procesare a textelor rezolvă problema scrierii, editării, formatării și printarii textului. Un program de contabilitate rezolvă problema organizării actelor, a plăților și a încasărilor. Chiar și un joc video rezolvă problema distrarii oamenilor.

Un program este folosit doar pentru a rezolvă o problemă. Majoritatea programelor simplifica și automatizează o problemă existentă, ca de exemplu, un portofel electronic în care îți poți gestiona facturile, încasarea salariului și plățile executatea sau necesare, astfel se economisește multă hârtie, mult timp pierdut cu calcule, toate activitățile făcându-se automat. Scopul fiecărui program este de a face o activitate specifică mai rapidă, mai simplă, mai convenabilă. Singura cale de a atinge scopul este de a identifica care este problema pentru care trebuie dezvoltat programul.

Identificarea utilizatorului

Dacă ești singura persoană care va folosi programul, îl poți face să arate în ce fel dorești atâta timp cât el funcționează. Dar, dacă planifici să dai sau să vinzi programul altcuiva, trebuie să știi cine urmează să îl folosească.

Această specificație este critică în dezvoltarea aplicației. Dacă utilizatorilor nu le va plăcea programul, din orice motiv, ei nu îl vor folosi. Chiar dacă programul funcționează, acest lucru este irelevant.

Prin proiectarea programului cu tipul de utilizatori în minte, vor crește șansele că oamenii să folosească programul și să îl cumpere. Chiar dacă o aplicație funcționează perfect, utilizatorii o pot ignora deoarece nu le place cum arată, nu pot înțelege cum funcționează, nu funcționează că vechiul program cu care erau obișnuiri, nu le plac culorile, etc. Scopul este de a face programul să întâlnească nevoile utilizatorilor, neținând cont de cât de ciudat, bizar sau ilogic poate să pară.

Determinarea sistemului hardware si software necesar

După identificarea utilizatorului, trebuie identificat tipul de calculator pe care utilizatorul îl va folosi pentru rularea programului. Tipul calculatorului pe care va fi executat programul poate determina ca ce limbaje de programare pot fi folosite, hardware-ul pe care programul se așteaptă să-l găsească, și chiar spațiul pe care programul îl poate ocupă.

Dacă programul poate fi copiat pe un alt calculator cu mici modificări sau chiar fără nicio modificare, el poate fi cosiderat portabil. Limbajul de programare folosit pentru dezvoltarea aplicației poate determină portabilitatea acestuia.

Determinarea abilitatilor noastre de programare

Când planificăm orice program, trebuie să luăm în considerare abilitățile noastre de programare. Poți să ai o idee genială pentru un program, dar dacă este începător cu puțină experiență, scrierea programului poate dura foarte mult timp.

Abilitatiele de programare și, de asemenea, experiența determină ce limbaj de programare vei folosi. Programatorii experientati vor alege limbajul și vor dezvoltă programul mult mai repede, pe când cei începători, vor fi nevoiți să studieze limbajul, mai întâi. Mulți programatori crează un porgram folosind un limbaj ca Visual Basic și apoi angajază programatori mai experimentați care să rescrie programul într-un limbaj mai complex ca C/C++, care poate face aplicația mai rapidă și mai eficientă.

2 Proiectarea aplicației

În acest capitol voi prezenta aplicația creată împreună cu imaginile acesteia, voi analiză datele de intrare și ieșire, procedeul de implementare al aplicației, costul echipei de mentenanță.

2.1 Definirea problemei

Agenția imobiliară este o entitate necesară în zilele noastre doarece foarte multă lume cumpără / închiriază apartamente, unii chiar își câștiga existența din acest domeniu.

Domeniul imobiliar crește văzând cu ochii în fiecare zi. “In 2013 aproape 825.000 de clădiri și terenuri și-au schimbat propietarul, fiind o creștere cu 17% mai mult decât în 2012.”. Fiindcă trăim în secolul internetului au apărut o sumedenie de platforme online pentru vânzarea / închirierea imobilelor.

Platforma online pentru acest domeniu ușurează procesul căutării și totodată ajută oamenii să vizualizeze apartamentele pe care vor să le viziteze, transformându-se foarte ușor într-un process complet (vizualizare-cumpărare/închiriere). Consider că acest proces ar fi fost mult mai costisitor și ar fi durat mult mai mult dacă nu ar exista o platformă care să centralizeze mai multe agenții imobiliare / persoane fizice care vând apartamente. Altfel, procesul ar fi fost în felul următor: O persoană care dorește să cumpere / închirieze un apartament ar fi trebuit să sune la mai multe agenții imobiliare / persoane fizice, să stabilească întâlniri pentru vizualizarea apartamentelor, să piardă timp vizitând apartamente care nu sunt pe placul lor (neputând să vadă pozele direct online), să nu fie conform descrierii, procesul ajungând să fie complet într-o perioadă mai mare de timp, iar conversia clientului în cumpărător nu se face imediat, deși acest lucru este dorit să fie cât mai rapid.

După o analiză a cinci platforme am descoperit plusuri și minusuri la fiecare in parte, însă am considerat că cel mai bine ar fi să realizăm un sondaj pe un grup restrâns de oameni care vizitează aceste platform destul de constant și intereactioneaza cu agenții imobiliare / persoane fizice ce vând / închiriază apartamente atât în București cât și în alte orașe. Întrebările din chestionar au fost gândite să fie scurte și la obiect pentru a afla motivele accesării platformelor și informațiile care lipseau pentru a putea realiza conversia din client în cumpărător.

Mai jos am atașat o imagine cu acest chestionar și conținutul său.

Sondajul a fost realizat pe un eșantion de 45 de persoane, vârsta medie fiind 25 de ani (fiind o vârsta la care fiecare visează să dețină propriul apartament). În urma sondajului am extras următoarele informații:

Un procent de 90 % au accesat măcar odată un site cu anunțuri imobiliare

Motivele accesării au fost vaste (închiriere, vânzare, cumpărare)

Site-ul cel mai accesat fiind imobiliare.ro

Intervalul accesării site-urilor a fost stabilit ca fiind “lunar/mult mai rar”

Nivelul de satisfacere al clienților a fost stabilit că fiind “rar/deseori”

Informațiile ce nu au fost găsite pe platformele vizitate au fost: zona exactă, tipul clădirii, prețul (fiind detalii mai ascunse), imagini reale cu imobilul, acceptare schimburi, schema apartamentului, comision firmă, date eronate, comentarii ale altor persoane ce au vizitat apartamentul, sistem de note pentru apartamente după vizualizare.

În anexa vor fi prezentate răspunsurile primite în urma sondajului de mai sus.

Analizând informațiile de mai sus am tras concluzia că platformele existente conțin aproape tot ce este necesar unui client însă nu satisfac toate dorințele acestuia, de aceea am implementat un sistem de review-uri pentru apartamentele vizionate, un filtru de căutare după criteriul “Acceptă schimb”, numărul de contact al agenției imobiliare / persoanei fizice fiind verificat de sistem, sistem de aprobare al anunțurilor noi publicate. Toate aceste analize și implementări fiind făcute în scopul maximizării bucuriei / fericirii unui client atunci când vizitează un apartament, găsind mai ușor apartamentul mult visat.

2.2 Definirea funcționalități proiectului

Clientul poate accesa cu ușurință aplicația web, prima pagină fiind o lista cu apartamente scoase la vânzare. Se pot aplica filtre de preț, numărul camerelor, dacă acceptă schimb sau căutări după cuvinte cheie printr-un panou de filtrare foarte ușor de utilizat. Poate să vizualizeze detaliile apartamentului având o galerie de poze, detalii despre apartament și anumite informații suplimentare (dacă acestea sunt prezente), poate vedea review-urile altor clienți ce au vizionat apartamentul și printr-un click poate accesa detaliile agenției imobiliare / persoanei fizice ce vinde apartamentul.

Mai jos aveți pozele cu lista apartamentelor scoase la vânzare și pagina de detalii:

Detaliile importante ale apartamentelor scoase la vânzare sunt evidențiate pentru a putea fi observate foarte ușor de către clienți, aceste detalii sunt: adresa apartamentului, prețul, dacă acceptă schimb, comisionul agenției, poze cu apartamentul. Clienții pot opta pentru crearea unui cont pentru a putea acorda review-uri apartamentelor vizionate.

Agențiile imobiliare / persoanele fizice care vor să vândă un apartament au nevoie de un cont pentru a își putea expune apartamentul / apartamentele la vânzare apăsând pe butonul de ”Adaugă anunț”, astfel intră în pagina de creare anunț unde au o sumedenie de informații unele fiind obligatorii altele nu. Am adăugat multe informații opționale deoarece dorim să îi încurajăm să ofere cât mai multe detalii despre apartamentele scoase la vânzare astfel conversia client-cumpărător se realizează mult mai rapid. Mai jos am atasat doua imagini cu pagina de adaugare apartament.

Avem un panou de administrare anunțuri în care se află lista anunțurilor publicate de aceștia și un mic raport pe fiecare anunț ce conține următoarele: câte persoane au vrut să afle numărul de telefon, câte persoane au vizualizat anunțul, câte review-uri a primit anunțul, care este actuală notă a apartamentului. Mai jos aveți atașată o imagina cu lista anunțurilor proprii.

În setările contului se poate adaugă numărul de telefon, el este verificat printr-un serviciu extern, astfel pentru a adăuga un număr de telefon trebuie să introduci codul primit prin sms pentru validare. Am folosit acest serviciu deoarece nu dorim să deținem conturi de utilizatori cu numere invalide sau atunci când clienții doresc să îi contacteze acel număr să nu fie valabil. Mai jos aveți atașată o imagine cu setările contului.

Toate anunturile adăugate trebuie să treacă printr-un proces de aprobare, de exemplu anunturile ce nu conțin poze sau pozele sunt de proastă calitate sunt respinse, fiind trimis un email către deținătorul anunțului prin care se specifică motivul respingerii. Nu încurajăm publicarea de anunțuri incomplete, fără să aibă toate informațiile necesare clienților.

Prețurile sunt în EURO deoarece nu dorim să inducem in eroare clientul prin conversia automată sau lăsând la latitudinea agențiilor imobiliare / persoanelor fizice, este destul de greu să urmărești prețul apartamentelor atunci când unele sunt în RON iar altele în EURO, de aceea am optat pentru o singură monedă.

Nu se percepe taxă de înregistrare, deoarece nu dorim să taxăm în nici un fel agenția imobiliară / persoană fizică care vinde sau clientul. Singura dorință a noastră fiind ca ambele părți să fie mulțumite la finalizarea trazactiei și acest lucru să se întâmple rapid fără a petrece luni de căutare.

Viziunea pe care am avut-o asupra acestui proiect a fost să fie cât mai simplu, astfel ajugand să creez o diagrama ce conține paginile site-ului și o parte din funcționalitățile acestora:

2.3 Stabilirea necesarului de soluții software și hardware

Pentru realizarea acestui proiect au fost folosite următoarele soluții:

1. Software:

ASP.NET MVC 5

SQL Server 2014

HTML

Javascript

CSS

Boostrap

IIS (Internet Information Services)

Twilio (tool pentru trimiterea sms-urilor)

Visual Studio 2013 Express

SQL Server Management 2014

Database Model

Email service

2. Hardware:

Desktop PC

Microsoft Windows 7

Mouse

Tastatură

Monitor 23 “

Internet

Pentru a rula aplicația web este necesar un calculator cu minim Windows 7, IIS, minim 4 GB RAM (de preferat 16 GB) , internet, SQL Server 2014, Twilio account, domeniu web. Aplicația are nevoie de 2 oameni pentru a putea reviziu și aproba anunțurile, 1-2 oameni pentru call center (preluarea de apeluri / emailuri venite de la agenții imobiliare / persoane fizice / client), 2 oameni pentru mentenanțe și fixare buguri apărute, 1 om pentru SEO și promovarea aplicației web.

2.4 Analiza și proiectarea formelor de Intrare/Ieșire

Analizând alte aplicații am descis ca datele intrare să fie detalii despre: utilizatori, anunțurile cu apartamente postate de ei ce conțin informații despre localizarea apartamentului, suprafața, prețul, poze din apartament, blocul în care se află imobilul, anul construcției, locuri de parcare. Informații opționale fiind cele legate de starea interioară a apartamentului, dacă este mobilat, câte camere mobilate are, ce fel de finisaje au pereții, din ce sunt construiți pereții, ce aparate electrocasnice sunt prezente în imobil, dacă apartamentul este dotat cu internet, televizor, wireless, mașină de spălat, dacă are obloane la geamuri, de ce tip sunt obloanele, ce fel de parchet / gresie / mochetă are sufrageria, este utilat complet sau parțial. Toate aceste detalii ajută vânzătorul să expună ceea ce vinde foarte ușor oferindu-i clientului toate detaliile necesare chiar și în plus pentru a își putea face o viziune legată de apartament, iar în momentul vizionării apartamentului clientul să știe exact de ce a ales acel apartament și ce i-a plăcut din informațiile oferite în anunț. De aceea avem un număr de contact în care clienții ne pot semnala eventualele problem apărute la vizionarea apartamentului, un exemplu ar fi că apartamentul nu este conform descrierii, iar în acel moment se poate oferi o notă negative acelui apartamentul. Această notă este vizibilă pe site, iar alți client se pot ghida după ea, fără să mai piardă timp vizitând un apartament care nu este conform descrierii.

Alte informații stocate în platformă ar fi detaliile utilizatorilor, numărul de telefon, numele și adresa de email pentru a putea fi contactați foarte ușor. Numerele de telefon fiind verificate printr-un serviciu extern, avem convingerea că putea avea access ușor la client / vânzători când este nevoie de o lămurire sau pentru rezolvarea unei problem apărute în anunțul publicat / vizualizat.

Datele de ieșire ar fi informațiile apartamentului enumerate mai sus, informațiile utilizatorului ce vinde un apartament, informații legate de aplicația noastră web, numărul nostru de contact, un regulament ce trebuie respectat și de către client și de către vânzător, descrierea companiei noastre.

Nu dorim că fluxul de date să fie mare și să inducem in eroare potențialii clienți, majoritatea site-urilor introducând reclame, informații despre credite, anunțuri promovate. Toate aceste informații auxiliare induc în eroare clienții, un exemplu ar fi informațiile despre credite, acestea nu sunt date sigure deoarece comisionele se schimbă și mereu textul din dreptul ratei va fiœ”… de la”. Noi am optat pentru un site simplu în care utilizatorii pot vizualiză informații despre apartamente și pot contacta ușor agențiile imobiliare / persoanele fizice. Dacă doresc un credit pot contacta o bancă și să solicite o calculare estimativă de rată, deși acest lucru deobicei îl fac în momentul în care stabilesc bugetul pentru apartamentul mult visat, nu în momentul alegerii.

Unii clienți fac un studiu de piață înainte să contacteze o banca pentru a vedea prețurile dintr-o anumită zonă sau așteaptă să mai scadă prețurile însă mereu vor avea o anumită sumă stabilită că și buget înainte să se apuce de căutare.

Mereu am considerat că un lucru simplu ce are un singur scop prestabilit poate să ajute oamenii mult mai bine decât un lucru complicat/complex ce îți oferă o mulțime de informații fără ca acestea să fie utile, ele fiind doar “informative”. De aceea ne-am axat pe listarea de imobile, review-urile acestora, filtrarea rapidă și informațiile de contact, fără a implementa alte tooluri extern ale băncilor prin care să calculăm valoarea creditului, conversia monedei EURO (fiind singura monedă disponibilă la setarea prețului unui apartament).

2.5 Analiza și proiectarea structurilor de date

Diagrama structurii de date (DSD) este o diagramă a modelului de date care explică entitățile și relațiile acestora, precum și constrângerile fiecărei tabele. Elementele grafice de bază are diagramei sunt dreptunghiuri ce reprezintă entitățile, liniile/săgețile reprezentând relațiile dintre tabele. Aceste diagrame sunt utile pentru documentarea entităților complexe de date.

Entitate-Relație (ER) este un model de date ce descrie aspectele sau informațiile unui domeniu de afaceri sau cerințele sale de process într-un mod abstract, ce ajută la implementarea bazei de date. Acest model a fost dezvoltat în anul 1976 de către Peter Chen și publicat într-o lucrare de a sa.

DSD este un predecessor al modelului ER, atributele fiind specificate în interiorul dreptunghiurilor împreună cu constrângerile care leagă entitățile. DSD diferă față de modelul ER prin faptul că modelul se concentrează pe relațiile elementelor din cadrul unei entati, iar ER se concentrează asupra relațiile dintre diferite entități.

Structura bazei de date nu trebuie să fie complexă, doar dacă aplicația cere acest lucru, însă trebuie să ținem cont de numărul tabelelor, numărul înregistrărilor dintr-o tabelă pentru a putea crea o aplicație ce se mișcă rapid, nu are timp de încărcare mari, traficul de date nu este mare, nu preluăm informațiile ce nu sunt necesare pe un anumit ecran. Dacă ignorăm toate aceste aspecte, se vor restrânge asupra utilizatorilor ce nu vor fi mulțumiți de aplicația, iar acest lucru duce la nefelosirea ei. În zilele noastre există putere de procesare mare fiindcă tot apar procesoare, memorii ram din ce în ce mai puternice ce pot procesa foarte multe date rapid, însă conexiunile cu o bază de date nu se pot mari foarte rapid, deși există Cloud Computing ce oferă scalabilitate, însă și această este limitată pentru că generează costuri destul de ridicate pe care nu dorim să le avem mai ales dacă aplicația este la început și nu produce bani, de aceea consider foarte important baza de date pentru o aplicație.

Am ales baza de date SQL SERVER 2014, relațională, deoarece se integrează ușor cu frameworkul, ambele fiind deținute de Microsoft, se poate genera modelul foarte ușor în aplicație. Dacă aș fi optat pentru o bază de date MYSQL acest lucru ar fi îngreunat translatarea expresiilor de tip LINQ în query, implementarea sistemului de useri ce este recomandat să fie folosit cu o bază de date tip SQL SERVER. Structură fiind simplă ce are în prim plan tabela de apartamente, ea având mai multe legături cu nomenclatoare ce au date despre oraș, județ, număr camere, etaj etc. însă și cu informațiile opționale, ele putând lipsi. Citirea legăturilor se face mult mai rapid decât dacă aș fi creat coloane în plus în tabela de apartamente pentru informațiile opționale. Folosindu-mă de nomenclatoare am redus costul de memorie pentru informațiile de bază ale unui apartament astfel putând să extind costul memoriei informațiilor opționale.

Sistemul de useri este cel default de la frameworkul ASP.NET MVC 5 folosind 5 tabele pentru useri, având user id-ul hashuit pentru securitate. Managementul de useri într-o bază de date poate fi costisitor având foarte multe date, însă frameworkul a implementat ușer id-ul hashuit pentru o căutare mai rapidă la login. Detaliile userului sunt ținute într-o tabela separată fiind legate printr-un foreign key de tabela primară de useri, datele nefiind cerute în toate queryurile.

Modelul bazei de date este stocat în aplicație, fiind necesar un update al său atunci când se modifică o tabelă, o coloană sau apare ceva nou. Astfel am putut transforma ușor tabelele în obiecte lucrând cu ele mult mai ușor în controllere și view-uri. Query-urile sunt realizate printr-o expresie de timp LINQ astfel frameworkul transformat expresia în query ce poate fi interpretat de sql server.

Mai jos aveți diagrama bazei de date împreună cu legăturile dintre tabele, ele fiind reprezentate de liniile dintre entități. Ea fiind destul de complexă având în total 39 de tabele secundare și două tabele primare , cel de ușeri și cel pentru apartamente. Legăturile din baza de date nu sunt multe totul învârtindu-se în jurul tabelei “apartamente” ea având legături cu nomenclatoarele astfel diminuând costul de citire, de stocare a informațiile într-o singură tabelă.

2.6 Elaborarea specificațiilor de programare

Înainte de a începe realizarea acestui proiect am elaborate specificațiile de programare ținând cont de: un plan de implementare în care am decis că primu lucru pe care ar trebuie să îl fac este gândesc schema aplicației pe care am dezvoltat-o, ce pagini vreau să afișez, cum vor fi strcturate, ce date vor conține, ce vor putea face userii în aplicație. Aceste speficatii au fost bazate și pe sondajul realizat, ținând cont de răspunsurile primite în chestionar, astfel ajungând la concluzia că proiectul pe care vreau să îl implementez este un următorul: Un site de agenție imobiliară simplu, ce conține listarea apartamentelor scoase la vânzare evidentiand informațiile cele mai utile pe care un client dorește să le afle, informațiile vânzătorului, filtrarea ușoară a acestora, un sistem de review-uri prin care clienții să își poată spune părerea despre un anumit apartament după ce l-au vizitat, un sistem de verificare al numărului de telefon pentru a nu exista numere ce nu aparțin vânzătorilor, un sistem de rapoarte simplu pentru a putea fi înțeles de către vânzători.

În planul de implementare am luat în calcul și partea hardware necesare rulării acești proiect, înțelegând interacțiunea dintre hardware și software. Am notat fiecare decizie de implementare luată împreună cu motivul acesteia pentru a putea analiză în momentul implementării dacă această decizie a fost cea corectă, am realizat o estimare de timp necesară realizării proiectului, acest lucru ajutându-mă să mențin un ritm de dezvoltare fără să depășesc estimările și să irosesc timp degeaba. Am evidențiat detaliile cele mai importante pentru clieni pentru a reuși să statisfac cerea lor, am inclus și lista de verificare a proiectului pentru a fi sigur că toate obiectivele sunt îndeplinite.

Arhitectura aplicației este un lucru important ce este inclusă în specificațiile de programare, ea fiind realizată deobicei de un programator experimentat ce poate luă decizia folosirii unui anumit framework sau serviciu în defavoarea altuia datorită experienței și cunoștințelor acumulate de-a lungul anilor. Deseori aici se greșește deoarece deciziile luate nu sunt bazate pe experiență, ele fiind bazate doar pe cunoștințele persoanei respective, spre exemplu un programator optează să folosească platforma existentă pe care el o cunoaște cel mai bine atunci când realizează un magazin online însă acea platformă poate nu este cea mai bună alegere, lipsindu-i anumite module de promoții sau nefiind potrivită pentru un trafic foarte mare de date (aici mă refer la un trafic de nivelul BlackFriday), aplicația rezultată nu are comportamentul dorit de către client, ea mișcându-se destul de încet. Mereu trebuie să ne sfătuim cu o persoană care are mai multă experiență în limbajul de programare pe care vrem să îl învățam/implementăm o anumită platformă existența și să ne gândim mai mult la ceea ce își dorește clientul și dacă cunoștințele noastre pot satisface cererea clientului.

2.7 Implementarea și testarea proiectului

Înainte de a începe implementarea proiectului am construit baza de date analizând datele pe care vreau să le afișez. După crearea bazei de date am început programarea aplicației folosind modelul MVC (Model-View-Controller) , am mapat baza de date creând obiectele în aplicație, am creat view-urile împreună cu controllerele pentru fiecare obiect în parte, pentru nomenclatoare am folosit modelul CRUD (Create-Read-Update-Delete) pentru a putea fi modificate ușor de către un administrator al aplicației. Pagina pentru adăugarea unui anunț conține toate detaliile ce pot fi atribuite unui apartament, ele fiind structurate în 2 secții: date obligatorii și date opționale, iar dacă un utilizator a introdus date eroante ele se pot modifica ușor în zonă unde sunt listate anunturile adăugate de utilizator, ștergerea unui anunț înseamnă marcarea lui ca anulat fără să fi fizic șters din bază de date (deoarece dorim să avem un istoric al fiecărui vânzător).

Terminând structura paginilor principale am început să scriu detaliile ce țin de finețe pentru acestea și anume: pentru adăugarea unui apartament avem nevoie de validări pentru a nu salva orice date sunt introduse de utilizator, pentru verificarea numărului de telefon am folosit un serviciu extern Twilio ce trimite sms-ul pe telefon cu un cod de verificare, pentru listarea apartamentelor am adăugat filtrarea rapidă ce conține căutare după preț, număr cameră, zonă sau cartier, apartamente doar cu schimb. Am adăugat un dropdown menu pentru paginile la care are access un client logat (administrarea propriilor anunțuri, schimbare parolă, schimbare/adăugare număr telefon), am folosit un css responsive pentru ca site-ul să poată fi ușor accesat de pe telefon, am adăugat paginile cu informații statice (despre noi, contact). Mai jos am atașat o imagine cu pagina de contact și procesul de autentificare în 2 pași cu sms.

Testarea proiectului a fost făcută și în timpul implementării folosind debuggerul din Visual Studio verificând metodele modificate și dacă sunt impactate și alte metode, astfel rezolvând cea mai mare parte de erori din aplicație rapid și simplu. Am efectuat încă o serie de teste atunci când aplicația a fost gata însă cel mai bine a fost că am testat atunci pe loc pentru că după un timp când ajungi să implementezi alte metode/funcții și observi că aplicația crapă pe un ecran implementat cu ceva timp în urmă îți este destul de greu să faci debugging și să reurmărești tot fluxul de date pe care îl doreai la momentul respective. Din experiența mea programatorul prinde o mare parte din erori însă există cazuri de testare la care un programator nu se gândește, iar acest lucru este acoperit de un tester care își construiește tot felul de impoteze de testare, iar acest lucru ajută programatorul să nu ajungă cu erorile în producție. Un alt fel de testare ar fi testarea automată, prin care sunt rulate testele de functionalite de exemplu se simulează o înregistrare nouă și o schimbare de parolă, în acest fel se testează sigur că acele metode nu vor genera erori. Testarea automată este folosită deobicei la proiectele mari ce au multe metode pentru că modificand o anumită metodă poate să aibă impact și asupra altor, iar aceste teste opresc problemele de genul acesta. Această metodă este destul de costisitoare și deobicei aceste teste sunt scrise de către tester, însă nu multe companii au aceste standard și lasă la latitudinea clienților să opteze pentru ele, generând un cost în plus.

2.8 Definirea activităților de întreținere a funcționalității proiectului

Fiecare aplicație are nevoie de mentenanța pentru a putea funcționa corect, deoarcere nici o aplicație nu este perfectă însă ea poate tinde spre perfect. Pentru a reuși acest lucru avem nevoie de o echipă care să întrețină aplicația, adică să rezolve bugurile apărute, să implementeze funcționalități noi pentru a nu se deprecia aplicația. În fiecare zi apar diverse metode de exploatare a aplicațiilor, a serviciilor oferite de diverse aplicații, se dorește obținerea datelor utilizatorilor pentru spamuri, obținerea datelor de card. Prin vânzarea bazelor de date ale utilizatorilor se câștigă foarte mult, detaliile utilizatorilor fiind foarte importante deoarece sunt reale, actualizate.

Pentru întreținerea aplicației avem nevoie de 1-2 programatori fiind de dimensiuni mici, 1 tester pentru a putea detecta problemele înaintea clienților, 1 suport tehnic pentru a prelua problemele întâmpinate de clienți. Totul trebuie rezolvat rapid și testat foarte bine pentru a nu impacta alte părți ale aplicației, trebuie făcut un plan înainte de implementare, testat tot fluxul. Fiecare firmă are propriul proces de fixare buguri însă eu prefer să existe un programator ce gestionează toate ticketele pentru problemele venite, el împărțind sarcinile în mod egal celorlalți programatori, astfel 2 probleme venite pe același flux vor fi fixate de către același programator, fără să intervină alții.

Implementarea de funcționalități noi aparține tot de mentenanță, având nevoie de 1-2 programatori pentru implementare, 1 business analist pentru a analiza și a propune idei de funcționalități ce pot sporii business-ului câștigul aducând mai mulți utilizatori pe site.

În total pentru a putea întreține aplicația creată este nevoie de 1-2 programatori (acești programatori pot să întrețină și să implementeze funcționalități noi), 1 tester, 1 suport tehnic, 1 business analist, în total fiind 5 oameni ce întrețin o aplicație de diminesiuni mici. Acest lucru este destul de costisitor însă garantat aplicația va avea un viitor în mediul online fiind bine structurată și întreținută, este adevărat că există șansa să reușești cu o aplicație ce ai dezvoltat-o, a fost publicată pe net fără să fie întreținută însă acest success nu va fi unul de durată pentru că vor există competitor ce vor implementa aceleași lucruri ca și tine adăugând o funcționalitate în plus , așa cum am făcut și noi aici, iar în acel moment aplicația ta v-a începe să nu mai fie utilizată.

În concluzie este important să îți stabilești cum vei face mentenanță aplicației, dacă dorești să fie un proiect de durată sau un proiect ce o să fie promovat pe moment, ce buget aloci, să analizezi competiția, să ai oamenii potriviți.

CONCLUZII

Având în vedere faptul că internetul a luat amploare în ultimii 20 de ani și tot mai des oamenii depind de internet, orice firmă deschisă în mediul online va fi mai vizibilă decât una în mediul real. Acest fapt se datoareaza lipsei de timp, care se resimte cel mai mult în viața tinerilor, iar din dorință de a economisi timp aceștia apelează la soluțiile din mediul online. Ei reușesc astfel să-și facă cumpărăturile când încă mai sunt la birou, să citească o carte în metrou chiar dacă o fost uitată pe noptieră sau să afle ce se mai întâmplă prin oraș chiar dacă trebuie să stea în casă.

Dacă unele acțiuni necesită și o activitate departe de calculator, cele mai multe aplicații sunt dezvoltate astfel încât utilizatorul să economisească cât mai mult timp, să obțină cât mai multe informații și să își satisfacă cât mai multe nevoi.

În concluzie, prin aplicația realizată, urmăresc să satisfac cât mai multe nevoi ale utilizatorilor față de aplicațiile deja existențe pe piață și să ușurez muncă depusă de o persoană atunci când se află în căutarea unei noi locuințe.

Similar Posts