Skip to main content

Natur Digital - kako izgleda raditi na projektu od 10.000 radnih sati

team
Šta je Natur.Digital?

Objasniću vam u ELI5 fazonu, natur.digital je Android/iOS aplikacija koja ima i svoju web verziju.

Recimo da planirate hajking kroz šume Bavarije, vi u napred možete da se pripremite šta ćete moći da vidite na određenoj ruti od znamenitosti, životinja, biljaka, ili predela.

Možete da skinete svoj željeni predeo “offline” i onda bez interneta da uživate u sadržaju i prirodi. Nemačka je poznata po tome da internet nije dobro rasprostranjen van naselja pa je ova funkcija veoma važna.

Najbolje od svega je što se koristi tehnologija “geofencing” za obaveštenje kada se približavaš nečemu što je ucrtano na tvojoj ruti ili ako uskoro zalažiš u oblast u kojoj je zabranjen pristup.

Kako izgleda raditi za jednu nemačku državu?

Bila nam je izuzetna čast raditi na projektu za Ministarstvo životne sredine, regije Bavarija / Nemačka

Ispred vas je apliakcija (mobile/web) za ljubitelje prirode koji se nađu u ovom području.

Utrošeno je preko 10.000 sati inicijalnog razvoja na komunikaciju, dizajn i programiranje.

Ja, kao projekt manager sam stekao ogromno iskustvo vodeći tim od 12 ljudi sa još šestoro njih sa klijentske strane. Više o tim izazovima ću vam pričati kasnije.

Ovo poverenje je stečeno prethodnom, jednogodišnjom saradnjom na izgradnji i unapređenju CMS-a koji služi kao centralna baza i uređivački portal (Drupal headless).

Zbog čega ministarstvo Bavarije gura ovu priču?

Odeljenje za životnu sredinu ima odlične stručnjake. Kada to kažem mislim na doktore biologije, geografskih nauka, istorije…

Oni su 3 godine temeljno skupljali podatke o:

  • Mestima
  • Životinjama
  • Biljkama
  • Gljivama
  • Staništima…


Do tih detalja, da vi sada možete da poslušate kako se oglašava “Grasfrosch” žaba, pogledate video. Vidite na mesečnom kalendarskom prikazu kada se može uočiti plod ili cvetanje nekog voća.

Da li je životinja tj. vrsta ugrožena ili ne, pogledate slike. 

Ove informacije su vredne ali ne znače puno ako pristup njima ograničen samo na zaposlene. 

Zato je sledeći logičan potez bio da se ova enciklopedijska arhiva prikaže finansijerima celog projekta - a to su poreski obveznici regije Bavarija i šire.

Sada je moguće dinamično i na zanimljiv način aplikaciju koristi kod kuće ili na licu mesta.

Na zvaničnom prijemu tokom promocije aplikacije posebno nam je prijala rečenica:

Ova aplikacija uopšte ne deluje kao da je državni projekat, skroz je moderna i upotrebljiva!

Jedna rečenica je bila dosta da još bolje učvrsti naše partnerske odnose.

Izazovi komunikacije

Svaka državna ustanova, ukoliko im treba usluga digitalnog servisa, u našem slučaju hostinga, mora da sarađuje sa državnim data centrom IT-DLZ

Grupa ljudi broj 1.

Oni obezbeđuju “mašinu”, bandwidth, podršku, ali se ne bave instaliranjem servisa na tim serverima.

Za te potrebe ministarstvo mora da angažuje privatnu DevOps agenciju.

Ta agencija održava servise aktivnim, instalira ono što je potrebno nama izvođačima, brine i backupu, load balanserima, bazi…

Grupa ljudi broj 2.

Imamo naručioce posla - ministarstvo.

Grupa ljudi broj 3.

Marketing agenciju koju takođe mora da angažuje ministarstvo. Oni su zaduženi za grafike, ton obraćanja, copyrighting, promociju…

Grupa ljudi broj 4.

PEN-TEST agencija.

Grupa ljudi broj 5.

Na kraju, tu je naš tim.

Svu ovu eksternu komunikaciu ne bi bilo moguće držati pod kontrolom ukoliko ne bi postojao specijalizovani softwer za diskusije i prepiske. I kada imamo jednog klijent i kada je to više agencija mi koristimo domaći Active Collab pozdrav za Iliju i ekipu ;)

Kako bi pobegli od besumučnog silovanja CC i BCC sekcije u mejlu, ljudi se lepo prijavljuju i taguju po potrebi u diskusije ili taskove.

U dugim projektima kao ovaj, nepohodno je imati alat gde se možeš vratiti u istoriju i pročitati šta je neko, negde, nekad, rekao.

Klijentima smo otvorili oči ovakvim pristupom komunikacije. Bukvalno su progledali, shvativši koliko ih zapravo pritiska “birokratska pegla” - klasična email prepiska.

Programerski izazovi
React Native

Aplikacija je napravljena koristeći React Native. Nativne komponente su pisane za svaki sistem posebno i korištene posebne biblioteke.

