I Inventar v0.1 · pitching · 2026-06

Inventar.

Multi-tenant platforma za popis imovine i obaveza. Local-first, ERP-agnostic, otvorena za treće strane.

Klijent
BH Telecom · BH TechLab
Format
Idejno rješenje + pitching
Aplikant
Bloomteq (Ilirya Tech Group d.o.o.)
Datum
22.05.2026
7+
Regionalnih direkcija BHT
~10k
Stavki imovine godišnje
4
Tipa korisnika
16
Sedmica do produkcije
01 · Idejno rješenje

Strateški kontekst

BH Telecom već koristi vlastito interno rješenje za popis. Ono radi posao za njih, ali nije bilo zamišljeno kao proizvod za prodaju. Cilj BH TechLab-a je razviti nešto što istovremeno bolje servisira BHT i može se komercijalizovati, čime se dio investicije amortizuje kroz buduće klijente.

Trenutno

Interno rješenje

Radi, ali je tvrdo vezano za BHT proces i SAP. Multi-tenancy ne postoji. Offline rad je djelimično podržan. API nije otvoren.

Cilj

Platforma za sve

Modernija osnova za BHT plus prodajni proizvod za druge organizacije u regiji. ERP-agnostic, multi-tenant, offline-first od dana 1.

Posljedica

Amortizacija ulaganja

Dio razvojnih troškova vraća se kroz prihode od drugih klijenata. BHT je anchor klijent i referenca, ne jedini klijent.

01 · Idejno rješenje

Četiri zahtjeva koja čine osnovu

Iz dvojnog cilja (BHT korist + komercijalna platforma) proizilaze četiri zahtjeva koja diktiraju arhitekturu.

01 · Multi-tenant

Više klijenata, jedan kod

Multi-tenant model od dana 1. PostgreSQL Row-Level Security kao defense in depth. Custom role i scope sistem dozvoljava da BHT-ova hijerarhija (Uprava, GD, RD, TC) bude jedna konfiguracija, a manje firme imaju druge.

02 · ERP-agnostic

Bilo koji ERP, ili nikakav

Adapter pattern. Platforma govori kanonske domenske tipove, konektor prevodi između tih tipova i SAP-a, Oracle EBS-a, Microsoft Dynamics-a, ili Excel fajla.

03 · Offline-first

Skladišta nemaju signal

Mobilna aplikacija ne zavisi od konekcije. Sve akcije se prvo upisuju lokalno (WatermelonDB), korisnik vidi rezultat odmah, sinhronizacija u pozadini.

04 · Otvoren API

Treće strane mogu da grade

Versioned command API sa OpenAPI ugovorom, plus javni Connector SDK. Niko nije zaključan u našem ekosistemu. Buduća revenue opcija kroz marketplace.

01 · Idejno rješenje

Četiri tipa korisnika, svi prvoklasni

Dizajn mora servisirati svakog od ovih korisnika bez kompromisa.

Field

Član komisije

Skenira na terenu, često bez signala. Mobilni je primarni alat. Treba sub-second tap-to-confirm i jasno offline stanje.

Review

Predsjednik komisije

Pregled rada članova, rješavanje konflikta, finalizacija liste. Pretežno web. Cross-member view, conflict UI, potpis.

Config

Organizator popisa

Konfiguriše komisije, dodjeljuje liste, definiše kalendar ciklusa. Samo web. Treba konfiguracionu gustoću bez SAP transakcijskog dread-a.

Admin

Tenant administrator

Knjiži razlike u ERP, vlasnik audit posture-a, šifrarnici, biznis pravila. Treba audit kvalitete i exporti za auditore.

Multi-tenant od dana 1. Iste UI komponente moraju izgledati dobro za regionalnu firmu sa 12 ljudi koji rade na Excel-u danas, i državno-vezan operator sa 200+ komisija u paraleli.
02 · Arhitektura

Tri sloja, jedan shared paket

Backend, web klijent i mobilna aplikacija dijele isti TypeScript domain paket. Konzistentnost ponašanja preko platformi je strukturno garantovana.

