Skip to content

Latest commit

Β 

History

History
225 lines (182 loc) Β· 12.5 KB

File metadata and controls

225 lines (182 loc) Β· 12.5 KB

PoC (Proof of Concept) - Pregled

Ε ta je PoC?

PoC (Proof of Concept) je minimalna funkcionalna verzija aplikacije koja sluΕΎi za:

  1. Testiranje osnovnog koncepta
  2. Validaciju sa stvarnim korisnicima
  3. Prikupljanje ranog feedback-a

Cilj: Odgovoriti na pitanje "Da li ovo uopΕ‘te radi?" sa minimalnim ulaganjem vremena.


Opseg PoC-a

Šta JE uključeno

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  POC FUNKCIONALNOSTI                                                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  βœ… Panic button (drΕΎi 3 sekunde za aktivaciju)                             β”‚
β”‚  βœ… Automatsko preuzimanje GPS lokacije                                     β”‚
β”‚  βœ… Opcioni tekstualni opis incidenta                                       β”‚
β”‚  βœ… Opcioni unos imena                                                      β”‚
β”‚  βœ… Slanje alarma u Telegram grupu                                          β”‚
β”‚  βœ… "Preuzimam" dugme (sa unosom imena)                                     β”‚
β”‚  βœ… Real-time prikaz ko je preuzeo                                          β”‚
β”‚  βœ… Lista aktivnih alarma                                                   β”‚
β”‚  βœ… RazreΕ‘enje alarma (REΕ ENO / LAΕ½NI / OTKAZANO)                           β”‚
β”‚  βœ… PIN-bazirana autentifikacija                                            β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Šta NIJE uključeno

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  IZOSTAVLJENO IZ POC-a                                                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  ❌ ViΕ‘e Ε‘kola/grupa (samo jedna, hardcoded)                                β”‚
β”‚  ❌ SMS verifikacija (samo PIN)                                             β”‚
β”‚  ❌ Uloge korisnika (svi jednaki)                                           β”‚
β”‚  ❌ Sistem smena (svi dobijaju sve)                                         β”‚
β”‚  ❌ Eskalacija (nema timeout-a)                                             β”‚
β”‚  ❌ Admin panel (ručna administracija)                                      β”‚
β”‚  ❌ Statistike i izveΕ‘taji                                                  β”‚
β”‚  ❌ PWA offline podrΕ‘ka                                                     β”‚
β”‚  ❌ Korisnički profili                                                      β”‚
β”‚  ❌ Approval workflow                                                       β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Arhitektura

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         POC ARHITEKTURA                                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚     KORISNIK                                                                β”‚
β”‚         β”‚                                                                   β”‚
β”‚         β–Ό                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      POST /alarm       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”‚
β”‚  β”‚  WEB APP    β”‚ ──────────────────────►│   CONVEX    β”‚                     β”‚
β”‚  β”‚  (React)    │◄─────────────────────► β”‚  (Backend)  β”‚                     β”‚
β”‚  β”‚             β”‚      Real-time         β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜                     β”‚
β”‚  β”‚  β€’ Panic    β”‚      subscription             β”‚                            β”‚
β”‚  β”‚  β€’ Status   β”‚                               β”‚ HTTP                       β”‚
β”‚  β”‚  β€’ Preuzmi  β”‚                               β–Ό                            β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”‚
β”‚                                         β”‚  TELEGRAM   β”‚                     β”‚
β”‚                                         β”‚    GRUPA    β”‚                     β”‚
β”‚                                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β”‚
β”‚                                                                             β”‚
β”‚  AUTH: Jedan PIN za celu Ε‘kolu (hardcode ili env var)                       β”‚
β”‚  HOSTING: Vercel (free) + Convex (free)                                     β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Autentifikacija