Prednost ovog načina razvijanja aplikacija je što za interfejs imate jedan code base.

Mape, Layeri

Za osnovnu mapu smo koristili državnu mapu Bavarije - njihovog GIS centra. Za ove potrebe smo morali razviti svoj mapProxy kako ne bi stalno komunicirali sa njihovim API-jem i sačuvali performanse.

Pošto neke rute izlaze van okvira Bavarije i posle se opet vraćaju, a Bavarijska GIS mapa je ograničena, hteli smo da prikažemo mapu i tih predela koji izlaze iz okvira. Za ove potrebe tu je novi layer u pozadini - OpenStreet map.

Imamo layer sa topografskim detaljima, elevacije, zatim layer sa bicikl rutama i layer sa pešačkim rutama. 

Za prikaz geografskog sadržaja na mapi koristili smo dobro poznati Leafletjs.

Keširanje

Dosta vremena je investirano na pravilno razumevanje sistema, i potreba korisnika šta mora biti brzo i odmah dostupno a šta može da se učitava po zahtevu. Jedan od alata za ove potrebe bio je i Recoil. Pored React-a još jedan open source projekat od Facebook-a u našem arsenalu.

Dve baze

Drupal CMS brine o sadržaju i čuva podatke u MariaDB. Ti podaci se prenose u MongoDB, preko čega se napaja aplikacija i web sajt. Pažljivo su mapirana polja koja moraju da se prenesu u Mongo jer nisu svi podaci iz Drupal baze potrebni i za krajnjeg korisnika. 

Geofencing

Prvi put smo na ovom projektu ozbiljno ušli u geofencing tehnologiju. Za one koji ne znaju to je servis na telefonima koji može da trigeruje neki event na osnovu vaše trenutne lokacije. 

Mi smo ga iskoristili kod obaveštavanja korisnika kada se približava nekom bitnom mestu ili kada mora da stane jer je zašao u zaštićeno područje privremena ili stalne regulacije pristupa. 

Klijent je išao do tih detalja da postoje područaje gde u jednom delu godine ne sme da se ide jer se medved pari a kad završi onda je pristup slobodan 🙂. 

Najveći izazov ovde je bilo napraviti dobar balans između blagovremenog obaveštavanja sistemskim notifikacijama a da se baterija sačuva koliko je moguće.

Na kraju smo uspeli da optimizujemo podešavnja na interval od 300 sec i 250m. To su sada zvanične vrednosti za pokretanje obaveštenja. Ovo pokriva standardnu brzinu šetanja i laganu vožnju biciklom.

Offline mode

Sve gore napisano radi i u offline režimu tj. kada ne postoji data na telefonu. Bukvalno smo replicirali opciju “Offline maps” od Googla ali smo išli korak dalje jer smo korisniku omogućili da vidi ceo sadržaj a ne samo neke delove. Korisnik može da odabere koju regiju sa mape želi da skine na telefon ili pak da skine individualan sadržaj iz Lexikona. 

Search

Elastic Searc nam je pomogao da defiišemo 20 indeksiranih celina. Zatim smo sa klijenotm odredili prioritete prikaza. Neki od elemenata za koje radi pretraga su naslov, kategorija, latinski naziv, kratki opis, naziv reference…. Svaki od njih dobije svoj “score” na osnovu prioriteta i tako se rezultati prikazuju.

Na primer ako tražimo “žaba” - “Frosch” prvo će biti prikazane one žabe koje u svom nazivu imaju reč “žaba” zato što je prioritet za naslov 10.

Fastlane

Kako bi ceo proces bio zaokružen a svaki novi update stigao brzo do krajnjeg korisnika, implementirali smo fastlane za automatsko slanje aplikacija na review proces. Ovaj Google servis radi lepo za obe platforme.

Ovim se uštedi oko 2-3 sata pri svakom novom releasu-u! Bez ručnog upload-a APK i IPA fajlova.

Kriza u braku i stres

U svakom projektu je isto kao u braku. Kaže narod da se svakih 7 godina braka desi jedna kriza, a u agilnom developmentu je to svakih 70 dana 🙂. Tako je bilo i ovde. Bilo je kriza ubađenja kako nešto mora da radi. Kriza u odlaganju odluke u kom pravcu treba ići i kada stvari moraju da se seku i slično…

Mnogo smo jaki 🙂

Ponosan sam da je subotička agencija koja ima istureno odeljenje u Nemačkoj uspela je da napravi aplikaciju i web sajt za državnu instituciju. Smatram da smo pravilno iskoristili budžet, ponudivši korisnu stvar ljubiteljima prirode i dali novi vetar u leđa biolozima i geografičarima da budu još ponosniji na svoj rad.

Naši ljudi su iz Subotice su radili za regiju Bavarija što nije mala stvar.

Ovim primerom podržavamo projekat IT SUBOTICA 2030 jer je ovde lepo živeti, a u isto vreme biti u mogućnosti raditi za bilo koji deo sveta!
 

Ćuković Miloš, COO,

Subotica 11.08.2023.