Problem
Basket Fan je proizvod koji je naručio Luxor — kompanija koja decenijama izdaje albume za sličice i koja je htela da testira da li iskustvo može da živi i u digitalnom obliku, sa svim ozbiljnim mehanikama: kolekcija, pokloni, obaveštenja. Brifing je bio: napravi celu aplikaciju koji u stvarnim uslovima i sa stvarnim albumom može da dokaže da publika ovo želi. Ne brzi prototip — proizvod koji ide u prodavnice.
Šta smo napravili
Razvili smo tri međusobno povezane komponente. Nativna mobilna aplikacija (Expo + React Native + TypeScript) sa deset odvojenih ekrana — od dobrodošlice i početne, preko dva odvojena toka skeniranja (skeniraj sličicu da bi ga dodao u kolekciju, skeniraj album da bi ga registrovao na korisnika), albuma i karte, do funkcije Imam–Nemam za poređenje i razmenu sa prijateljima, in-app poruka, podešavanja i ekrana za nagrade. Aplikacija je imala stvarne 3D scene (@react-three/fiber + drei + react-spring) za reveal momente i interaktivne vizuale, plus pažljivo odabranu tipografiju (Grandstander, Khand, Protest Strike) za karakterističan brend, ne template izgled. Backend smo izgradili u .NET-u po Clean Architecture obrascu. Plus zaseban Next.js admin dashboard za upravljanje albumima, katalogom sličica, korisnicima, ulogama i kopijama albuma, sa Redux Toolkit-om za stanje i React Query-jem za serverski sloj.
Moduli i celine
- Nativna mobilna aplikacijaiOS + Android kroz jednu Expo / React Native kod bazu. Deset ekrana, prilagođena navigacija, stvaran brand identitet kroz tipografiju i animacije.
- Skeniranje sličica, albuma, poklonaTri odvojena toka skeniranja: jedan dodaje sličicu u kolekciju korisnika, drugi registruje fizički album na njegov nalog, treći otvara poklon.
- 3D scene i animacije@react-three/fiber sa drei i react-spring/three za reveal momente, interaktivne kartice i animacije nagrada — sve u mobilnom okruženju.
- Imam–Nemam (poređenje i razmena)Funkcija koja korisniku pokazuje šta mu fali i šta mu je suvišno u odnosu na druge — osnovni socijalni mehanizam kolekcioniranja.
- In-app porukeKomunikacioni kanal između korisnika i između sistema i korisnika.
- Ekran za nagrade i potvrdeTok za isporuku nagrada i potvrde dobitnika nagradnih igara.
- Admin dashboardNext.js + Redux Toolkit + React Query za upravljanje albumima, sličicama, katalogom, kopijama albuma, korisnicima, ulogama i pregledom request log-ova.
Kako smo pristupili
Brifing je tražio pun proizvod, ne MVP — tako smo i pristupili. Backend u Clean Architecture-u od starta, jer smo znali da će proizvod dugo živeti. Mobilna aplikacija sa stvarnim brand identitetom i 3D scenama jer kolekcionarsko iskustvo zaslužuje vizuelni jezik koji ga čini posebnim, ne generičkom listom kartica. Posle lansiranja, kada se model dokazao, zajednički sa klijentom doneli smo odluku da širina dostizanja (web vs nativna aplikacija) postaje važnija od osećaja platforme — i pokrenuli Indigo Luxor kao naredni korak iste priče.
Rezultat
Aplikacija je radila u potpunosti — i tehnički i kao proizvod. Sa klijentom smo zajednički ocenili da je naredni album bolje pustiti na veb zbog šireg dostizanja — bez natezanja sa app-store-om, skeniranje iz pregledača svakog telefona — i taj zajednički poziv je doveo do današnjeg Indigo Luxor-a, platforme na kojoj se sada nalazi svi IndigoLuxor albumi. Basket Fan ostaje u portfoliu kao dokaz da možemo da isporučimo pun nativni proizvod od kraja do kraja.