# Projekat 1 - Kviz aplikacija za predmet Programiranje I >Prirodno-matematički fakultet >Odsjek za matematiku >Razvoj mobilnih aplikacija ## Logistika * Projekat nosi 30 bodova * Rok za predaju projekta je 10. 5. 2020. * Prezentacije projekata će se održati 12. 5. 2020. * Projekti se rade u parovima koje studenti sami oforme * Projekat se ocjenjuje na osnovu kvaliteta samog projekta, dokumentacije i usmene odbrane * Ocjene su individualne za svakog studenta na projektu * Dokumentacija sadrži opis rada aplikacije sa slikama, opis arhitekture aplikacije, opis funkcionalnosti pojedinačnih klasa, kao i opis opštih koncepata Android frameworka (npr. aktivnost, fragment, lifecycle i sl.) * Dokuementacija ne sadži kod (osim eventualno potpisa klase ili metode) * Dokumentacija sadrži minimalno 2500 riječi * Plagijarizam će biti ocijenjen sa 0 bodova bez mogućnosti ispravke ovih bodova * Dokumentacija se piše u Markdownu (ekstenzija .md) * Predaje se dokumentacija sa Android projektom (izvorni kod i resursi, bez generisanih foldera i fajlova) ## Opis aplikacije Za potrebe projekta potrebno je napraviti Android kviz aplikaciju. Iako kviz aplikacija može biti vrlo generalna u zavisnosti od pitanja koja se postavljaju, u ovom projektu kviz će biti usko specijaliziran i namijenjen studentima predmeta Programiranje I. Kviz će sadržavati pitanja različitog tipa i težine. Tipovi su: pitanja sa višestrukim odgovorom (jedan tačan ili više tačnih) i unos odgovora (nekoliko riječi). Pitanja su kategorisana u tri nivoa težine. U ovom projektu pitanja se ne čuvaju u bazi (bonus bodovi ukoliko implementirate bazu i znate objasniti kako funkcioniše) već u nekoj strukturi u RAM-u. Prije početka kviza korisnik bira težinu kviza (jednu od tri težine) i broj pitanja. Težina kviza određuje distribuciju težine pitanja. Npr. najlakša težina može imati 50% pitanja iz kategorije lakih pitanja, 25% iz kateogrije srednjih pitanja i 25% posto iz kategorije teških. Sami procenti distribucije nisu važni, ali trebaju biti smisleni. Prilikom odgovaranja na pitanje korisnik ima mogućnost na “džoker” pitaj prijatelja, koji može ostvariti tako što će uputiti poziv prijatelju ili poslati poruku sa sadržajem pitanja i ponuđenim odgovorima odnosno bez odgovora ukoliko je takav tip pitanja. Ovaj “džoker” može iskoristiti samo jednom tokom kviza. Po okončanju kviza korisniku se prikazuje broj tačnih odgovora sa adekvatnom porukom (npr. čestitamo odgovorili ste na sva pitanja) i informacija o tome da li je koristio džoker. Također mu se nudi opcija ponovnog igranja kivza, kao i mogućnost dijeljenja rezultata putem “share” menija. Aplikacija sadrži i bočni meni čiji sadržaj možete sami osmisliti. Npr. može voditi na tekstove o temama koje se obrađuju u kvizu ili na korisne linkove i sl. Aplikaciju je potrebno lokalizovati na engleski, i jedan od službenih jezika BiH: bosanski, hrvatski ili srpski. ## Dodatne napomene * Aplikacija se piše u programskom jeziku Kotlin. * Prilikom izrade aplikacije obavezno koristiti Fragmente kao i ostale dobre prakse za razvoj Android aplikacija. * Potrebno je kreirati dva layout-a za horizontalno i vertikalno orijentisan ekran * Voditi računa da ne dođe do gubljenja podataka prilikom rotacije ekrana. * Kada je odgovor otvorenog tipa onda je potrebno da se može ponuditi više alternativa odgovora i ne treba obraćati pažnju na velika i mala slova. * Pitanja se mogu postaviti na specifičan način gdje se korisnik pita šta ispisuje određeni kod ili da navede greške u prikazanom kodu (tipovi pitanja su i dalje kao što je prethodno navedeno). U ovom slučaju kod je potrebno prikazati na poseban način, tako da se vizuelno istakne da se radi o kodu.