Klijenti
Mobilna aplikacija
React Native + WatermelonDB · offline-first
Web aplikacija
React + TanStack Query · query-on-demand
@popis/domain
Shared types · reducers · HLC · Zod
↓ command pipeline · HTTPS · JSON ↓
Backend
Command API
Node + TypeScript · stateless
PostgreSQL
RLS multi-tenant · audit log · partition
Redis
cache · tokens · rate limit
Vector → Graylog
SIEM · BHT obezbjeđuje
↓ adapter pattern ↓
Integracije
SAP konektor
OData · BAPI/RFC · IDoc · file
Excel konektor
template-based import/export
Ostali ERP
Oracle · Dynamics · custom · ekstenzije
Connector SDK
Javan paket za treće strane
02 · Arhitektura

Local-first sync, korak po korak

Korisnik radi normalno, online ili offline. Komande se queue-uju lokalno i sinhronizuju u batch-u kad mreža dođe.

Korisnik
Član komisije
01 · TAP Skenira inventurni broj kamerom mobitela
02 · SEE Vidi rezultat odmah (optimistic), ide na sljedeći predmet
Mobilna app
React Native
03 · REDUCE Reducer iz shared paketa primjenjuje promjenu na lokalno stanje
04 · QUEUE Komanda u lokalnu queue tabelu sa HLC timestampom
··· Možda offline minutama ili danima
05 · SYNC Pri online connectu, bulk POST komandi
Backend
Command API
06 · CAS Validate, authorize, compare-and-swap protiv aggregate verzije
07 · APPLY Apply reducera na materijalizovano stanje
08 · DELTA Vraća rezultate + komande drugih korisnika
PostgreSQL
Audit & state
09 · WRITE Materijalizovano stanje + audit log u istoj transakciji
10 · EMIT Strukturirani JSON log → Vector → Graylog
Audit log je nuspojava arhitekture. Svaka komanda je već događaj sa namjerom, autorom, vremenom i kontekstom. Compliance trail nije dodatni sloj koji se gradi posebno.
02 · Arhitektura

Konflikti su korisnički task

Kad dva člana komisije skeniraju istu stavku, server detektuje konflikt kroz CAS provjeru i drugi korisnik bira: odbaci ili pošalji administratoru.

CONFLICT BHT-2026-04521 · Dell Latitude 7440
Stavka skenirana dva puta
Amir Hadžić
PRIMIJENJENO
vrijeme
14:32:08 · HLC 1716...4a
lokacija
Centrala soba 304
status
zatečeno
napomena
Edina Babić
ODBIJENO
vrijeme
14:35:42 · HLC 1716...7b
lokacija
Tuzla RD prizemlje
status
zatečeno
napomena
Iznad rolne ormara
Server ima HLC kao tie-break, prvi sken pobjeđuje
02 · Arhitektura

ERP adapter pattern

Platforma govori kanonske domenske tipove. Konektor prevodi između tih tipova i specifičnog ERP API-ja, Excel fajla, ili nečeg trećeg. Niti red koda u jezgru nije vezan za konkretan ERP.

SAP konektor
BHT
Excel konektor
MVP
Oracle EBS
ekstenzija
Inventar Core
Kanonski domain
(Item, Committee, List)

Command pipeline
(CAS · HLC · audit)

Connector SDK
(TypeScript interface)
MS Dynamics
ekstenzija
Pantheon / Navision
treća strana
Custom REST API
treća strana
BHT ulaz: SAP. Konektor podržava OData (S/4HANA), BAPI/RFC (ECC), IDoc kroz PI/PO middleware, ili file-based fallback. Konkretan put se bira na pitchingu, kad imamo SAP verziju.
03 · Web aplikacija

Web flow

Organizator popisa kreira ciklus, formira komisije, dodjeljuje liste. Predsjednik komisije pregleda i finalizuje. Administrator rješava konflikte i šalje knjiženje u ERP.

Step 1 · Login

Magic link, bez passworda

Korisnik unosi email. Server šalje jednokratni link sa kratkim TTL-om. Klik na link otvara aplikaciju i uspostavlja sesiju.

1
Email validacija prema tenant-konfigurisanim domenima.
2
Token TTL je 15 minuta, jednokratan, rate-limited.
3
SSO i AD federacija dolaze u Fazi II.
https://app.inventar.ba/login
I Inventar

Prijavi se

Unesite vaš email i poslat ćemo vam link za prijavu.

Link važi 15 minuta. Tražite drugu opciju? Kontaktirajte admina

Step 2 · Dashboard

Organizator popisa, jutarnji pregled

