HILLS Lab Logo
HILLS Lab · Ponuda

UMN Split

Digitalna platforma

2026

Tko smo mi

Strast za nogometom.
Iskustvo u kodu.

Ja sam Hrvoje Pavlinović, vlasnik tvrtke HILLS Lab.

Kroz 13 godina iskustva specijalizirao sam se za razvoj ultrabrzih aplikacija, s fokusom na optimizaciju performansi i maksimalno iskorištavanje resursa.

Nogomet je moja strast od malih nogu. Bio sam član UMN Split (igrač i voditelj ekipe Amigos), a uz to i član uprave NK Prugovo.

Sa mnom u timu je i Marin Samardžić, izvrstan inženjer s kojim surađujem na projektima. Uz igračko iskustvo na mnogobrojnim malonogometnim turnirima te u NK OSK, radio je i kao nogometni skaut, što nam daje dodatnu širinu u razumijevanju potreba lige.

Hrvoje Pavlinović
Hrvoje Pavlinović
Founder & Lead Developer
  • ✓ Arhitektura sustava
  • ✓ Full Stack Development
  • ✓ Upravljanje projektom
Marin Samardžić
Marin Samardžić
Software Engineer
  • ✓ Full Stack Development
  • ✓ Migracija podataka
  • ✓ Automatizacija testova
HILLS Lab

HILLS Lab d.o.o.

Specijalizirani za razvoj ultrabrzih web i mobilnih aplikacija.
Fokus na performansama, dizajnu i skalabilnosti.

Go SvelteKit Cloudflare Hetzner
Slični projekti

Već gradimo budućnost amaterskog sporta.

Uz konzultantski posao, već godinama razvijam rješenja za lokalni sport. Ovo nisu samo ideje, već stvarni projekti sa stotinama sati rada.

PLAYGRND Logo

PLAYGRND

Rana faza razvoja

Sustav za agregaciju lokalnih liga, turnira i profila igrača. Aplikacija je trenutno u ranoj fazi razvoja.

Status projekta

Trenutno je omogućen samo pregled utakmica (read-only). Napredne funkcionalnosti poput vođenja liga su u izradi.

Tehnologija

SvelteKit, Go, Postgres, Redis

*Slika sučelja u prilogu je stvarni screenshot iz development verzije.

Zidić Liga

Originalna aplikacija za Zidić Ligu, preteča današnje aplikacije.

NK Prugovo

Službena web stranica NK Prugovo (pro bono projekt).

Tehnička Specifikacija

Čvrsti temelji za skaliranje.

Arhitektura dizajnirana za brzinu, sigurnost i lako održavanje. Spremni za tisuće korisnika.

Arhitektura Sustava

📱
Mobile
💻
Desktop
HTTP/SSL + WebSocket
SvelteKit App

Frontend + Light Backend (SSR, SEO, Cache)
Offline sync podataka

🌐
SvelteKit Admin

Upravljačko sučelje
(Zaštićeni pristup)

🛡️
Go API

Komunikacija s bazom i redisom, Websocket.
Handleanje biznis logike.

Go
⚡️ Redis Cache (brzi pristup)
🗄️ Postgres Podaci
☁️
Cloudflare R2
Content Delivery Network (CDN) za slike
Dnevni backup baze
🛡️
Cloudflare Protection
DDoS zaštita & WAF
Analytics & Monitoring

Shema baze podataka

Okvirna shema baze podataka podložna promjenama.
Možete pomicati shemu klikom miša ili dodirom ekrana.

SUDIONICI
NATJECANJA
MATCH ENGINE
LOKACIJE
MOMČADI
OSTALO

Propozicije natjecanja

id
uuid
match_minutes
int
created_at
timestamp
players_per_side
int
relegations_count
int
transfer_window_end
text
transfer_window_start
text
max_registered_players
int
updated_at
timestamp
teams_count
int
created_by
uuid
rounds
int
fair_play_yellow_points
int
league_season_id
uuid
fair_play_red_points
int
accumulated_fouls_limit_per_half
int

