Changes between Version 3 and Version 4 of AdvancedTopic


Ignore:
Timestamp:
06/09/26 00:00:51 (11 days ago)
Author:
231049
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedTopic

    v3 v4  
    33== Краток опис на напредната тема (PostGIS)
    44
    5 Како напредна тема за овој проект го избравме PostGIS, бидејќи претставува најсоодветно решение за функционалностите што системот ги нуди. Уште од самиот почеток, системот беше замислен да работи со локациите на работниците и објавите на корисниците, особено во делот каде што работниците можат да изберат дали сакаат да работат на далечина (remote) или само во рамки на одредена оддалеченост од нивната моментална локација која ја имаат внесено во системот.
     5Како напредна тема за овој проект го избравме PostGIS и QGIS, бидејќи претставуваат најсоодветно решение за функционалностите што системот ги нуди. Уште од самиот почеток, системот беше замислен да работи со локациите на работниците и објавите на корисниците, особено во делот каде што работниците можат да изберат дали сакаат да работат на далечина (remote) или само во рамки на одредена оддалеченост од нивната моментална локација која ја имаат внесено во системот.
    66
    77Поради ова, PostGIS се покажа како најсоодветна напредна тема, бидејќи, со негова помош, секој мајстор може лесно да ги разгледува понудите што се наоѓаат во негова близина доколку не работи на далечина, додека на корисниците кои бараат мајстори им се препорачуваат оние што се наоѓаат во нивна близина или нудат услуги на далечина.
     
    99== Функционалности
    1010
     11Во рамките на напредната тема беа имплементирани неколку дополнителни функционалности, и тоа:
     12
     13=== fn_suggest_posts_for_worker(p_worker_id, p_radius_meters default 5000, p_limit default 10)
     14
     15Оваа функција служи за предлагање на соодветни постови за одреден работник врз основа на неговите специјалност и локација. Најпрво се проверува дали работникот има означено дека е достапен за работа од далечина (works_remote), по што се пребаруваат сите активни огласи. Во резултатите се вклучуваат само оние огласи за кои работникот поседува барем една потребна специјалност. Доколку работникот не работи од далечина, дополнително се применува просторен филтер со функцијата ST_DWithin, кој ги ограничува резултатите на огласи што се наоѓаат во зададен радиус од неговата локација. За секој пронајден оглас се пресметува растојанието со функцијата ST_Distance, а резултатите се подредуваат според најблиските огласи. На крај, функцијата враќа ограничен број резултати, со што се добива листа на најрелевантни постови за конкретниот мајстор, како и ги подобрува перформансите на апликацијата.
     16
     17
     18
     19=== fn_suggest_workers_for_post(p_post_id, p_radius_meters default 5000, p_limit default 10)
     20
     21Оваа функција служи за пронаоѓање и препорачување на најсоодветни работници за одреден оглас. Функцијата ги пребарува сите работници и ги избира само оние чии специјалности се совпаѓаат со барањата на огласот. Дополнително, се зема предвид и локацијата на работникот (доколку корисникот размислува дека ако работникот иде од далеку ќе очекува одреден паричен надоместок за поминатиот пат), при што се вклучуваат работници кои се подготвени да работат од далечина (works_remote) или се наоѓаат во зададен радиус од локацијата на огласот со помош на функцијата ST_DWithin. За секој соодветен работник се пресметува растојанието до огласот со ST_Distance, а резултатите се подредуваат според близина. На крај, функцијата враќа ограничен број резултати, со што се добива листа на најрелевантни кандидати за конкретниот оглас, како и ги подобрува перформансите на апликацијата.
     22
     23
     24
     25=== fn_generate_worker_polygons()
     26
     27
     28=== fn_draw_posts_in_worker_region(p_worker_id)
     29
     30
     31=== fn_location_heatmap()
     32
     33Оваа функција претставува надградба на погледот vw_location_aggregate и е наменета за визуелизација на агрегираните податоци по локација. Освен статистичките информации за бројот на огласи и работници, функцијата ја враќа и геометријата на секоја локација, што овозможува податоците да бидат прикажани на мапа во QGIS. На овој начин сопственикот на платформата може визуелно да идентификува региони со најголема концентрација на работници, активни огласи или целокупна активност, што овозможува полесна анализа и донесување на деловни одлуки.
     34
     35
     36
    1137== Скрипта
    1238