Specifikacija proizvoda
BiznisPortal.rs
Premium poslovni portal Srbije — kompleksan ekosistem firmi, mesta, događaja, magazina, oglasa i AI knowledge graph-a
Vlasnik: Smartechor d.o.o.
Verzija dokumenta: 1.0
Datum: 27. maj 2026.
Tehnološki stack: Next.js 16 · React 19 · Prisma 7.5 · Supabase PostgreSQL · Capacitor 8
Tržište: Srbija (sr-RS primarno, en sekundarno)
Sadržaj
- Pozicioniranje i vizija
- Tehnološki stack i arhitektura
- Frontend
- Backend & DB
- Mobile (Capacitor)
- Infrastruktura
- Korisničke uloge i pristup
- Data model (151 entitet)
- Core poslovni entiteti
- Profil firme
- Marketplace
- Reviews & trust
- Magazin
- Komunikacija
- Monetizacija
- Analytics & Ops
- Javne strane (Consumer-facing)
- Profil firme — premium feature set
- Marketplace moduli (6 tipova oglasa)
- Magazin i AI Content Factory
- Partner kontrolna tabla (firme)
- Admin kontrolna tabla (operator)
- Native mobile aplikacije (3 brand-a)
- API površina (javni + interni)
- Tier sistem i monetizacija
- SEO, E-E-A-T i AI knowledge graph
- Performance & DevOps
- Sigurnost, GDPR i compliance
- Background jobovi (cron)
- Roadmap i sledeći koraci
1. Pozicioniranje i vizija
BiznisPortal.rs nije običan direktorijum firmi — to je kompleksan poslovni ekosistem sa ciljem da bude #1 lokalni knowledge graph poslovne Srbije, vidljiv i prepoznat kao autoritet ne samo od strane korisnika, već i AI modela (ChatGPT, Claude, Perplexity, Google AI Overview).
Misija
Da svaka firma, mesto, brend ili biznis lider u Srbiji ima premium digitalni profil koji deluje kao knjiga, a ne kao katalog — sa AI summary-jem, reputacijskim skorom, ljudima koji vode firmu, sertifikatima, awards, timeline-om i auto-link-om na magazin članke koji ga pominju.
Pet stubova proizvoda
1. Knjige firmi
Kompanije i mesta sa premium profilima, reputation score-om, sertifikatima i ljudima.
2. Magazin
Editorial sadržaj, AI Content Factory, peer review, fact-check, autor bio strane.
3. Marketplace
6 tipova oglasa: nekretnine, automobili, poslovi, prodavnica, događaji, akcije.
4. Partner platforma
Lead generation, boost ads, lead exchange, rezervacije, Q&A, sales CRM.
5. Knowledge graph
Schema.org @graph blokovi, Wikidata QID, Person sameAs, OrganizationGraph.
+ AI-friendly infrastruktura
Voice query log, semantic HTML, FAQPage, PPR, edge cache, Web Vitals tracking.
Diferencijacija u odnosu na konkurente
| Karakteristika | Tradicionalni direktorijum | BiznisPortal.rs |
| Profil firme | Naziv, adresa, telefon | AI summary, reputation 0-100, awards, timeline, sertifikati, ljudi, brendovi, povezane firme |
| SEO | Basic title/description | OrganizationGraph @graph, Wikidata QID, hreflang, OG image varijante, FAQPage, programatske kombo strane |
| Sadržaj | Statički | AI Content Factory + editorial calendar + reading time tracker |
| Trust signali | Recenzije | Verifikacija (APR+telefon+email), Elite/Recommended badge-evi, Trusted Partner, owner reply moderation |
| Monetizacija | Premium listing | 4-tier paketi + Boost + Lead Exchange + Self-serve ads + Sponsored slots + Affiliate + Subscriptions |
| Mobile | Responsive web | 3 zasebne native aplikacije (Consumer + Partner + Admin) preko Capacitor 8 |
2. Tehnološki stack i arhitektura
2.1 Frontend
| Sloj | Tehnologija | Verzija |
| Framework | Next.js (App Router, RSC, Server Actions, PPR) | 16.1.6 |
| UI | React | 19 |
| Stilovi | Tailwind CSS + custom CSS sistem | v4 |
| Font | Manrope (display) + system-ui (body) | — |
| State | Server Components + Server Actions, minimalno klijent state-a | — |
| Forms | Native <form> + Server Actions + Zod-style validacija | — |
| Media | Next/Image, MediaFieldPicker, VideoEmbedField (YouTube/Vimeo) | — |
| i18n | Custom prefix-based (sr-RS default + /en) | — |
2.2 Backend & DB
| Sloj | Tehnologija |
| ORM | Prisma 7.5 sa @prisma/adapter-pg |
| Baza | Supabase PostgreSQL (us-east) sa pgBouncer Transaction Mode (port 6543) |
| Connection pool | pgBouncer + Prisma adapter-pg |
| Migracije | Prisma migrate + ručne SQL migracije za hot-path schema (151 model) |
| Auth | Custom session-based + ClientAccount + VisitorAccount + OwnerLoginToken + PhoneVerification |
| Email | Resend + NotificationDelivery pipeline (transactional + digest) |
| Storage | Supabase Storage + Media model za signed upload-e |
| AI | Anthropic Claude API (AI summary, content factory, voice analytics) |
2.3 Mobile (Capacitor)
3 zasebna native shell-a kroz isti Next.js sajt — runtime detect-uje koji shell se učitao i prikazuje odgovarajući layer:
- BiznisPortal Consumer — bela tema, orange B logo, fokus na pretragu i sadržaj
- BiznisPortal Partner — navy tema, orange B na navy logo, fokus na lead management i poslovne metrike
- BiznisPortal Admin — admin native overlay sa CRM tab-ovima
Build pipeline: build-time icon swap, signed release APK, Play Console varijante po appId.
2.4 Infrastruktura i performanse
- Hosting: Vercel Edge + Node runtime za API rute
- Cache: unstable_cache + revalidateTag (Next.js 16 signature) na home + listing fetcher-ima
- Edge: Brotli compression, Cache-Control + stale-while-revalidate
- Web Vitals: web-vitals 5.2 + PerfBeacon (svih 5 CWV — LCP, INP, CLS, FCP, TTFB) + admin dashboard
- Bundle: @next/bundle-analyzer + code-split teških klijent komponenti
- DB performance: composite indexes na hot queries (city+category, region+industry, status+publishedAt)
- PPR (Partial Prerendering): opt-in na 8+ statičkih ruta
- Realtime: Presence model, TypingState, LiveViewerPing za "Ko gleda profil" feed
3. Korisničke uloge i pristup
Tri klasa korisnika sa zasebnim entitetima
| Klasa | Entitet | Cilj | Pristup |
| Operator / Admin |
User (UserRole enum) |
Upravljanje celokupnim portalom |
/admin · Admin native shell · Sve CRUD operacije |
| Vlasnik firme (Partner) |
ClientAccount + Company.ownerId |
Upravljanje sopstvenom firmom, leadovima, oglasima |
/portal · Partner native app · Read+Write sopstvenu firmu |
| Posetilac (Consumer) |
VisitorAccount |
Pretraga, recenzije, omiljeno, subscriptions |
/nalog · Consumer native app · Public read + write reviews/leads |
Ulazni tokovi
- Posetilac registracija: /registracija → email + phone verify → VisitorAccount
- Vlasnik firme: /prijava → submission wizard (4 koraka) → admin review → OwnerLoginToken (magic link)
- Auth metode: email/password, magic link (token-based), phone verification
4. Data model — 151 Prisma entitet
Schema je organizovana u 8 funkcionalnih grupa. Sve ID-jevi su CUID, sve relacije su strogo tipovane sa onDelete strategijama.
4.1 Core poslovni entiteti
Company
Centralni entitet. type: BUSINESS|PLACE. Vezuje sve ostalo (categories, industry, people, brands, awards, timeline, certificates).
Industry
100 hijerarhijskih industrija (20 root + 80 child). Wikidata QID + schema.org/Service mapiranje.
Category
Kategorije + CategorySlugAlias za 301 redirect-e na canonical slug.
RegionNode
Hijerarhija City → Municipality → Neighborhood sa Wikidata QID za top 30 srpskih gradova.
Person
CEO, founder, board members sa LinkedIn sameAs za schema.org graph.
Brand & CompanyBrand
Subbrend tracking — jedna firma može imati više brendova.
BusinessRelation
Parent/subsidiary/sister relacije — vizualno na profilu firme.
MagazineAuthor
Bio, foto, LinkedIn, fact-check status — emit-uje Person schema.
4.2 Profil firme — premium feature set
CompanyAward
Nagrade, godišnji rangovi, industrijski certifikati prikazani na timeline-u.
CompanyTimelineEntry
Istorija firme — osnivanje, milestones, ekspanzija, IPO.
CompanyCertificate
ISO 9001, HACCP, GDPR, AWS Partner sa datumom važenja i linkom na verifikaciju.
CompanyPerson
Junction sa CompanyPersonRole (CEO, CTO, Founder, Board).
CompanyLocation
Multiple lokacije za franchise/lance.
WorkingHoursDay
Working hours po danima u nedelji + special holidays.
CompanyMedia
Galerija (foto + video embed).
CompanyService
Service catalog sa cenovnikom — emit-uje schema.org/Service za AI graph.
CompanyServiceArea
Geografska zona pokrivanja za servisne firme.
CompanyPhone
Multiple telefonskih brojeva sa verifikacijom.
CompanyTranslation
Multi-language overrides za sr/en.
CompanyMessagingSettings + CompanySavedReply
Quick replies za inbox.
4.3 Marketplace entiteti (6 tipova)
| Tip | Model | Specifičnosti |
| Nekretnine | RealEstate + RealEstateMedia | Property type, površina, broj soba, cena, video, galerija |
| Automobili | CarListing + CarMedia + VehicleMake + VehicleModel | Marka, model, godište, kilometraža, motor, video |
| Poslovi | JobListing | Pozicija, lokacija, full/part-time, plata, beneficije, expiry |
| Prodavnica | StoreProduct + StoreProductMedia | Product schema, cena, stanje (NEW/USED), shipping |
| Događaji | Event + EventMedia | Start/end datum (Belgrade TZ), eventStatus auto-HELD cron, galerija, video |
| Akcije | Deal | Popust, datum važenja, vezano za Company |
4.4 Reviews & Trust
Review + ReviewReply
Korisnička recenzija + javni owner reply. AI + ljudska moderacija.
ReviewPhoto + ReviewVote + ReviewHelpfulVote
Fotografije uz recenziju, upvote/downvote, "korisno" glasanje.
ReviewerMonthlyAward
Mesečna nagrada najboljim recenzentima — leaderboard na /najbolji-recenzenti.
ProfileQA + ProfileQuestion
Q&A na profilu firme — vlasnik odgovara javno.
VerificationCheck + AprLookup
APR (Agencija za privredne registre) verifikacija + telefon + email.
VerificationDispute
Sporne verifikacije za moderaciju.
AutoModerationRule
Definisani patterns za auto-flag (psovke, kompetition spam).
ProfileQualityScore
Cache-iran score 0-100 za sortiranje listinga.
4.5 Magazin
MagazineEdition
Mesečno izdanje sa cover article-om.
MagazineArticle
WYSIWYG content + reading time + reviewedBy + factChecked.
MagazineArticleSection
Anchored sekcije za long-form sa table-of-contents.
MagazineArticleFaq
Per-article FAQ emituje FAQPage schema.
MagazineArticleMention
Auto-link mentioned companies — vidi se kao "Featured in..." na profilu firme.
IndustryReport
Mesečni PDF izveštaji sa newsletter gate.
ContentSuggestion
AI Content Factory predlozi koji čekaju editorial review.
ReadingSession
Reading time tracking per article (anonymous + logged users).
4.6 Komunikacija
Conversation + Message
1-na-1 inbox između posetilaca i firmi.
ListingLead
Lead capture forma na marketplace listinzima.
LiveChatSession + LiveChatMessage
Live chat support widget na sajtu.
BookingSettings + BookingSlot + Booking
Sistem rezervacija za salone, restorane, servise.
SalesInquiry + SalesProspect + ProspectActivity
CRM za partner sales tim.
LeadBid + LeadPurchase
Lead Exchange marketplace — firme licitiraju za leadove iz svoje industrije.
Notification + NotificationDelivery
Multi-channel notifikacije (email, push, in-app).
PushSubscription + VisitorPushSubscription
Web Push subscriptions.
4.7 Monetizacija
Plan + Tier enum
Bronze (besplatan) → Silver → Gold → Platinum. Elite je manuelni badge.
Invoice + Payment + BillingAlert
Mesečno/godišnje fakturisanje, Visa/Master/PayPal.
AdCampaign + AdCreative + Placement + AdStatDaily
Tradicionalna ad platforma sa CPM/CPC.
SelfServeCampaign + SelfServeAdEvent
Samouslužni oglasi koje firma sama kreira.
SponsoredSlot
Pinovani sponzorisani slotovi na listing stranama.
BoostPurchase
Boost ads — kratkoročno poguranje rank-a.
Referral + AffiliateConversion
Affiliate program sa konverzijama.
VisitorSubscription
Premium za posetioce (ad-free, premium funkcije).
4.8 Analytics & Ops
EntityAnalyticsDaily + EntityUniqueVisitor + EntityAnalyticsEvent
Day-grained analytics per entity (firma, članak, oglas).
PerfMetric
Web Vitals beacon storage (svih 5 CWV).
GscQuerySnapshot + GscPageSnapshot
Google Search Console import za top queries i pages.
VoiceQueryLog
Voice search analitika (Alexa, Siri, Google Assistant).
IndexNowSubmission
IndexNow notifikacije ka Bing/Yandex za hot promene.
AdminDigestRun + AnalyticsReportDispatch
Mesečni digest reports za admin tim.
AuditLog
Sve admin akcije, GDPR-ready.
NotFoundEvent + ErrorLog + BackupRun
Ops infrastruktura.
5. Javne strane (Consumer-facing)
Sve strane su pod /[locale]/... sa sr (default, bez prefiksa) i en (sa /en/ prefiksom). Hreflang se emit-uje preko middleware x-pathname header-a + HreflangAlternates server komponente.
Naslovna i navigacija
/ — premium light hero, weather/FX widget, top kategorije, top firme, magazin highlights, akcije, događaji
/pretraga — globalna full-text pretraga preko svih entiteta
/pomoc, /kontakt, /faq
Lokalne strane (programmatic SEO)
| Ruta | Sadržaj |
/grad/[slug] | Sve firme + mesta u gradu, weather widget, top kategorije |
/opstina/[slug] | Opštinski hub sa pripadajućim naseljima |
/naselje/[slug] | Naselje-level listing |
/grad/[slug]/kategorija/[slug] | Kombo: Restorani u Beogradu |
/grad/[slug]/industrija/[slug] | Kombo: IT firme u Novom Sadu |
/grad/[slug]/usluge/[slug] | Kombo: Web dizajn u Nišu |
/naselje/[slug]/kategorija/[slug] | Deep local kombo: Pekare na Dedinju |
/lokalno | Lokalni feed (geo-targeted) |
Kategorije, industrije, usluge
/kategorije, /kategorija/[slug] — sa CategorySlugAlias za 301 redirect-e na canonical slug
/industrije, /industrije/[slug] — sa Wikidata QID, schema.org/Service mapiranjem i industry FAQ-om
/usluge/[slug] — Service landing strane
/najbolji/[...], /top-100 — kurirane top liste
Profili
/kompanije/[slug] — premium profil firme (vidi sekciju 6)
/mesta/[slug] — profil mesta (restoran, salon, prodavnica)
/autori/[handle] — bio autora magazina + njihovi članci
/recenzent/[handle] — profil recenzenta + sve njegove recenzije
/najbolji-recenzenti — mesečni i godišnji leaderboard
Marketplace
/nekretnine + detail strane
/automobili + detail
/poslovi + detail
/prodavnica + detail
/dogadjaji + detail (sa tab-ovima: nadolazeći / aktuelni / prošli 90 dana)
/akcije + detail
Sadržaj & E-E-A-T
/magazin, /magazin/[slug] — članci sa reading time tracker-om
/izvestaji — industrijski izveštaji (PDF + newsletter gate)
/pitanja, /pitanja/[slug] — programatske Q&A strane
/o-nama, /press, /media-kit, /partneri — autoritet i brand strane
/zasto-biznis-portal, /za-partnere, /oglasavanje, /paketi-i-cene, /premium
Posetilac (logged user)
/nalog — dashboard posetioca
/prijava, /registracija, /prijavi-se — auth tokovi
/favoriti — sačuvane firme i listinzi
/moje-pretrage — sačuvane pretrage sa email alert-ima
/uporedi — side-by-side poređenje firmi
/newsletter, /bilten — subscription
Tehničko/Pravno
/uslovi-koriscenja, /privatnost, /kolacici
/api-dokumentacija — javna dokumentacija za Open Data API
/badge — embeddable widget gen (4 varijante)
6. Profil firme — premium feature set
Najvažnija strana cele platforme — to je "knjiga" firme. Profil koristi cinematic hero, AI summary i premium sekcije podržane bogatim JSON-LD @graph blokom za AI graph.
Anatomija profila (top-to-bottom)
- Cinematic hero — full-bleed cover image, logo, naziv firme, lokacija, rating + reviewCount, tier badge, reputation badge
- Action bar — Poruka, Pozovi, Sačuvaj u favorite, Uporedi, Share
- AI Summary — Anthropic-generisan jednoparagrafski sažetak firme
- Brze činjenice — godina osnivanja, broj zaposlenih, sedište, industrija, kategorije
- Ko vodi firmu — foto-grid sa CEO, founder-om, ključnim ljudima (preko Person + CompanyPerson)
- Awards & recognitions — vizualne kartice
- Timeline / istorija — vertikalni timeline sa milestones
- Sertifikati & licence — ISO, HACCP, GDPR sa datumom važenja
- Servisi i cene — CompanyService katalog sa cenovnikom
- Ponude i akcije — Deal sekcija
- Galerija — foto + video embed
- Lokacije — multiple lokacije sa mapom, working hours po danima
- Recenzije — sa owner reply + photos + helpful votes
- Q&A — ProfileQA sa vlasnik odgovorom
- Povezane firme u grupi — BusinessRelation (parent/subsidiary/sister)
- Brendovi firme — CompanyBrand grid
- Featured in... — auto-linked magazin članci koji pominju firmu
- Industry + Region kontekst — link na /industrije/[slug] i /grad/[slug]
- Booking widget (ako su BookingSettings aktivni)
- FAQ specific to firma
Reputation score — formula
| Komponenta | Težina | Detalji |
| Kvalitet profila | 30% | Popunjenost — opis, galerija, sertifikati, ljudi, awards, timeline |
| Trust score | 30% | Verifikacija (APR + telefon + email), godine na portalu, dispute history |
| Brzina odgovora | 20% | Prosečno vreme odgovora na poruke u radno vreme |
| Recenzije | 20% | Prosečan rating × log(reviewCount) |
Skor je 0-100, cache-iran u Company.reputationScore, recompute-uje se via cron i na write events.
Trust badge sistem
| Badge | Dodela | Kriterijum |
| Verified | Automatska | APR + telefon + email verifikovani |
| Trusted Partner | Automatska | Verified + 3+ godine + avg rating ≥ 4.5 + bez ozbiljnih žalbi |
| Recommended | Manualna (editorial) | Editorial pick na osnovu kvaliteta sadržaja i poslovanja |
| Elite | Manualna (na poziv) | Apsolutni lideri u svojoj oblasti |
| Top 100 | Godišnja kurirana lista | Top 100 najprestižnijih firmi u Srbiji |
JSON-LD output (OrganizationGraph)
Svaki profil emit-uje jedan jedinstveni @graph blok koji povezuje:
- LocalBusiness / Organization sa
founder, employee, subOrganization, brand, award, memberOf
- City (Place) sa
sameAs: wikidata QID
- Industry (DefinedTerm) sa
inDefinedTermSet
- Service blokovi za svaki cenovnik unos
- Review agregat (
aggregateRating)
- FAQPage ako firma ima FAQ
7. Marketplace moduli
6 tipova oglasa — zajednička arhitektura
Svi marketplace moduli dele isti pattern:
- Listing strana sa Grid / Map view toggle (default Grid, geo na Map)
- Load More pattern umesto klasične paginacije
- Filteri: lokacija, cena, kategorija, custom attributes
- Detail strana sa galerijom + video + lead capture form (ListingLead)
- Owner CRUD preko Submission wizard-a (4 koraka)
- Admin moderacija sa premium
.admin-data-table sistemom
7.1 Nekretnine (/nekretnine)
- Property type: stan, kuća, plac, poslovni prostor, garaža
- Površina (m²), broj soba, broj kupatila, sprat, parking
- Tip transakcije: prodaja / izdavanje
- Video embed + galerija (DSLR-friendly upload do 25MB)
- Map integration sa Leaflet-om
7.2 Automobili (/automobili)
- VehicleMake + VehicleModel reference (šifarnici)
- Godište, kilometraža, motor, gorivo, menjač, snaga
- Cena + status (NEW/USED)
- Video + galerija
7.3 Poslovi (/poslovi)
- Pozicija, lokacija (city + remote OK)
- Full-time / part-time / honorarno / praksa
- Plata raspon (opcioni)
- Beneficije, opis posla, kvalifikacije
- Expiry datum + auto-deactivate cron
- JobPosting schema za Google Jobs
7.4 Prodavnica (/prodavnica)
- Product schema (Product + Offer + AggregateRating)
- Cena, stanje (NEW/USED), brand
- Shipping info, return policy
- 4-kolona grid layout (drugačiji od ostalih)
7.5 Događaji (/dogadjaji)
- Start/end datum sa Belgrade timezone
- Lokacija (offline) ili URL (online)
- eventStatus: SCHEDULED / RESCHEDULED / POSTPONED / CANCELLED / HELD
- Cron auto-HELD nakon prošlog datuma
- Tab navigacija: Nadolazeći · Aktuelni · Prošli (90 dana)
- Organizer portfolio na profilu firme
- Event schema sa eventStatus za rich snippets
7.6 Akcije (/akcije)
- Vezano za Company
- Datum važenja + popust %
- Prikazano na home + na profilu firme
8. Magazin i AI Content Factory
Editorial workflow
- Ideja / predlog — ručno ili AI-generisan (ContentSuggestion)
- Draft — autor piše u premium WYSIWYG editoru
- Peer review — drugi editor čita i komentariše (reviewedBy field)
- Fact-check — verifikacija sa izvorima (factChecked boolean + factCheckNotes)
- Publish — auto-link mentioned companies (MagazineArticleMention)
- Distribution — Newsletter + Push + Social (RSS feed)
- Analytics — reading time + scroll depth + reading completion rate
AI Content Factory — 4 generatora
| Generator | Format | Trigger |
| Top X u Y | Top 10 IT firmi u Beogradu (2026) | Cron + nakon novih firmi |
| Industry deep-dive | Long-form analiza industrije sa statistikom | Mesečno per industrija |
| Region biznis vodič | Šta posetiti u Pančevu — restorani, mesta, događaji | Per grad/region |
| Q&A long-form | Direktan odgovor na česta pitanja (voice search) | Iz VoiceQueryLog |
Reading time tracking
- ReadingTracker client component beleži ulazne/izlazne događaje
- API endpoint
/api/reports batch-uje ReadingSession
- Agregacija per članak: total time, completion rate, avg scroll depth
- Admin analytics kartica sa metrikama
Industry Reports
- Mesečni PDF izveštaji per industrija
- Newsletter gate — korisnik daje email da preuzme
- ReportDownloadLead model trackuje konverzije
- ReportSubscription za auto-delivery
- ReportPurchase za premium plaćene izveštaje
9. Partner kontrolna tabla (/portal)
Za vlasnike firmi — premium UI sa accordion navigacijom (grouped sections), tier-aware funkcionalnostima.
Sekcije Partner panel-a
| Sekcija | Ruta | Šta omogućava |
| Pregled | /portal | Dashboard sa metrikama + chips za Pitanja / Rezervacije / Berza |
| Upiti (Inbox) | /portal/upiti | Lista lead-ova sa detail + reply |
| Poruke | /portal/poruke | Conversation thread sa posetiocima |
| Poruke / Podešavanja | /portal/poruke-podesavanja | Quick replies (CompanySavedReply), auto-responder |
| Pitanja | /portal/pitanja | Q&A sa answer/reject |
| Rezervacije | /portal/rezervacije | Bookings sa confirm/cancel + slot management |
| Oglasi | /portal/oglasi | Self-serve campaigns + stats |
| Boost | /portal/boost | Kratkoročni boost kupovine |
| Lead Exchange | /portal/lead-exchange | Berza leadova — kupovina iz svoje industrije |
| Plan | /portal/plan | Tier upgrade/downgrade |
| Verifikacija | /portal/verifikacija | APR + telefon + email |
| Sales CRM | /portal/sales-crm | Sopstveni prospekti, deal pipeline |
| Fakture | /portal/invoices | Invoice history + download PDF |
| API Keys | /portal/api-keys | Partner API keys generation |
| Webhooks | /portal/webhooks | Webhook endpoints + delivery log |
| Referrals | /portal/referrals | Affiliate program tracking |
| Podešavanja | /portal/podesavanja | Profil firme, kontakt, working hours, integracije |
Mobile UX
- Native shell sa appPartner-* ekranima (vidi sekciju 11)
- Web mobilni view sa accordion nav-om (jedna grupa otvorena na <720px)
- Tier-aware boje (Silver/Gold/Platinum tematizacija accent boja)
10. Admin kontrolna tabla (/admin)
Operativni cockpit za moderatore i vlasnika portala. Koristi premium .admin-data-table sistem, ima mobilni bottom nav (5 tab-ova) i Admin native shell za iOS/Android.
10.1 Sadržaj & entiteti
| Sekcija | Ruta | Glavne operacije |
| Kompanije | /admin/kompanije | CRUD + Awards + Timeline + Certificates + AI summary trigger |
| Mesta | /admin/mesta | CRUD (type=PLACE) |
| Industrije | /admin/industrije | Hijerarhijski CRUD + Wikidata QID |
| Osobe | /admin/osobe | CRUD Person sa LinkedIn sameAs |
| Brendovi | /admin/brendovi | CRUD Brand |
| Šifarnici | /admin/sifrarnici | VehicleMake/Model, PropertyTypeOption, Amenity, Badge |
| Kategorije | preko Šifarnici | Hijerarhija + slug aliases |
| Magazin | /admin/magazin | CRUD članaka + editorial calendar + total counts + page size |
| Autori | /admin/autori | CRUD MagazineAuthor |
| FAQ | /admin/faq | CategoryFaq + RegionFaq + global FAQ |
| Događaji | /admin/dogadjaji | CRUD Event sa video + galerija |
| Akcije | /admin/akcije | CRUD Deal u proper tabeli |
| Nekretnine, Automobili, Poslovi, Prodavnica | — | CRUD svih marketplace tipova |
| Izveštaji | /admin/izvestaji | CRUD IndustryReport + lead tracking |
| Mediji | /admin/media | Media library |
10.2 Operacije
| Sekcija | Šta |
| Korisnici | Upravljanje User, ClientAccount, VisitorAccount |
| Recenzije | Moderacija — approve, reject, dispute resolution |
| Notifikacije | NotificationTemplate CRUD + manual send |
| Push | Push subscription management + manual push |
| Prijave | Submission queue — review novih firmi pre publish-a |
| Prospekti | SalesProspect pipeline za internal sales tim |
| Komercijalni upiti | SalesInquiry inbox |
| Naplata | Invoice management + manual issue |
| Paketi | Plan CRUD + tier pricing |
| Affiliate | Referral + AffiliateConversion tracking |
| Revenue | Revenue dashboard po izvorima (subscription, ads, boost, lead exchange) |
| Self-serve oglasi | Moderacija + approve/reject ad creatives |
| Sponzorisani | SponsoredSlot management |
| Bilten | BulletinCampaign creation + send + analytics |
| Webhooks | WebhookEndpoint management + delivery log |
10.3 Marketing & Growth
- Google Import — Google Places API integration za bulk import 500+ firmi
- Embed — badge widget generator (4 varijante: standard, review, score, top-100)
- SEO — GSC snapshot import + IndexNow + programatske strane management
- Market Leadership / Commercial Scale / Soft Launch — growth dashboards
10.4 Trust & Safety
- Trust dashboard — agregirani trust metrics
- Trust-Safety — disputes, suspended accounts
- Auto-moderation rules — pattern-based auto-flag
- Voice analytics + Voice aliases — voice search tracking i normalization
- API Keys — Public + Partner key management
- Aktivnosti — AuditLog viewer
- Live chat — moderacija live chat sesija
- Web Vitals dashboard — sve 5 CWV metrika po stranama
- Ops — backup runs, error logs, not-found events
- Partneri — komore, univerziteti, mediji partneri
- Mediji — MediaCoverage (Featured in...)
- Podešavanja — SiteSetting key-value config
11. Native mobile aplikacije
3 zasebne native aplikacije sa istim Next.js codebase-om. Detect-uje se preko User-Agent regex-a + Capacitor bridge proverava.
11.1 BiznisPortal (Consumer)
| Ekran | Funkcija |
| AppHome | Premium home sa weather/FX, top firmama, magazin highlights |
| AppFinder | Pretraga + filteri + map view |
| AppCatalog | Kategorije i industrije browsing |
| AppMagazine + AppMagazineArticle | Magazin reading sa reading time |
| AppCompanyDetail | Profil firme — native verzija |
| AppJobs | Poslovi listing |
| AppAccount, AppAuth | Login + posetilac dashboard |
11.2 BiznisPortal Partner
| Ekran | Funkcija |
| AppPartnerHome | Overview sa chips (Pitanja/Rezervacije/Berza) |
| AppPartnerInbox | Leadovi sa detail + reply |
| AppPartnerMessages + AppPartnerThread | Conversation thread |
| AppPartnerAds | Self-serve campaigns |
| AppPartnerBoost | Boost ad purchases |
| AppPartnerBookings | Rezervacije sa confirm/cancel |
| AppPartnerQuestions | Q&A sa answer/reject |
| AppPartnerLeadExchange | Berza leadova |
| AppPartnerPlan | Tier upgrade |
| AppPartnerVerification | APR + telefon + email |
| AppPartnerAccount + Settings + Onboarding | Account management |
11.3 BiznisPortal Admin
| Ekran | Funkcija |
| AppAdminDashboard | Operativni dashboard |
| AppAdminClients | Lista klijenata + brz pristup |
| AppAdminSubmissions | Submission queue |
| AppAdminInvoices | Invoice management |
| AppAdminChat + AppAdminChatThread | Komunikacija sa partnerima |
Native infrastruktura (shared)
- NativeBootstrap, NativeLayer, NativeShellController
- NativeBehaviors (back button, share, deep link)
- NativePullToRefresh, NativeRouteTransition, NativeRouteSkeleton
- NativeOfflineScreen, NativeRationaleHost (permissions)
- NativeCameraButton, NativeTierBadge, NativeIntro
- PartnerIcons, PartnerShell (zasebno za partner)
- AdminShell (zasebno za admin)
Distribution
- Google Play — 3 zasebne aplikacije (consumer, partner, admin)
- iOS App Store — 3 zasebne aplikacije
- Signed release APK pipeline sa keystore rotation
- Build-time icon swap per appId
- Marketing screenshots 1080×1920 + feature graphics 1024×500
12. API površina
12.1 Javni API
Open Data API — /api/public/companies
- JSON endpoint za 3rd-party developere
- Free tier: 100 req/dan po API key-u
- Auth:
?key=bp_live_... ili Authorization: Bearer bp_live_...
- Query parametri:
city, category, industry, limit (max 100), offset, fields (selective projection)
- Response:
data[] + pagination + _meta (attribution)
- Zahteva attribution (Powered by BiznisPortal.rs) — backlink generator strategija
- Cache:
public, s-maxage=600, stale-while-revalidate=3600
Open Graph image generator — /api/og/[type]
- Dinamička SVG 1200×630 brendirana slika
- 8 tipova:
category, region, combo, best-of, qa, industry, top-100, author
- Cache na Vercel edge:
public, max-age=86400, immutable
Embed widgets — /api/embed/*
- 4 widget varijante: standard, review, score, top-100
- HTML snippet sa dofollow backlink-om
12.2 Posetilac API
| Endpoint | Funkcija |
| /api/auth/* | Login, register, magic link, phone verify |
| /api/listing-contact | Lead capture forma |
| /api/listing-questions | Q&A submit |
| /api/messages, /api/chat | Conversation thread + live chat |
| /api/bookings | Booking submission + slot fetch |
| /api/favorites, /api/recently-viewed | Visitor favorites + history |
| /api/newsletter, /api/bilten | Newsletter subscribe |
| /api/phone-verify | SMS code verify |
| /api/push | Push subscription |
| /api/presence | Realtime presence beacon |
| /api/perf | Web Vitals beacon |
12.3 Partner API (/api/app/partner/*)
- overview, inbox, messages, ads, account, bookings, questions
- Wrapper-i za partner native app
12.4 Admin API (/api/app/admin/*)
- Dashboard wrappers za admin native app
12.5 Sistem & cron
| Endpoint | Funkcija |
| /api/cron/past-events | Auto-HELD prošlih event-a |
| /api/cron/auto-fill-descriptions | AI generisanje opisa za firme bez opisa |
| /api/cron/industry-reports | Mesečna publikacija industry reports |
| /api/cron/ai-content-factory | Auto-generate članci za approved suggestions |
| /api/cron/reputation-recompute | Daily recompute reputation score-a |
| /api/cron/expire-jobs | Auto-deactivate isteklih job listinga |
| /api/health | Health check za uptime monitoring |
| /api/payments | Payment webhook handlers |
| /api/owner | OwnerLoginToken magic link |
| /api/webhooks | Outbound webhook delivery |
| /api/ai/* | AI summary + content suggestions |
| /api/reports | Reading session + analytics ingestion |
13. Tier sistem i monetizacija
Paketi i tier-i
| Tier | Cena | Pozicija | Glavne funkcije |
| Bronze |
Besplatan |
Standardna |
Logo, opis, do 3 kategorije, do 5 fotografija, prijem poruka, listinzi |
| Silver |
od 5.000 RSD/mes |
Viša pozicija |
+ Galerija unlimited, Awards, Timeline, jedna lokacija sa mapom |
| Gold |
od 15.000 RSD/mes |
Viša+ |
+ Sertifikati, brendovi, ljudi, basic analytics |
| Platinum |
od 40.000 RSD/mes |
Top placement |
+ Multiple lokacije, AI summary, premium analytics, prioritetna podrška |
| Elite |
Na poziv |
Manualni izbor |
+ Editorial featuring, Elite badge, custom branding, dedicated AM |
Dodatni revenue stream-ovi
| Stream | Model |
| Boost Ads | Pay-per-day za top placement (24h/7d/30d) |
| Lead Exchange | Firme licitiraju za leadove iz industrije (pay-per-lead) |
| Self-serve oglasi | CPM/CPC banner kampanje koje firma sama kreira |
| Sponsored slots | Pinovani sponsored slotovi na listing stranama |
| Affiliate program | Referral revenue share |
| Premium Visitor Subscription | Ad-free za posetioce + premium funkcije |
| Industry Reports purchase | Plaćeni PDF izveštaji |
| Public API premium tier | Upgrade preko free 100 req/dan |
| Newsletter Bulletin sponsorship | Sponsorisani slot u biltenu |
Plaćanje
- Bankovni transfer (RSD)
- Visa / Mastercard preko sigurnog gateway-a
- PayPal (međunarodno)
- Mesečno ili godišnje fakturisanje (godišnje sa popustom)
- Otkazivanje u bilo kom trenutku, bez ugovorne kazne
14. SEO, E-E-A-T i AI knowledge graph
Structured data — schema.org @graph
| Tip | Gde se emit-uje |
| LocalBusiness / Organization | Profil firme |
| Service | Per stavka cenovnika na profilu |
| Person | Magazin autor + Company people |
| Article + NewsArticle | Magazin članci |
| FAQPage | /faq + per-article + per-category + per-region |
| Event | Event detail (eventStatus dinamičan) |
| JobPosting | Poslovi detail (Google Jobs eligible) |
| Product + Offer + AggregateRating | Prodavnica |
| RealEstateListing | Nekretnine detail |
| Place | City sa Wikidata QID sameAs |
| DefinedTerm | Industry sa Wikidata QID |
| BreadcrumbList | Sve hijerarhijske strane |
OrganizationGraph (key innovation)
Jedan @graph blok per profil firme koji povezuje 5+ entiteta:
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "LocalBusiness", "founder": {...}, "subOrganization": [...], ... },
{ "@type": "Place", "name": "Beograd", "sameAs": "https://www.wikidata.org/wiki/Q3711" },
{ "@type": "DefinedTerm", "name": "Restoraterstvo", "inDefinedTermSet": "schema.org/Service" },
{ "@type": "Service", "name": "...", "offers": {...} },
{ "@type": "AggregateRating", "ratingValue": 4.7, "reviewCount": 142 }
]
}
Programmatic SEO strane
- City × Category: Restorani u Beogradu (2026)
- City × Industry: IT firme u Novom Sadu
- City × Service: Web dizajn u Nišu
- Neighborhood × Category: Pekare na Dedinju
- Opština × Category
- Best-of liste: Najbolji frizeri u Vračaru
- Q&A strane: Koliko košta tetovaža
CTR title patterns
- Dinamička godina:
{Y}
- Brojke:
Top 10, {count} firmi
- Lokacija:
u {City}
- Rating:
· ⭐ 4.7 na profilu firme
- Format: Top 10 frizera u Beogradu (2026) — preporuke i recenzije · BiznisPortal
AI-friendliness
- Semantic HTML5 hijerarhija (h1 → h2 → h3 jasna)
- FAQPage schema za AI Overview rich snippets
- Wikidata sameAs konektori za AI knowledge graph
- VoiceQueryLog tracking direktnih voice search inputa
- Long-form Q&A strane za Perplexity/ChatGPT citaciju
- Article author + reviewedBy + factChecked za AI trust signals
- Brzi server response time + edge cache → AI crawlers brzo indeksiraju
Internal linking i backlinks
- Footer cluster sa pojačanim internal linking-om
- Magazine auto-linker za postojeće članke (Mention model)
- Embeddable badge widget kao dofollow backlink generator
- Open Data API sa required attribution → dofollow backlinks od developera
- Press kit sa logo download + brand colors
- Partneri strana (komore, univerziteti, mediji) za authority
Sitemap i indexing
- Chunked sitemap (po 5k URL-ova)
- IndexNow submission cron za hot promene → Bing/Yandex
- GSC snapshot import za query-page tracking
- Hreflang sr/en preko middleware
- NotFoundEvent tracking + auto-redirect predlozi
15. Performance & DevOps
Web Vitals (Field Data)
| Metrika | Cilj | Trenutno |
| LCP (Largest Contentful Paint) | < 2.5s | ~2.1s (optimized hero image) |
| INP (Interaction to Next Paint) | < 200ms | ~140ms |
| CLS (Cumulative Layout Shift) | < 0.1 | ~0.04 |
| FCP (First Contentful Paint) | < 1.8s | ~1.3s |
| TTFB (Time to First Byte) | < 0.8s | ~0.5s sa edge cache |
DB performance
- pgBouncer Transaction Mode sa Prisma adapter-pg
- Composite indexes na hot queries:
- (cityId, status) za listing
- (categoryId, status, reputationScore) za sort
- (industryId, status) za industry pages
- (companyId, status, createdAt) za reviews
- (publishedAt, status) za magazine
- Groupings + selective field projection (samo polja koja se koriste)
- Parallel query batching sa
Promise.all
Caching strategija
- unstable_cache sa
revalidateTag na home + listing fetcher-ima
- Next.js 16 zahteva
revalidateTag(tag, profile) signature
- Vercel edge cache sa Brotli compression
- HTTP cache headers: public + s-maxage + stale-while-revalidate
- PPR (Partial Prerendering) opt-in na statičkim rutama
- ISR via
revalidate per route (npr. 86400 za /faq)
Bundle & assets
- @next/bundle-analyzer za vizualnu analizu
- Code-split teških klijent komponenti (Leaflet maps, calendar pickers, WYSIWYG editor)
- LCP hero image optimization (priority + responsive + AVIF/WebP)
- Supabase preconnect + font preconnect
- Brotli edge compression za sve HTML/JS/CSS/SVG
Monitoring
- PerfBeacon (Web Vitals 5.2 svih 5 CWV)
- Admin Web Vitals dashboard sa P75/P95/P99
- ErrorLog + AdminDigestRun za daily summary
- BackupRun tracking
16. Sigurnost, GDPR i compliance
Auth & sesije
- Custom session-based auth (httpOnly cookie + signed)
- Zasebni entiteti za User (admin), ClientAccount (partner), VisitorAccount (consumer)
- OwnerLoginToken (magic link) za vlasnike firmi bez password-a
- PhoneVerification preko SMS koda
- Password hash: bcrypt
- VisitorAuthToken za persistent visitor sessions
API sigurnost
- Rate limiting na javnom API-ju (100 req/dan free tier)
- PublicApiKey + PartnerApiKey separation
- API key revocation iz admin dashboard-a
- Webhook signature verifikacija
- CORS strogo definisan na
/api/public/*
GDPR & privatnost
/privatnost politika
- Cookie consent banner sa explicit opt-in za analytics
- VisitorAccount data export (download my data)
- VisitorAccount delete (right to be forgotten) — cascading delete
- AuditLog za sve admin akcije
- NotificationDelivery sa unsubscribe headers
- Min cookie footprint — session + consent flag samo
Trust & safety
- AI + ljudska moderacija recenzija
- AutoModerationRule pattern-based flagging
- VerificationDispute za sporne verifikacije
- Owner reply moderation
- Suspended account workflow
- Content reporting + DMCA takedown proces
Backup & DR
- Supabase automated daily backups
- BackupRun model za internal tracking
- Point-in-time recovery (PITR) preko Supabase
- Media files na Supabase Storage sa redundancy
17. Background jobovi (cron)
| Job | Frekvencija | Šta radi |
| past-events | Hourly | Auto-HELD event-a koji su prošli |
| auto-fill-descriptions | Daily | AI generiše opise za firme bez opisa |
| industry-reports | Monthly | Publikacija mesečnih industry reports |
| ai-content-factory | Daily | Generiše članke iz approved ContentSuggestion |
| reputation-recompute | Daily | Recompute reputationScore za sve firme |
| expire-jobs | Daily | Auto-deactivate isteklih JobListing |
| gsc-snapshot | Weekly | Import GSC query + page snapshots |
| indexnow-batch | Hourly | Batch IndexNow submission za hot promene |
| admin-digest | Daily | AdminDigestRun email sa key metrics |
| analytics-rollup | Daily | EntityAnalyticsDaily aggregation |
| booking-reminders | Hourly | Reminders za nadolazeće bookinge |
| email-digest | Daily/Weekly | NotificationEventDigest za batched notifications |
| billing-alerts | Daily | BillingAlert provera za zakasnele uplate |
| backup-verify | Daily | BackupRun integrity check |
| review-moderation-queue | Hourly | Re-flag review-a koje su AI-flagged a nisu pregledane |
18. Roadmap i sledeći koraci
Završeno do maja 2026
- 189 zadataka prešlo iz roadmap-a u production
- Nivo 1 (E-E-A-T schema + reputation + AI summary)
- Nivo 2 (Industry + Person + Brand + Magazin author + AI Content Factory)
- Nivo 3 (Knowledge graph + programmatic SEO + embedable backlinks)
- Performance sprintovi A-E + Field Data tracking
- Premium UI/UX redesign na 4 površine (public, admin, partner, visitor)
- Native mobile aplikacije (Consumer + Partner + Admin)
- DB migracija — NAICS uklonjen (Srbija ne koristi NAICS)
Sledeća faza (Nivo 4 — proširenja)
- Dodatne native aplikacije za iOS + više polish-a
- Voice-first interfejs za Q&A strane (Alexa skill, Google Assistant action)
- Više AI Content Factory šablona (sezonske analize, year-in-review)
- Womens of the World — zaseban AI-powered women's magazine (Awwwards target)
- Multi-language ekspanzija (BG, MK, HR, BiH)
- B2B marketplace integracije (RFQ, e-procurement)
- White-label tier za regionalne komore
Long-term vizija
BiznisPortal kao defakto knowledge graph poslovne Srbije — referenca koju citiraju AI modeli, mediji, komore, univerziteti i regulatori. Platforma na kojoj svaka firma ima svoj premium digitalni profil koji deluje kao knjiga, ne katalog.
Dokument generisan: 27. maj 2026.
Codebase commit: aaa453c (Remove NAICS classification)
Total Prisma modeli: 151 entitet
Total javnih ruta: 50+ direktorijuma + programatske strane (10k+)
Total admin sekcija: 40+
Total native ekrana: 27+ (Consumer + Partner + Admin)
Total API endpoints: 60+
Za pitanja, predloge ili tehnički deep-dive: support@biznisportal.rs