Pravila za poredak u ligi

id
uuid
proposition_id
uuid
created_by
uuid
created_at
timestamp
updated_at
timestamp
tiebreaker_code
text
priority
int

Sezone ligaških natjecanja

id
uuid
created_at
timestamp
photo_url
text
start_date
text
label
text
updated_at
timestamp
created_by
uuid
league_id
uuid
end_date
text

Propozicije kupa

id
uuid
transfer_window_start
text
fair_play_red_points
int
transfer_window_end
text
cup_id
uuid
updated_at
timestamp
created_by
uuid
match_minutes
int
teams_count
int
stage_format
text
created_at
timestamp
fair_play_yellow_points
int
max_registered_players
int
track_appearances
boolean
players_per_side
int

Utakmice i raspored

id
uuid
penalty_score_away
int
fixture
int
status
text
home_captain_user_id
uuid
away_captain_user_id
uuid
score_home
int
match_minutes
int
league_season_id
uuid
created_at
timestamp
score_away
int
cup_id
uuid
cup_group_id
uuid
penalty_score_home
int
halftime_score_away
int
court_id
uuid
home_cup_entry_id
uuid
updated_at
timestamp
halftime_score_home
int
away_team_season_id
uuid
cup_round
text
home_team_season_id
uuid
created_by
uuid
kickoff_at
timestamp
away_cup_entry_id
uuid

Vrste pravila za poredak

code
text
description
text
label
text

Dvorane i lokacije

id
uuid
updated_at
timestamp
name
text
created_at
timestamp
address
text
country
text
email
text
latitude
text
photo_url
text
phone
text
description
text
longitude
text
created_by
uuid
city
text
slug
text

Prijave za kup

id
uuid
cup_id
uuid
created_by
uuid
updated_at
timestamp
photo_url
text
color_away
text
created_at
timestamp
color_main
text
team_id
uuid

Zapisnik igrača na utakmici

id
uuid
team_season_id
uuid
user_id
uuid
is_goalkeeper
boolean
role
enum
• player
• coach
• staff
jersey_number
int
created_at
timestamp
cup_entry_id
uuid
match_id
uuid

Registracije igrača za kup

id
uuid
cup_id
uuid
created_at
timestamp
starts_on
text
cup_entry_id
uuid
updated_at
timestamp
created_by
uuid
role
enum
• player
• coach
• staff
user_id
uuid
ends_on
text

Kup natjecanja

id
uuid
created_at
timestamp
photo_url
text
logo_url
text
name
text
created_by
uuid
updated_at
timestamp
description
text

Klubovi i ekipe

id
uuid
founding_date
text
updated_at
timestamp
name
text
created_at
timestamp
logo_url
text
short_name
text
color_main
text
created_by
uuid
color_away
text
photo_url
text

Korisnici sustava i igrači

id
uuid
photo_url
text
updated_at
timestamp
username
text
country
text
birth_date
text
last_name
text
height_cm
int
email
text
first_name
text
phone
text
created_at
timestamp
is_admin
boolean

Skupine u kupu

id
uuid
updated_at
timestamp
label
text
created_by
uuid
cup_id
uuid
created_at
timestamp

Disciplinske mjere lige

id
uuid
created_by
uuid
yellow_card_suspension_matches
int
red_card_default_suspension_matches
int
created_at
timestamp
proposition_id
uuid
updated_at
timestamp
yellow_card_threshold
int

Teren u dvorani

id
uuid
created_by
uuid
venue_id
uuid
photo_url
text
name
text
slug
text
updated_at
timestamp
is_covered
boolean
created_at
timestamp

Najbolji golmani sezone

id
uuid
league_season_id
uuid
created_at
timestamp
updated_at
timestamp
user_id
uuid
created_by
uuid

Registracije igrača za ligu

