

Kako smo razvili mobilne aplikacije, web i CMS sustav za lokale i donacije.
Just Drink je nastao kao sljedeća faza postojećeg DinLokaleBodega sustava: platforme koja je već imala mobilnu aplikaciju, CMS, pakete pića, pretplate i lokale uključene u ponudu. Korisnici su kroz aplikaciju mogli kupiti paket ili pretplatu i iskoristiti ih u partnerskim lokalima, dok je administracija kroz CMS vodila osnovne dijelove sustava.
Zato ovaj projekt nije krenuo kao razvoj aplikacije od nule i koja tek mora dokazati osnovnu ideju. Polazna točka bila je drugačija: postojeći proizvod već je imao funkcionalnu jezgru, ali ga je trebalo jasnije postaviti, bolje objasniti korisnicima i proširiti tako da može podržati širi svakodnevni rad lokala, korisnika i administracije.
Zadatak nije bio napraviti još jednu aplikaciju za kupnju pića kroz pretplatničke modele ili jednokratne pakete. Cilj je bio postojeći proizvod pretvoriti u jasniju digitalnu platformu koju korisnici brzo razumiju, lokali mogu prepoznati kao korisnu za svoju vidljivost, a administracija može voditi bez nepotrebnog ručnog usklađivanja.
Projekt je obuhvatio nekoliko povezanih područja:
- rebranding DinLokaleBodega sustava u Just Drink
- izradu novog weba koji jasnije objašnjava uslugu korisnicima i lokalima
- dorade i modernizaciju mobilne aplikacije
- razvoj Vandrepokalena, mjesečnog poretka lokala povezanog s donacijama
- uvođenje 6-Packa i fleksibilnijeg Klippekorta kao jasnijih modela jednokratne kupnje
- proširenje CMS-a za proizvode, lokale, donacije i mjesečne cikluse
- tehnološku osnovu kroz Flutter, Hasura podatkovni sloj, Qwik web i TypeScript API
- pripremu sustava za kasnije obračune, dokumente i isplate lokalima
U poslovnom smislu, Just Drink je trebao napraviti tri važne stvari: jasnije objasniti vrijednost usluge, dati korisnicima razlog da se u aplikaciju vraćaju i administraciji omogućiti kontrolu nad sve složenijim sustavom ponude, lokala, kupnji i donacija.
DinLokaleBodega kao osnova za razvoj Just Drink platforme
DinLokaleBodega nije bio samo ideja za aplikaciju ni početni koncept koji je tek trebalo pretvoriti u proizvod. Sustav se već koristio i imao je jasnu funkcionalnu osnovu: korisnici su mogli kupiti pakete pića, iskoristiti ih u lokalima, a klijent je kroz CMS mogao upravljati ponudom i osnovnim dijelovima platforme.
Zbog toga projekt nije trebalo promatrati kao razvoj aplikacije od nule. Prvi korak bio je razumjeti što u postojećem proizvodu već radi dobro, a tek zatim odlučiti što treba promijeniti. Važnije je bilo prepoznati koje dijelove sustava ima smisla zadržati, a koje treba jasnije oblikovati za novu fazu proizvoda.
Just Drink je morao bolje objasniti uslugu korisnicima, jasnije predstaviti ponudu, dati ljudima razlog da češće otvaraju aplikaciju i omogućiti administraciji da bez nepotrebnog ručnog rada prati složeniji sustav lokala, paketa, donacija i mjesečnih ciklusa.
Postojeći sustav nije trebalo zamijeniti. Trebalo ga je presložiti tako da korisniku ostane jednostavan, a u pozadini dobije dovoljno strukture za daljnji razvoj.
Što je trebalo postaviti drukčije u Just Drink sustavu
Prvi izazov bio je način na koji se usluga objašnjava. Naziv, web i način predstavljanja morali su odmah pokazati što aplikacija nudi: gdje korisnik može pronaći lokal, što može kupiti i kako kupljeni paket koristi u izlasku. Kod ovakvog tipa usluge prvi dojam ne smije tražiti dodatna objašnjenja.
Drugi dio bio je vezan uz naviku korištenja aplikacije. Ako korisnik aplikaciju otvara samo kada kupuje ili koristi paket, ona ostaje vezana uz jedan kratak trenutak. To je dovoljno za osnovnu kupnju, ali nije dovoljno za proizvod koji želi imati življi odnos s korisnicima i lokalima.
Just Drink je zato trebao dobiti sadržaj koji se prirodno mijenja kroz vrijeme. Ne zaseban dodatak koji nema veze s kupnjom, nego funkcionalnost koja se oslanja na postojeće ponašanje korisnika. Iz toga je nastao Vandrepokalen: mjesečni poredak lokala povezan s donacijama.
Vandrepokalen uvodi gemifikaciju s plemenitom svrhom. Kupnje i obnove pretplata doprinose mjesečnom poretku, a prikupljeni iznos usmjerava se u dobrotvorne svrhe. Time aplikacija dobiva dodatni sloj značenja: korisnik i dalje kupuje piće, ali njegov odabir sada ima vidljiv nastavak kroz lokal, poredak i donacijski cilj.
Trebalo je jasnije posložiti i samu ponudu. Dio korisnika želi samo isprobati aplikaciju bez pretplate. Drugi već znaju gdje žele koristiti pogodnosti i žele više slobode pri kupnji. Jedna ponuda teško može jednako dobro odgovoriti na obje situacije, pa su 6-Pack i fleksibilniji Klippekort kao jednokratne kupnje dobili važnu ulogu u novom Just Drink sustavu.
Na kraju, sve to mora imati urednu administraciju iza sebe. Kod razvoja poslovnih sustava i web aplikacija promjena rijetko ostaje samo na onome što korisnik vidi u aplikaciji. Ako se uvode novi proizvodi, donacije, poredak lokala i mjesečna pravila, CMS mora moći pratiti cijeli sustav bez stalnog ručnog usklađivanja.
Prije razvoja nove faze sustav je imao nekoliko ograničenja:
- naziv je bio vezan uz početni lokalni kontekst
- aplikacija je uglavnom bila vezana uz kupnju i korištenje paketa
- ponuda nije jednako dobro odgovarala novim i stalnijim korisnicima
- donacije i mjesečni poredak nisu bili dio korištenja
- CMS je trebalo proširiti za složeniji svakodnevni rad
Nakon razvoja Just Drink je dobio jasnije postavljenu osnovu:
- ime i web koji brže objašnjavaju uslugu
- mobilnu aplikaciju s Vandrepokalenom i donacijama
- jednostavniji ulaz kroz 6-Pack
- fleksibilniji Klippekort
- CMS koji vodi proizvode, lokale, donacije i mjesečne cikluse
- optimiziranu kartičnu naplatu kroz Stripe
Web, mobilna aplikacija i CMS kao povezani dijelovi poslovnog sustava
Kod Just Drinka nije bilo dovoljno urediti samo jedan dio proizvoda. Novi web ne bi imao puni učinak ako nakon preuzimanja aplikacije korisnik ne dobije jasno iskustvo. Isto tako, nove funkcionalnosti u aplikaciji ne bi imale smisla ako ih klijent i njegovi partneri ne mogu samostalno voditi kroz CMS.
Projekt je zato oblikovan kao povezana cjelina, odnosno kao poslovni sustav u kojem svaki dio ima svoju ulogu. Korisnik vidi web i aplikaciju, lokali vide svoju prisutnost u ponudi i poretku, a klijent u pozadini mora imati sustav koji se može svakodnevno uređivati.
Kod razvoja poslovnih sustava i web aplikacija upravo je ta povezanost presudna: ono što se prikazuje korisniku mora imati urednu administraciju iza sebe. Ako se promijeni proizvod, lokal, donacijski cilj ili mjesečni ciklus, ta promjena mora imati jasno mjesto u sustavu i mora se dosljedno odraziti na korisničko iskustvo.
Web koji objašnjava uslugu korisnicima i lokalima
Web je prvi kontakt s korisnicima i lokalima. Njegov zadatak nije bio samo predstaviti novi naziv, nego brzo objasniti što je Just Drink, kako se koristi, koje ponude postoje i zašto lokalima ima smisla sudjelovati u sustavu.
Zato izrada web stranice u ovom projektu nije značila samo novu prezentacijsku stranicu. Web je trebao napraviti ono što korisnik očekuje u prvih nekoliko sekundi: objasniti što je Just Drink, kome je namijenjen i zašto bi preuzeo aplikaciju.
Taj dio sustava izveden je u Qwiku jer je web morao biti brz, pregledan i dobro pripremljen za organsku vidljivost. Kod Just Drinka web nije samo uvod u brend, nego prvi sloj koji korisniku i lokalima mora objasniti uslugu prije nego što uopće dođu do aplikacije.
Uloga weba posebno je važna jer proizvod ima dvije publike. Korisniku treba brzo objasniti kako dolazi do paketa pića i gdje ih može koristiti, dok lokalima treba pokazati zašto sudjelovanje u sustavu ima vrijednost kroz vidljivost, poredak i povezanost s donacijskim ciklusima.
Mobilna aplikacija za Android i iOS s backendom i CMS-om
Mobilna aplikacija ostaje središnje mjesto korištenja Just Drinka. U njoj korisnik kupuje pakete, koristi ih u lokalima, prati Vandrepokalen, vidi donacije i upravlja lokalom kojem doprinosi.
Programiranje mobilnih aplikacija u ovakvom projektu ne može se svesti na izradu ekrana. Treba razumjeti što korisnik radi prije kupnje, što mora vidjeti u trenutku kupnje i što ga kasnije vraća u aplikaciju.
U Just Drinku se taj povratak korisnika veže uz Vandrepokalen i donacije. Aplikacija prikazuje mjesečni poredak lokala, prikupljene iznose i osobni doprinos korisnika. Time korisnik ne otvara aplikaciju samo kada želi kupiti ili iskoristiti paket, nego i kada želi provjeriti rezultat, pratiti svoj lokal i vidjeti kako se donacijski cilj razvija tijekom mjeseca.
Aplikacija je razvijena u Flutteru kao cross-platform mobilna aplikacija za Android i iOS. Takav pristup omogućuje dosljedno korisničko iskustvo na obje platforme i jednostavnije održavanje funkcionalnosti koje moraju raditi jednako za sve korisnike.
CMS za upravljanje sadržajem u mobilnoj aplikaciji
CMS je treći dio iste cjeline. Bez njega bi web i aplikacija brzo postali teški za održavanje, jer svaka promjena u ponudi, lokalima, donacijskim ciljevima, poretku ili mjesečnim ciklusima mora imati mjesto iz kojeg se može urediti.
CMS nije sporedni administracijski dodatak. On drži pod kontrolom ono što korisnik vidi u aplikaciji: proizvode, lokale, donacijske mjesece, pravila, poredak i preglede donacija. Budući da platforma uključuje više lokala i partnera, CMS je postavljen kao administracijsko središte za svakodnevno upravljanje multivendor sustavom.
U pozadini CMS-a i aplikacije nalaze se Hasura i API pisan u TypeScriptu. Hasura omogućuje uredan rad s podacima, dok TypeScript API preuzima poslovna pravila koja ne smiju ostati raspršena po webu, mobilnoj aplikaciji i administraciji.
Just Drink je zato bliži razvoju kompleksnog sustava nego izradi jednostavne aplikacije s nekoliko ekrana. Web, mobilna aplikacija i CMS rade zajedno: jedan dio objašnjava uslugu, drugi je nosi prema korisniku, a treći omogućuje da se cijeli sustav može svakodnevno voditi.
Funkcionalnosti koje su promijenile korištenje mobilne aplikacije
Najveća promjena u Just Drink aplikaciji bio je Vandrepokalen. Ostale funkcionalnosti ili se nadovezuju na njega, ili jasnije uređuju ponudu oko postojeće kupnje paketa pića.
Vandrepokalen: mjesečni poredak lokala povezan s donacijama
Vandrepokalen je središnja nova funkcionalnost Just Drinka. Aplikaciji daje sadržaj koji se mijenja iz mjeseca u mjesec i uvodi nešto što korisnik može pratiti i onda kada ne kupuje odmah novi paket.
Riječ je o mjesečnom poretku lokala povezanom s donacijama. Kupnje i obnove pretplata ulaze u donacijski dio sustava, a lokali se rangiraju prema doprinosu koji je kroz njih ostvaren. Korisnik u aplikaciji vidi aktualni poredak, prikupljeni iznos i svrhu za koju se donira.
Time se mijenja način na koji aplikacija živi. Prije je glavni razlog za otvaranje aplikacije bio kupnja ili korištenje paketa. S Vandrepokalenom korisnik ima dodatni povod: može provjeriti kako stoji njegov lokal, koliko je prikupljeno i mijenja li se poredak tijekom mjeseca.
Važno je da korisnik pritom ne mora učiti potpuno novi način korištenja. I dalje kupuje paket i koristi ga u lokalu. Razlika je u tome što njegova kupnja sada ima vidljiv nastavak: povezuje se s lokalom, poretkom i donacijom.
Za lokale Vandrepokalen također mijenja ulogu u aplikaciji. Lokal više nije samo mjesto na kojem se paket može iskoristiti, nego sudionik mjesečnog natjecanja u poretku i dio donacijskog ciklusa.
Povezane funkcionalnosti Vandrepokalena
Vandrepokalen nije samo lista lokala. Da bi poredak bio razumljiv korisnicima i dovoljno pouzdan za administraciju, mora imati nekoliko povezanih funkcionalnosti.
Moje donacije
Korisnik može vidjeti koji lokal trenutno podržava, pregledati povijest donacija, iznose i datume te promijeniti lokal kojem želi doprinositi. Donacija tako ne ostaje skrivena u pozadini kupnje, nego korisnik ima pregled i kontrolu nad svojim doprinosom.
Mjesečni ciklusi
Vandrepokalen se vodi po mjesecima. Postoji aktualni mjesec, prethodni mjeseci i povijest rezultata. Na kraju mjeseca rezultat se zaključava kako bi poredak ostao vjerodostojan i kasnije provjerljiv.
CMS pregled donacija
Administracija kroz CMS može vidjeti kako je donacijski rezultat nastao. Pregled po lokalu pokazuje koje su kupnje i obnove pretplata ušle u rezultat i na koji se lokal odnose. To je važno za kontrolu, transparentnost i kasnije izvještavanje.
Jasnija ponuda za različite korisnike
Uz Vandrepokalen, trebalo je urediti i samu ponudu. Just Drink ne koriste svi na isti način. Netko želi samo isprobati aplikaciju, dok netko drugi već zna gdje želi izlaziti i želi više slobode pri kupnji.
6-Pack
6-Pack je jednostavniji ulaz u aplikaciju za korisnike koji ne žele odmah pretplatu. Korisnik kupuje 6 pića za 55 DKK, paket vrijedi 30 dana i može se koristiti najviše jedno piće dnevno. Time može probati uslugu bez dugoročne obveze, ali se korištenje ipak raspoređuje kroz više dana.
Klippekort
Klippekort je dorađen paket od 10 pića za korisnike koji žele više fleksibilnosti. Korisnik može kupiti više paketa odjednom, više paketa za isti lokal i njima upravljati odvojeno. Svaki paket ima vlastiti saldo i valjanost, pa je lakše pratiti što je kupljeno i koliko je još dostupno.
Ova podjela ponude važna je jer smanjuje trenje pri ulasku u aplikaciju. Novi korisnik može krenuti s jednostavnijim paketom, dok korisnik koji već zna kako želi koristiti Just Drink ima veću slobodu kroz Klippekort.
Planirane nadogradnje: obračuni, dokumenti i isplate lokalima
Just Drink je postavljen tako da se može dalje razvijati. Kada sustav povezuje korisnike, lokale, kupnje, pretplate i donacije, prirodan sljedeći korak je financijski dio: obračuni, dokumenti i isplate lokalima.
Dok je broj lokala i transakcija manji, dio provjera još se može rješavati ručno. No kako sustav raste, ručni obračuni, tablice i naknadna usklađivanja mogu postati usko grlo. Zato je važno da se podaci o kupnjama, pretplatama, donacijama i lokalima već sada vode povezano i kroz jasna pravila.
Daljnji razvoj sustava predviđa:
- obračunske cikluse
- pripremu SEPA XML datoteka za isplate lokalima
- self-billing račune za lokale
- provizijske račune za prihod platforme
- CSV sažetke za provjeru
- audit log važnih radnji
- slanje dokumenata lokalima
Zaključani podaci bit će najvažniji dio procesa. Ako se za određeno razdoblje priprema obračun, mora biti jasno koje su kupnje ušle u obračun, kojem lokalu pripadaju i koji se iznosi dalje obrađuju. To se prirodno nastavlja na logiku Vandrepokalena, gdje završeni mjesec mora imati vjerodostojan rezultat.
SEPA XML datoteke uklanjaju potrebu za ručnim pripremanjem naloga za isplate. Kada broj lokala raste, svaki ručni korak postaje sporiji i podložniji pogrešci. Sustav zato može pripremati datoteku za plaćanja na temelju podataka koji su već provjereni i zaključani.
Uz isplate, važna je i dokumentacija. Self-billing računi daju lokalima dokumente za njihove obračune, dok se provizijski dio platforme vodi zasebno. Time je jasno odvojeno ono što pripada lokalu od onoga što pripada platformi.
CSV sažeci i kontrolni zapisi pomažu administraciji da brže provjeri što je ušlo u obračun, koji su iznosi pripremljeni i jesu li podaci ostali dosljedni od trenutka zaključavanja do generiranja dokumenata. Kod financijskih procesa nije dovoljno znati samo konačni rezultat; važno je znati i kako je nastao.
Zato je važan i audit log. Ako se generira dokument, promijeni status obračuna, preuzme datoteka ili pošalje dokument lokalima, takva radnja treba ostati zabilježena. To administraciji daje bolju kontrolu i smanjuje prostor za nejasnoće u kasnijim provjerama.
Sažetak rezultata: mobilna aplikacija, CMS i poslovni sustav koji se lakše vodi
Just Drink je nastao kao jasnije postavljena verzija sustava koji je već imao funkcionalnu osnovu. Umjesto da se postojeći proizvod odbaci, zadržano je ono što je radilo, a zatim su web, mobilna aplikacija i CMS povezani u sustav koji korisnicima, lokalima i administraciji daje jasniju ulogu.
Za korisnike, usluga je postala razumljivija već od prvog kontakta. Korisnik lakše vidi što Just Drink nudi, kako dolazi do paketa pića i gdje ih može koristiti. Kroz 6-Pack dobiva jednostavniji prvi korak, a kroz Vandrepokalen i pregled donacija razlog da se u aplikaciju vraća i izvan same kupnje.
Za lokale, aplikacija više nije samo mjesto na kojem se paket može iskoristiti. Kroz Vandrepokalen lokali dobivaju vidljiviju ulogu, ulaze u mjesečni poredak i postaju dio donacijskog ciklusa. Time se aplikacija ne zadržava samo na vezi između korisnika i ponude, nego uključuje i lokal, zajednicu i konkretan mjesečni rezultat.
Za administraciju, klijent dobiva sustav koji se može urednije voditi. CMS pokriva proizvode, lokale, donacijske ciljeve, mjesečne cikluse, poredak i preglede donacija. Time se smanjuje potreba za ručnim usklađivanjem i otvara prostor za daljnji razvoj obračuna, dokumenata i isplata.
Tehnološki, ta kontrola ne dolazi iz jednog alata, nego iz kombinacije Flutter mobilne aplikacije, Qwik weba, Hasura podatkovnog sloja i TypeScript API-ja. Svaki dio ima svoju ulogu, ali vrijednost nastaje tek kada rade kao jedan povezan sustav.
Rezultat je proizvod koji korisniku izgleda jednostavnije, a klijentu daje više kontrole nad onime što se događa u pozadini. Just Drink je postavljen kao proizvod koji korisniku ostaje jednostavan, dok u pozadini ima dovoljno uređenu osnovu za lokale, kupnje, donacije, mjesečne rezultate i administrativne procese.
Ovaj projekt dobro pokazuje da razvoj složenijih digitalnih proizvoda ne završava na korisničkom sučelju. Jednako su važni web koji jasno objašnjava uslugu, CMS koji drži sustav pod kontrolom i podaci koji omogućuju da se proizvod dalje razvija bez gubitka reda.
Ako imate aplikaciju, web platformu ili interni sustav koji više ne prati način na koji stvarno radite, prvi korak ne mora odmah biti potpuna izrada novog rješenja. Često je važnije procijeniti što već dobro radi, što korisnicima ili administraciji stvara problem i gdje sustav treba jasniju strukturu.
Takve projekte rješavamo kroz razvoj poslovnih sustava i web aplikacija , ovisno o tome treba li postojeći proizvod doraditi, proširiti ili postaviti na čvršću tehničku osnovu.
Ključne značajke
Tehnologije

























