Vidi aktivni ciklus, napredak po komisijama, konflikti koji čekaju review, sljedeći datumi iz BHT kalendara.

1
Sve za jutarnji pregled na jednom ekranu. KPI red sa brojevima, tabela komisija sa progress kolonom, status ciklusa u headeru. Nema klikova kroz menije.
2
Konflikti dobijaju alert boju. Ne tonu u listu progresa zajedno sa drugim brojkama — vidljivi su odmah jer traže akciju.
3
BHT rokovi su konfigurabilni, ne hardkodirani. Default su 03.01., 15.01., 30.01. Header pokazuje preostale dane do najbližeg.
app.inventar.ba/tenants/bht/dashboard

Godišnji popis 2026

REDOVNI · KNJIŽENJE 30.01.2027 · 41 dan preostalo
POPIS U TOKU
Stavki ukupno
1247
+18 ovaj tjedan
Popisano
892
72%
Manjak
14
Konflikti
12
Komisije i progres
KomisijaListeStavkiNapredakStatus
Centralna komisija Društva
3 člana · D. Begić, S. Karić, E. Babić
awaiting NA ČEKANJU
Komisija RD Sarajevo
4 člana
4 412 94% U TOKU
Komisija RD Tuzla
3 člana
3 298 82% U TOKU
Komisija RD Banja Luka
3 člana
5 187 58% U TOKU
Komisija TC Mostar
3 člana
2 95 100% ZAVRŠENO
Step 3 · Lista stavki

Pregled rezultata komisije

Predsjednik komisije RD Sarajevo provjerava šta su članovi unijeli. Filter chips brzo pokazuju manjak, oštećeno, ili sve.

1
Statusi su jasni vizualno: zatečeno, manjak, oštećeno.
2
Mono font za inventurne brojeve i timestamps. Auditorska ergonomija.
3
Računopolagač i komentari odmah vidljivi, ne klikni-da-vidiš.
app.inventar.ba/tenants/bht/lists/rd-sa-3

Lista 3 · Računari i periferija

142 STAVKI · 134 POPISANO · 5 MANJAK · 3 OŠTEĆENO
Sve · 142 zatečeno · 134 manjak · 5 oštećeno · 3
Inventurni br.StavkaLokacijaRačunopolagačStatusVrijeme
BHT-2026-04521
Dell Latitude 7440
Računari
Centrala · soba 304
AH
A. Hadžić
zatečeno 14:32 · 12.12.
BHT-2026-04522
HP LaserJet 4250
Periferija
Centrala · sprat 4
EB
E. Babić
oštećeno · R3 14:18 · 12.12.
BHT-2026-04523
Samsung Galaxy S24
Mobilni
Centrala · sprat 2
MK
M. Karić
manjak · M2 10:04 · 12.12.
BHT-2026-04524
Dell Latitude 7440
Računari
Centrala · soba 318
SB
S. Bajraktarević
zatečeno 11:42 · 12.12.
BHT-2026-04525
Logitech MX Master 3
Periferija
Centrala · soba 304
AH
A. Hadžić
zatečeno 14:33 · 12.12.
BHT-2026-04526
Cisco Catalyst 2960
Mrežna oprema
Centrala · server room
SD
S. Demirović
manjak · M3 09:51 · 12.12.
Step 4 · Konflikt review

Administrator donosi odluku

Eskalirani konflikti dolaze u admin queue. Admin vidi obje verzije, kontekst, i bira: prihvati prvu, prihvati drugu, ili otvori istragu.

1
Obje verzije sa istim šabolom polja. Auditabilan komparativni view.
2
HLC timestamps pokazuju ko je prvi, ali admin može odlučiti i protivno.
3
Odluka ide u audit log sa razlogom.
app.inventar.ba/tenants/bht/conflicts/c-4a8f
KONFLIKT · 4 od 12 · BHT-2026-04528

Dvojni sken iste stavke

Dell Latitude 7440 · očekivao status: zatečeno
Amir Hadžić
RD Sarajevo · iPhone 13
PRIMIJENJENO
HLC
1716...4a · 14:32:08
lokacija
Centrala soba 304
status
zatečeno
napomena
device
iphone-83bf...
Edina Babić
RD Tuzla · Pixel 7
ODBIJENO
HLC
1716...7b · 14:35:42
lokacija
Tuzla RD prizemlje
status
zatečeno
napomena
Iznad rolne ormara · vjerujem da je premješteno iz Sarajeva
device
pixel-29df...
Razlog eskalacije (Edina): "Stavka se ne može naći u Sarajevu. Možda greška u prošlom popisu."
Step 5 · Izvještaj