id
uuid
role
enum
• player
• coach
• staff
user_id
uuid
ends_on
text
active_period
text
created_at
timestamp
starts_on
text
team_season_id
uuid
league_season_id
uuid
created_by
uuid
updated_at
timestamp

Događaji na utakmici (golovi, kartoni)

id
uuid
match_id
uuid
created_at
timestamp
notes
text
recorded_by
uuid
actor_user_id
uuid
updated_at
timestamp
minute
int
assisting_user_id
uuid
cup_entry_id
uuid
event_type
enum
• goal
• own_goal
• yellow_card
• red_card
• accumulated_foul
• penalty_goal
• penalty_miss
• substitution
• timeout
second
int
team_season_id
uuid

Podaci o ekipi u sezoni

id
uuid
team_id
uuid
color_main
text
created_at
timestamp
color_away
text
photo_url
text
updated_at
timestamp
created_by
uuid
league_season_id
uuid

Pravila za poredak u kupu

id
uuid
created_by
uuid
proposition_id
uuid
updated_at
timestamp
tiebreaker_code
text
priority
int
created_at
timestamp

Lige i natjecanja

id
uuid
created_by
uuid
description
text
created_at
timestamp
logo_url
text
name
text
updated_at
timestamp
slug
text

Momčad sezone

id
uuid
updated_at
timestamp
created_by
uuid
user_id
uuid
league_season_id
uuid
created_at
timestamp

Najbolji igrači sezone

id
uuid
league_season_id
uuid
created_at
timestamp
updated_at
timestamp
created_by
uuid
user_id
uuid

Ekipe u skupinama kupa

id
uuid
cup_group_id
uuid
created_at
timestamp
updated_at
timestamp
created_by
uuid
cup_entry_id
uuid

Službene osobe na utakmici

id
uuid
match_id
uuid
created_at
timestamp
user_id
uuid

Ugovori službenih osoba (suci, delegati)

id
uuid
user_id
uuid
role
enum
• referee
• timekeeper
• delegate
starts_on
date
ends_on
date
created_at
timestamp

Obavijesti i novosti

id
uuid
title
text
content
text
type
enum
• pre_match
• post_match
• league
• general
match_id
uuid
created_at
timestamp
published_at
timestamp
Povuci za pregled sheme

⚡️ SvelteKit

Dok React i ostali šalju veliku količinu JavaScripta na klijenta, SvelteKit većinu posla obavlja unaprijed (compile-time).

  • Značajno brže učitavanje stranice
  • Bolji SEO zbog Server-Side Renderinga
  • Manje opterećenje za mobilne uređaje

🚀 Go API

Googleov jezik kreiran specifično za cloud infrastrukturu i visoke performanse.

  • Pravi concurrency model (goroutines) idealan za WebSockets
  • Troši 10x manje memorije od Node.js-a
  • Stabilnost i brzina obrade podataka

🏗️ Hetzner Cloud

Pametan odabir infrastrukture koji eliminira nepotrebne troškove cloud providera.

  • Najbolji omjer cijene i performansi
  • Dedicated server za stabilne performanse (nema dijeljenja resursa)
  • Jednostavnost održavanja i predvidljivi troškovi

🎭 Playwright

Napredni sustav za automatizirano testiranje

  • Simulacija stvarnih korisnika (klikovi, unosi)
  • Testiranje na svim uređajima (Desktop, Mobile)
  • Svaka promjena se automatski provjerava prije produkcije

Dodatne mogućnosti

Prijedlozi modula koje možemo implementirati nakon inicijalne isporuke, kako bi liga nastavila rasti.

🤖

AI izvještaji

Automatsko generiranje prijedloga najava i rezultata utakmica koristeći umjetnu inteligenciju u željenom stilu. Štedi vrijeme administratorima i olakšava rad.

🎨

Automatski vizuali i dijeljenje

Automatsko generiranje atraktivnih grafika za golove, rezultate i najave. Dijeljenje na društvene mreže jednim klikom.

