Das Portal Visidarbi.lv lief schon einige Zeit auf veralteter Software und hat die ursprünglichen Anforderungen aufgrund von Mängeln beim technischen Design und der Implementierung nie ganz erfüllt. Wir haben das Projekt vom vorherigen Anbieter übernommen und eine komplett neue, moderne und effektive Lösung geschaffen.
Visidarbi.lv ist seit 2008 aktiv und wird vom führenden Online-Recruitment-Dienstleister Lettlands, CV-Online Latvia, betrieben. Es ist eines der beliebtesten und am schnellsten wachsenden Jobportale in Lettland und bietet täglich Zugriff auf Tausende Stellenangebote, die von den beliebtesten Job- und Karriereportalen, Anzeigenportalen und großen Unternehmenswebsites stammen.
Die meisten der Besucher von Visidarbi.lv suchen nach Stellenangeboten für Fachkräfte, Assistenten, Kundendienstpersonal oder niedrig qualifizierte Arbeitskräfte in Riga, bedeutenden Städten und Regionen in Lettland oder im Ausland. Abhängig von der jeweiligen Stadt oder Region bietet Visidarbi.lv die meisten Stellenangebote.
Eine der wichtigsten Anforderungen des Kunden lautete: Wir sollten mehr als nur Programmierer sein – unsere Aufgabe war es, gleichzeitig als Innovatoren die Führung in der Projektentwicklung zu übernehmen. Zum Glück ist es genau das, was wir tagtäglich für all unsere Kunden und Partner tun.
Die Haupterwartungen des Kunden waren eine herausragende Performance und ein komplett responsives und anpassungsfähiges Design für die wachsende Zahl mobiler Nutzer. Die UIX sollte unkompliziert und intuitiv sein, tägliche manuelle Datenmapping-Arbeiten vermieden werden und die Lösung sollte auch in anderen Ländern einfach angepasst und implementiert werden können.
Außerdem mussten wir den Großteil der Daten aus dem alten System migrieren und den Übergang auf das neue System so reibungslos wie möglich gestalten.
Wir beschlossen, das System auf Grundlage von Microservices zu entwickeln, um seine zukünftige Flexibilität zu gewährleisten und für jede Komponente die bestmöglichen Technologien zu nutzen. Im Kern beruht es auf einem Symfony-Framework, einem der beliebtesten PHP-Frameworks, das häufig für webbasierte Anwendungen genutzt wird. Außerdem setzten wir das schnelle und leistungsfähige Python-Framework Scrapy ein, um Daten aus den externen Stellenanzeigenportalen zu extrahieren.
Scrapy hat sich als sehr zuverlässig und flexibel erwiesen und ermöglicht die sehr schnelle Extraktion großer Datenmengen. Somit können unsere Parser die Daten nahezu in Echtzeit liefern.
Die Jobsuche ist fraglos das wichtigste und meistgenutzte Feature des ganzen Systems und muss somit schnell, effizient und intuitiv funktionieren. Reine SQL-Abfragen an die Datenbank würden diese Anforderung nicht erfüllen und so suchten wir nach einer Lösung genau für diesen Zweck: einer Suchmaschine. Die Hauptanforderung an diese Suchmaschine war die inkrementelle Datenindizierung – die Möglichkeit, einen einzelnen Datensatz zu indizieren, wenn er verändert wurde, anstatt wiederholt alle Daten erneut zu indizieren. Wir haben unsere Auswahl zunächst auf Algolia und Elasticsearch eingeschränkt, die beiden beliebtesten und funktionsreichsten Systeme auf dem Markt. Schließlich entschieden wir uns für die selbst gehostete Lösung Elasticsearch, um gegenüber der cloudbasierten Lösung Algolia zusätzliche Kosten zu sparen.
Um den manuellen Arbeitsaufwand bei der Zuordnung von externen Stellenanzeigen zu den Ländern und Städten im System zu vermeiden, haben wir einen automatischen Mapping-Mechanismus implementiert. Dieser Mechanismus basiert darauf, dass Regionen als geometrische Formen, als Polygone, dargestellt werden. Ein Land wird so in eine Vielzahl von Polygonen eingeteilt, die jeweils als geographische Koordinaten dargestellt werden.
Mithilfe der Geocoding-API von Google wandelten wir in Textform vorliegende Adressen in geografische Koordinaten um, indem wir ihnen Breiten- und Längengrad zuwiesen. Geo-Koordinaten sind genaugenommen Punkte auf einer Landkarte. In Kombination mit Polygonen können wir also feststellen, wohin ein Punkt gehört. Hierzu nutzen wir den Punkt-in-Polygon-Algorithmus.
PHP7, Symfony, Python, Scrapy, Elasticsearch, MariaDB, Redis, Nginx, REST
Die bisher vorhandene Altsoftware wurde durch eine brandneue, moderne und stabile Lösung ersetzt, die den Anforderungen des Kunden sehr viel besser entsprach. Damit kann Visidarbi sowohl Jobsuchenden als auch Arbeitgebern einen deutlich verbesserten Service bieten. Das neue System läuft im Tagesgeschäft völlig ohne händisches Eingreifen.
Schon kurz nach Inbetriebnahme führten wir dasselbe System unter Dirbam.lt auf dem litauischen Markt sowie unter Otsintood.ee in Estland ein.