Izvještaj za centralnu komisiju

Predefinisani izvještaji prema BHT formatima: zbirni za GD/RD/TC, rekapitulacije po vrsti, izvještaji o razlikama. Export u Excel ili Word predloške.

1
Izvještaj se generiše iz materijalizovanog stanja na klik.
2
BHT default predlošci spremni. Tenant može dodati svoje.
3
Knjiženje razlika u SAP ide jednim klikom kad admin potvrdi.
app.inventar.ba/tenants/bht/reports/r-2026
Zbirni · Društvo · Po komisiji · Razlike · Ad-hoc

Zbirni izvještaj · Centralna komisija Društva

GODIŠNJI POPIS 2026 · GENERISAN 12.01.2027
Stavki popisano
1233
99% od 1247
Višak
3
Manjak
14
Oštećeno
8
Razlike po vrsti i razlogu
25 stavki · 0 nerazriješenih konflikta
Inventurni br.StavkaVrijednost (KM)RazlikaRazlog
BHT-2026-04523
Samsung Galaxy S24
2.150,00 manjak M2 · Šteta nepoznatog uzroka
BHT-2026-04526
Cisco Catalyst 2960
4.800,00 manjak M3 · Rashod prema ovlaštenju
BHT-2026-04522
HP LaserJet 4250
1.200,00 oštećeno R3 · Istek vijeka trajanja
BHT-2026-04590
Lenovo ThinkPad T14
3.420,00 višak R6 · Nije prethodno evidentirano
04 · Mobilna aplikacija

Mobile flow

Član komisije na terenu. Često offline. Skenira, unosi razloge, sinhronizuje kad mreža dođe. Konflikti se rješavaju kao zadatak, ne kao tehnička greška.

Mobile 1 · Moje liste

Lista zadataka dana

Član komisije otvara aplikaciju. Vidi liste koje su mu dodjeljene. Status bar pokazuje offline ako nema signala. Progress bar pokazuje gdje je.

1
Offline indikator u status bar-u je first-class element, ne sakriven u podešavanjima.
2
Pending komande indikatori odmah vidljivi po listi.
3
Lokalna baza drži sve potrebno za rad bez interneta.
14:32 ● OFFLINE
78%

Moje liste

Godišnji popis 2026 · Komisija RD Sarajevo
Lista 3 · Računari i periferija
142 stavki · soba 304-318
5 PENDING
94% popisano 134 / 142
Lista 4 · Mobilna oprema
68 stavki · cijela centrala
SYNCED
62% popisano 42 / 68
Lista 5 · Sitan inventar
241 stavki · skladište
NIJE POČETO
0% popisano 0 / 241
Liste
Skener
Queue · 5
Profil
Mobile 2 · Skener

Skeniranje kamerom

Korisnik usmerava kameru na barkod ili QR. Frame se zaključa kad detektuje. Tap-to-confirm potvrđuje sken bez čekanja na server.

1
Frame i scan linija daju jasan vizualni signal "gdje skenirati".
2
Ručni unos je fallback dugme u dnu ako barkod nije čitljiv.
3
HUD na vrhu pokazuje broj skeniranih iz sesije.
14:33 ● OFFLINE
78%
SCAN · LISTA 3 5 SKENIRANO U SESIJI
USMJERI NA BARKOD OFFLINE · QUEUED
Liste
Skener
Queue · 5
Profil
Mobile 3 · Pronađeno

Predmet pronađen, status zatečeno

Skeniranje vodi na detalje stavke. Korisnik potvrđuje status jednim tapom. Lokalna baza se ažurira, komanda ide u queue za sync.

1
Status pill queued jasno pokazuje da čeka sync.
2
Sve podatke korisnik vidi: ID, naziv, kategoriju, lokaciju, računopolagača.
3
Napomena je opciono, jedan tap dodaje.
14:33 ● OFFLINE
78%
← Lista 3

Dell Latitude 7440