Pristup sistemu

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  POC AUTENTIFIKACIJA                                                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  β€’ Jedan zajednički PIN za celu Ε‘kolu                                       β”‚
β”‚    Primer: "kovacic2025"                                                    β”‚
β”‚                                                                             β”‚
β”‚  β€’ PIN se deli:                                                             β”‚
β”‚    - Na roditeljskom sastanku                                               β”‚
β”‚    - Lično od admina grupe                                                  β”‚
β”‚    - Preko privatne poruke                                                  β”‚
β”‚                                                                             β”‚
β”‚  β€’ Čuvanje:                                                                 β”‚
β”‚    - PIN se čuva u localStorage                                             β”‚
β”‚    - Korisnik ne mora ponovo da ga unosi                                    β”‚
β”‚                                                                             β”‚
β”‚  β€’ Korisnik dodatno unosi:                                                  β”‚
│    - Ime (opciono, pamti se za sledeći put)                                 │
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Ograničenja i rizici

Rizik Mitigacija
Bilo ko sa PIN-om moΕΎe sve PIN se deli samo pouzdanim osobama
Nema verifikacije identiteta Za PoC je to prihvatljivo
PIN moΕΎe da "procuri" PIN se moΕΎe promeniti

Ograničenja PoC-a

Funkcionalna ograničenja

  1. Jedna Ε‘kola - Sistem je hardcoded za jednu Ε‘kolu
  2. Nema uloga - Svi korisnici imaju iste mogućnosti
  3. Nema smena - Svi dobijaju sve notifikacije
  4. Nema eskalacije - Ako niko ne reaguje, niΕ‘ta se ne deΕ‘ava
  5. Nema statistika - Podaci se ne analiziraju

Tehnička ograničenja

  1. Hardcoded Telegram CHAT_ID - Jedna grupa
  2. Nema offline podrΕ‘ke - Zahteva internet
  3. Osnovni error handling - Minimalan
  4. Nema audit log-a - Akcije se ne loguju

Bezbednosna ograničenja

  1. Zajednički PIN - Svi koriste isti
  2. Nema rate limiting-a - Moguća zloupotreba
  3. Nema bruteforce zaΕ‘tite - PIN se moΕΎe pogaΔ‘ati

Ε ta PoC NIJE

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  POC NIJE:                                                                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  βœ— Produkciono reΕ‘enje                                                      β”‚
β”‚  βœ— Skalabilna platforma                                                     β”‚
β”‚  βœ— Zamena za policiju                                                       β”‚
β”‚  βœ— Garancija bezbednosti                                                    β”‚
β”‚  βœ— Kompletna aplikacija                                                     β”‚
β”‚                                                                             β”‚
β”‚  PoC je DOKAZ KONCEPTA - testira da li osnovna ideja funkcioniΕ‘e            β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Ciljna grupa za PoC

  • 5-10 pouzdanih roditelja koji su voljni da testiraju
  • Roditelji koji razumeju da je ovo rana verzija
  • Tehnički pismene osobe koje mogu dati konstruktivan feedback

Kriterijumi uspeha

Kriterijum Mera
Alarm se uspeΕ‘no Ε‘alje βœ“/βœ—
Telegram prima notifikaciju βœ“/βœ—
Real-time update radi βœ“/βœ—
"Preuzimam" funkcioniΕ‘e βœ“/βœ—
Korisnici razumeju interfejs Feedback
Nema kritičnih bug-ova 0 blocker-a

Sledeći koraci nakon PoC-a

POC USPEΕ AN?
    β”‚
    β”œβ”€β”€ DA ──► Nastavak na MVP
    β”‚          β€’ SMS verifikacija
    β”‚          β€’ RESPONDER uloga
    β”‚          β€’ Smene
    β”‚          β€’ Eskalacija
    β”‚
    └── NE ──► Analiza i pivotiranje
               β€’ Ε ta nije radilo?
               β€’ Da li koncept ima smisla?
               β€’ Potrebne izmene

Vremenska procena

Aktivnost Vreme
Telegram bot setup 10 min
Convex backend 30 min
React frontend 45 min
Deploy 15 min
Testiranje 20 min
UKUPNO ~2 sata

Dokument kreiran: Januar 2026