Es vēlos iegādāties dzīvokli Rīgā. Nē, māju Liepājā.. Nē! Māju Rīgā! Tagad!

Kurš gan nevēlas iegādāties savu nekustamo īpašumu? Savs īpašums rada drošības sajūtu. Tās ir mājas no kurām kāds negodīgs īrētājs neizmetīs. Tā ir vietiņa, kurā vari pats rušināties un ieguldīties.

Daudziem jauniem cilvēkiem (ieskaitot arī mani!) ir sapnis iegādāties māju. Daudzi domā, ka pietiek ar krāšanu pirmajai iemaksai, lai ar to piepildītu savu sapni. Bet, vai daudzi apzinās reālas izmaksas?

Es gribētu, ka man klēpī iekristu naudas maiss ar kura palīdzību es varētu iegādāties savu sapņu īpašumu. Bet.. Līdz brīdim kamēr tas tā nenotiek, es centīšos ar finansēm rīkoties gudri.

Dzīves laikā viens no lielākajiem (visbiežāk - lielākais) pirkums, ko tu izdarīsi, būs - nekustamā īpašuma iegāde. Naudas summa, kas tiks iztērēta šim pirkuma, dažādiem cilvēkiem var atšķirties. Vienam būs lielāks maciņš un līdz ar to lielāka, greznāka māja. Otram - mazāks maciņš un dzīvoklis Purvciemā. Neatkarīgi no tā, šis pirkums kabatā būs jūtams.

Iespējams, ka šis ir lielākais pirkums, ko dzīves laikā izdarīsi. Tādēļ tam arī jāpievērš lielāka uzmanība, nekā piena cenu izmaiņām vietējā veikalā. Tu taču negribi pārmaksāt 1’000 EUR? 5’000 EUR? 10’000 EUR?

Es negribu pārmaksāt. Apzinos arī, ka neesmu nekustāmo īpašumu tirgus eksperts, bet kas man liedz gūt vismaz pamatzināšanas šajā sfērā? Pat ar tām pietiks, lai apietu dažādus mākleru trikus. Ar tām pietiks, lai atšķirtu labu piedāvājumu no pilnīga fufeļa.

Ko es, kā programmētājs, varu darīt, lai labāk izprastu nekustamā īpašuma tirgu?

Ideja

Latvijā ir vairāki nekustamo īpašumu sludinājumu un izsoļu portāli. Populārākais, protams, ir ss.lv, bet ir arī tādi, kā vesti.lv, elots.lv, dada.lv utml. Katrā no šiem portāliem ir tūkstošiem! Patiešām - tūkstošiem sludinājumu! Viens cilvēks nav spējīgs visus izskatīt.

Kā ir ar datoru? Kā būtu, ja dators apkopotu visus šos sludinājumus vienotā datubāzē?

Hmm..

Pieņemsim, ka esi ilgi pētījis ss.lv sludinājumus un esi atradis vairākus dzīvokļus, kas Tevi ieinteresē. Vai nebūtu noderīgi salīdzināt šī dzīvokļa cenu ar citiem līdzīgiem dzīvokļiem šajā reģionā? Vai pat vēl labāk - ar citiem tādiem pašiem šajā pašā ēkā? Varbūt pat ar šo pašu dzīvokli, bet ilgākā pagātnē, lai noskaidrotu, kā vēsturiski ir mainījusies tā cena. Šī informācija noteikti palīdzētu kaulējoties par cenu, vai arī, lai vienkārši atmestu šo sludinājumu.

To visu var izdarīt ar datiem, kuri tiek apkopoti no dažādiem sludinājumu portāliem!

Risinājums

Darbiņš ir pēc iespējas autonomākā un lētākā veidā ievākt vairāku sludinājumu portālu datus un tos uzglabāt.

Risinājums: zirnekļi, kas ievāc datus un noglabā datubāzē.

Neliels ieskats tehnoloģijās (skip, ja neesi programmētājs)

Darbam nolēmu izmantot AWS Lambda funkcijas kopā ar Serverless.io framework.

AWS Lambda, jo:

  1. šīs funkcijas ir highly-scalable;
  2. tiek piedāvāts free tier, kurā arī iekļaujos;
  3. cenu ziņā arī nav dārgi, ja netiek izmantots pārāk daudz;
  4. rakstīt var izmantojot man zināmu rīku - node.js;

Serverless.io, jo:

  1. tas automātiski menedžē infrastruktūru (logus, scheduling, function-to-function communications, database ifneedbe);
  2. ar tā konsoles palīdzību var viegli deploy’ot lietas uz AWS;
  3. node.js support :)

Par piemēru ņemsim SS.lv crawleri. Tas sastāv no divām serverless funkcijām:

Pirmā, kas ievelk sarakstu ar jaunajiem sludinājumiem, pārbauda, kuri ir jauni un tos padod tālāk otrai funkcijai.

function One() {

  Crawler.getClassifiedUrlList()
    .then(function (classifiedUrlList) {
      classifiedUrlList.forEach(function (url) {
        if (Database.urlExists(url)) {
          return;
        }
        
        Sns.notify('Two', url);
      });
    });

}

Otrā, kas sagaida adresi uz konkrētu sludinājumu, to ievelk, apstrādā un saglabā datubāzē.

function Two(url) {

  Crawler.getClassified(url)
    .then(function (classified) {
      var data = DataExtractor.run(classified);
      
      Database.store(data);
    });

}

Piezīme: dotais kods nav konkrēti strādājošs. Tas tiek tikai izmantots kā piemērs.

Pa lielam tas arī viss. Būtība ir diezgan viegla. Pats laikietilpīgākais ir normalizēt katra sludinājuma portāla datus.

Strādājošs risinājums

Nu jau kā vairākus gadus man ir strādājošs risinājums “Brokalys”, kas ievāc sludinājumu datus un tos analizē. Par šo ideju arī esmu runājis presē. Cilvēki ir izteikuši daudz labus vārdus, bet līdz šim neesmu varējis ar kādu konkrētu produktu dalīties. Tagad ir pienācis īstais laiks un esmu nolēmis dalīties ar šo projektu.

Varbūt arī tev, lasītāj, šī jau esošā datubāze varētu noderēt? Ja neesi tehnisks cilvēks, tad varu palīdzēt pirkt/pārdot nekustamo īpašumu vai arī izanalizēt jau tevis atrasto.

Raksti man uz matiss@brokalys.com!