BHT-2026-04521 · RAČUNARI
Lokacija Centrala · soba 304
Računopolagač Amir Hadžić
Datum nabavke 2023-04-12
Vrijednost 2.850,00 KM
Označeno: zatečeno
14:32:08 · čeka sync
QUEUED
Sljedeća stavka →
Liste
Skener
Queue · 6
Profil
Mobile 4 · Manjak

Predmet nije pronađen

Korisnik označava manjak i bira razlog iz BHT šifrarnika M1-M4. Šifrarnici su konfigurabilni po tenantu, ali BHT default-i dolaze pre-konfigurisani.

1
M-kodovi sa kratkim opisima. Mono kod čip + prose opis.
2
"Drugi razlog" otvara polje za free text obrazloženje.
3
Spremi šalje u queue. Sync će se izvršiti kad mreža dođe.
14:35 ● OFFLINE
77%
← Cisco Catalyst 2960

Razlog manjka

BHT-2026-04526 · ODABERI ŠIFRARNIK
M1
Otuđenje (krađa). Prijava MUP-u obavezna.
M2
Šteta nepoznatog uzroka. Centralna komisija ocjenjuje.
M3
Rashod prema ovlaštenju. Bila u planu rashoda.
M4
Pogrešno evidentirano. Računopolagač potvrđuje.
R6
Drugi razlog · uz obrazloženje.
Napomena (opciono):
Stavka je rashodovana prema rješenju 2025/04-21. Dokumentacija u arhivi.
Spremi · ide u queue
Mobile 5 · Sync queue

Pregled pending komandi

Korisnik može uvijek vidjeti šta čeka sync, šta je u toku, šta je odbijeno. Honest state, uvijek.

1
Boja lijevog ruba pokazuje status: queued, syncing, synced.
2
Manual sync dugme za korisnika koji hoće odmah pokušaj.
3
Konflikti su odvojen indikator: nisu samo "neki problem", oni traže akciju.
14:55 ● ONLINE · SYNCING
74%

Queue

12 PENDING · 1 SYNCING · 1 KONFLIKT
Sve · 14 Pending · 12 Konflikt · 1
Item.Scan · 04526
M3 · sad · syncing
SYNCING
Item.Scan · 04525
zatečeno · pred 22m
QUEUED
Item.Scan · 04524
zatečeno · pred 23m
QUEUED
Item.Scan · 04528
zatečeno · konflikt
RIJEŠI
Item.Scan · 04523
manjak M2 · sync 14:51
SYNCED
Item.Scan · 04522
oštećeno R3 · sync 14:50
SYNCED
Liste
Skener
Queue · 14
Profil
Mobile 6 · Konflikt

Konflikt je korisnički zadatak

Server detektovao da je drugi član skenirao istu stavku ranije. Korisnik nije bačen u tehničku grešku, već dobio jasnu odluku: odbaci ili eskaliraj.

1
Modal jasno pokazuje šta se desilo i ko je prvi.
2
"Odbaci moj sken" je default akcija. Vrati lokalno stanje, briši komandu iz queue-a.
3
"Eskaliraj" šalje komandu sa razlogom u admin queue na backendu. Korisnik nastavlja rad.
14:55 ● ONLINE
74%

Queue

12 PENDING · 1 KONFLIKT
Item.Scan · 04525
Item.Scan · 04524
Item.Scan · 04528
05 · Zaključak

Sažeto: zašto vjerujemo da ide

Tehnički

Arhitektura rješava prave probleme

Local-first i command pattern direktno odgovaraju na offline ograničenja i nedostatak audit-a. Adapter pattern rješava ERP lock-in. Multi-tenant od dana 1, ne kao after-thought.

Komercijalni

Platforma se može prodati

BHT je anchor i referenca, ne jedini klijent. Pricing tier-i pokrivaju i SMB i enterprise. Connector SDK otvara marketplace kao buduću revenue liniju.

Operativni

Tim, plan i sufinansiranje

Tri senior full-stack inžinjera + QA full-time, 16 sedmica do produkcije, paralelni razvoj od M2. Sufinansiramo dio razvoja jer dijelimo dugoročni interes.

05 · Zaključak

Pitanja?

Tehnička, komercijalna, ili pitanja o procesu zajedničkog razvoja. Sve je na stolu.

Kontakt
Nermin Hadžić
Email
nermin@bloomteq.com
Telefon
+387 61 688 817
Intro · 01 / 23