Giter Site home page Giter Site logo

pub-quiz's Introduction

pub-quiz

Web aplikacija za organizovanje pub kvizova

Autor: Miloš Popović SW-24-2018

Opis aplikacije

Glavna funkcionalnost aplikacije je organizovanje kvizova. Kviz može biti privatni (igrači pristupaju preko linka koji dobijaju od organizatora) ili javni (igrači se prijavljuju na neki od dostupnih kvizova) Vreme početka javnih kvizova može biti zakazano u budućnosti.

Igrači pristupaju sobi kviza i dobijaju sinhronizovano pitanja na koja odgovaraju u vremenskom intervalu. Uloge u jednoj partiji kviza čine:

  • Organizator koji kontroliše tok igre
  • Igrači koji daju odgovore u predviđenom obliku (Radio button, check box, input polje...)
  • Nadgledači, koristi se za projektorski prikaz pitanja, tabele rezultata i ostalih javnih informacija tokom igre. (Predviđeno za prikaz na projektoru ili TV-u)

Funkcionalni zahtevi

U celokupnoj aplikaciji postoji

  • Moderator
    Dodaje pitanja u bazu pitanja za kvizove (po kategorijama, težini)
    Uvid u poršle buduće i trenutne igre (Filtriranje i Sortiranje)
    Pregled određenog kviza - Lista pitanja, rezultati
    Odobrava, menja i briše turnire

  • Neautentifikovani korisnici
    Registracija, unosi se Ime, Prezime, e-mail
    Ulazak u sobu privatnog kviza
    Kreiranje privatnog turnira
    Pregled javnih kvizova

  • Registrovani korisnici
    Sve funkcije neautentifikovanog korisnika
    Izmena profila
    Organizovanje javnog kviza
    Ulazak u igru za javni kviz Prijava/odjava za učestovanje na turniru

Scenario

Kreiranje privatnog kviza

Korisnik bira opciju da napravi privatni kviz. Popunjava formu sa pitanjima (može da bira predefinisana iz baze) i pravilima igre. Kada potvrdi izmene dobija KOD i link za pristup. Ima pregled ko je sve pristupio i može da ih izbaci iz sobe.
Korisnici ulaze u "sobu" kviza preko linka ili unosom koda sobe u aplikaciji, inače se privatni kviz nigde ne vidi. Zamišljen je za privatnu organizaciju. Korisnik može da izabere da bude posmatrač, samo će videti pitanja bez mogućnosti da učestvuje. Ova opcija se koristi za prikaz pitanja na projektoru

Kreiranje javnog kviza

Korisnik bira opciju za javni kviz. Bira vreme, naziv, opis, popunjava formu sa pitanjima i pravilima igre. Turnir se šalje na odobravanje administratoru, ako odobri postaje vidljiv u aplikaciji za sve korisnike i imaju opciju da se prijave. Igrači se mogu prijaviti i kao posmatrači

Tok igre

Kada se kviz započne, igra se odvija u ciklusima od nekoliko koraka za svako pitanje:

  1. Pauza pred pitanje
  2. Ispis pitanja
  3. Ispis ponuđenih odgovora ako postoje
  4. Početak vremena za odgovor
  5. Prikaz tačnog odgovora
  6. Opciono presek sa statistikom

Prelaz u sledeću fazu kontroliše organizator (u realnom vremenu) [Ispis pitanja -> Ispis odgovora -> Početak vremena -> Prikaz tačnog odgovora... ]

Na kraju kviza moguće je pregledati izveštaje ko je dao najviše tačnih, netačnih odgovora, ko je bio najbrži...

Timovi

Pravljenje timova

Registrovani korisnik može da napravi tim, i pozove ljude u njega preko usernamea Vlasnik tima je onaj koji je napravio tim, ima pregled članova tima, može da izbaci članove tima

Timski kviz

U podešavanju kviza se podešava da se igra u timovima od 2,3 ili 4
Igrači unutar istog tima odgovaraju na način da onaj ko prvi unese odgovor taj odgovor se uzima kao konačan

Turniri

Moderatori mogu organizovati turnire koji se sastoje od nekoliko uvezanih kvizova, pobednici su automatski whitelistovani za naredni turnir

Izveštaji

Tokom igre čuvaju se informacije o svim odgovorima svakog igrača i rezultatima. Na osnovu tih informacija generišu se sledeći izveštaji

Za jedan kviz

  • Izveštaj po bodovima
  • Najbrži igrači (Prvi dali odgovor)
  • Najbrži pouzdani igrači (Prvi dali tačan odgovor)
  • Odnos tačnih i netačnih odgovora (preciznost)

Turnir

  • Isti izveštaji kao i za pojedinačan kviz samo zbirno gledano
  • Izveštaj sa prosečnim bodovima u svim kvizovima

Globalno

  • Isti izveštaji kao za turnir, samo se gledaju svi kvizovi

Proširenja za diplomski

  • Dokerizacija i Deploy aplikacije
  • Skaliranje aplikacije
  • Uvođenje timova (Više igrača može daje odgovore za isti tim - realtime)

Arhitektura

Korisnički servis - Go Servis za kreiranje kvizova - Go Servis za vođenje kviza (slanje odgovora, soketi) - Go Servis za izveštaje kviza - Rust Web aplikacija - React

Baza Podaci se čuvaju u PostgreSQL bazi, Logovi će se smeštati u NoSQL bazu (MongnoDB)

pub-quiz's People

Contributors

milospp avatar

Stargazers

 avatar

Watchers

 avatar

pub-quiz's Issues

Potrebno srediti specifikaciju

Dobar dan, kolega @milospp ,

Zamolio bih Vas da sredite specifikaciju. Pre svega odradite formatiranje, kako bi se tekst mogao lakše pročitati.

Imam nekoliko nejasnoća koje bih ovom prilikom izložio:

  • Naveli ste postojanje timova u sekciji "Opis aplikacije", ali ne vidim da se timovi igde više pominju.
  • Naveli ste da kviz čine: Organizator, Igrači i nadgledači. Ne vidim da ste kasnije pomenuli nadgledače.
  • Naveli ste da administrator odobrava turnire, ali to ne vidim da je napisano u scenariju.
  • Ko vidi privatan turnir koji organizuje neautentifikovani korisnik? Da li administrator treba da ga odobri
  • Koja je prednost da proizvoljan registrovani korisnik pravi kviz u odnosnu na uvođenje posebne role u sistemu koja bi bila zadužena za tako nešto.

Takođe, zanima me da li planirate da radite i diplomski iz ovog predmeta? Ukoliko je odgovor potvrdan, onda bi bilo dobro uvesti i timove. U tom slučaju bi se korisnici mogli prijaviti u timove. Timovi bi se registrovali za lige koje bi trajale određeni vremenski period i trebalo bi obezbediti statistiku za timove (tabele i slično).

Zamolio bih Vas da sredite specifikaciju, pa me pingujete da je ponovo pregledam.

Pozdrav,
Vladimir

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.