💬

Društvene komponente i interakcija

Mogućnost 'claimanja' profila igrača, komentiranje i lajkanje utakmica. Stvaranje zajednice oko lige, ne samo prikaz rezultata.

📲

Nativna mobilna aplikacija

iOS/Android aplikacija s push notifikacijama. Backend je već spreman za to (API-first pristup).

📊

Napredna analitika prometa

Praćenje prometa u stvarnom vremenu, analiza posjetitelja i popularni igrači/klubovi. Dubinski uvid u rast lige.

💰

Monetizacija

Integrirani prostori za sponzore (npr. JAKO, fizioterapeuti) unutar aplikacije. Pametno targetiranje publike koja je 100% sportska.

Vremenski plan

Put do uspjeha.

Realan plan isporuke koji osigurava da sve bude spremno za novu sezonu. Predviđeno vrijeme isporuke je 5 mjeseci, fleksibilni smo oko početka rada. Dolje navedeni primjer prikazuje vremenski plan ako bi krenuli s radom 19.01.2026.

1

Početak

Setup okoline i zajednički rad na dizajnu i sadržaju.

19.01.
2

Dizajn & Prototip

Finalizacija dizajna i razvoj.

02.02.
3

Razvoj & Live Test

Kontinuirano testiranje i feedback.

Veljača i Ožujak
4

Integracija & Polish

Optimizacija UX-a, edukacija i dokumentacija.

Travanj i Svibanj
5

Lansiranje

Puna produkcija i primopredaja.

30.06.
Financijska Ponuda

44.730 €

35.784 € + PDV 25%

Struktura Investicije

* Prikazana cijena je okvirna procjena na temelju navedenih funkcionalnosti u javnom pozivu. Cijena je podložna korekcijama ovisno o finalnom definiranju opsega projekta (dodavanje/micanje modula) ili budžetu naručitelja.

Dinamika plaćanja

  • Avans: 40%
  • Nakon beta verzije: 30%
  • Nakon potvrde isporuke: 30%

* Trošak dediciranog Hetzner CCX23 servera 30 € mjesečno sa PDV-om.
** U cijenu je uključena 1 godina održavanja (10h/mj), nakon toga 35 €/h (PDV uključen).

"Naš primarni cilj nije strogo definiranje satnice i funkcionalnosti, već motivacija rada na projektu ovakvog tipa vezanom za nogomet i zajednicu, garancija isporuke i dugoročna uspješnost projekta."

Zašto odabrati nas?

Spoj senioriteta, strasti prema nogometu i profesionalne sigurnosti.

  • Iskustvo i izvrsnost

    Senior inženjeri s iskustvom na velikim projektima. Nudimo kvalitetu i inženjersku disciplinu, uz vrhunske preporuke.

  • Strast prema nogometu

    Win-win situacija: veliki smo zaljubljenici u nogomet i ovaj projekt radimo s posebnim guštom jer želimo doprinijeti lokalnoj zajednici.

  • "Sweet spot" između profesionalnosti i fleksibilnosti

    HILLS Lab d.o.o. garantira profesionalnost i ugovornu sigurnost. Nismo skupi kao velike agencije, ali nudimo veću stabilnost od samostalnih freelancera.

  • Tu smo, u Splitu

    Lokalna smo ekipa. Dostupni za sastanke uživo, kave i dolaske na teren. Brza, izravna i jednostavna komunikacija.

HILLS Lab d.o.o.

Tvrtka za razvoj visokotehnoloških rješenja
Split, Hrvatska
Osnovana 2022.

[email protected]

Član uprave: Hrvoje Pavlinović

48104693060 OIB: 05564115 Matični broj:

Erste & Steiermärkische Bank

HR0724020061101085605

Temeljni kapital: 20.000,00 kn uplaćen u cijelosti.

© 2025 HILLS Lab d.o.o. Sva prava pridržana.