Hodnotenie

Funkčná časť:
  • Registrácia, prihlásenie, obnovenie zabudnutého hesla, zmena hesla (Fragment, DataBinding, SharedPreferences, ViewModel, LiveData)
  • Skrolovateľný zoznam s prepojením na profil používateľa po kliknutí (využitie RecyclerView, Retrofit, ViewModel, Room, LiveData, Coroutines, Repository vzor, AuthInterceptor, TokenAuthenticator)
  • Mapa s ikonami používateľov v kruhu, ktorý predstavuje môj geofence s prepojením na profil používateľa po kliknutí (využitie mapy, Retrofit, ViewModel, Room, LiveData, Coroutines, Repository vzor) /v tejto mape sa nezobrazuje kruh podľa mojej aktuálnej polohy alebo podľa odpovede zo serveru, používateľov umiestnite vo vnútri kružnice na náhodné miesta/
  • Vlastný profil, manuálne a automatické zapnutie zdieľania polohy, vytváranie Geofence okruhov pri opustení okruhu, zobrazenie môjho posledného kruhu (využitie BroadcastReceiver, Intent, Geofence, FusedLocationProvider, SharedPreferences)
  • Pravidelné kontrolovanie používateľov vo svojom okolí na pozadí aspoň v hodinových intervaloch a pri opustení kruhu. Zobrazenie notifikácií o zmene používateľov /koľko je okolo, pribudlo, ubudlo/ (Worker, Notification, Retrofit, Room, Coroutines, Repository vzor, Intent)
  • Nahratie profilovej fotky, odstránenie profilovej fotky
  • Využitie DataBinding a Navigation knižnice pre presun medzi fragmentmi. Celkovo 1 aktivita a viac fragmentov.
  • Zobrazenie profilu iného používateľa - meno, fotka a posledný okruh, v ktorom bol so mnou

UI a UX časť:
  • Dizajn, ktorý je prívetivý a hodí sa do aplikácie bez rušivých elementov. Kvalitné UX, aplikácia nemrzne, funguje plynule, klikacie polohy sú dostatočne veľké, a používateľ vie od začiatku intuitívne používať aplikáciu. - 0.7 - 1.0
  • Dizajn, ktorý je prívetivý a hodí sa do aplikácie bez rušivých elementov. Nevenovaná pozornosť UX, aplikácia mrzne/seká, nefunguje plynule, klikacie polohy sú malé, a používateľ je už od začiatku stratený v aplikácii (nefunguje, nevie, ako má niečo urobiť,...). - 0.5 - 0.7
  • Dizajn je neprívetivý a nevhodný s rušivými elementmi (prevažne ponechané predvolené veľkosti a farby elementov a chaotické umiestnenie prvkov). Kvalitné UX, aplikácia nezmrza, funguje plynule, klikacie polohy sú dostatočne veľké, a používateľ vie od začiatku intuitívne používať aplikáciu. - 0.5 - 0.7
  • Dizajn je neprívetivý a nevhodný s rušivými elementmi (prevažne ponechané predvolené veľkosti a farby elementov a chaotické umiestnenie prvkov). Nevenovaná pozornosť UX, aplikácia mrzne/seká, nefunguje plynule, klikacie polohy sú malé, a používateľ je už od začiatku stratený v aplikácii (nefunguje, nevie, ako má niečo urobiť,...). - 0.3 - 0.5


Výsledný počet bodov z vyššie uvedených bodov sa získa nasledovne:
Celkový počet bodov = (UI a UX časť) * (Funkčná časť)

Úlohy

Aplikácia musí pred prihlásením obsahovať:
  • Obrazovku s registráciou a možnosťou prihlásenia
  • Obrazovku s prihlásením, možnosťou registrácie/zabudnutého hesla (
  • Obrazovku s obnovením zabudnutého hesla
Aplikácia musí po prihlásení obsahovať:
  • Obrazovku s vlastným profilom - Meno, fotka, zapnutie/vypnutie zaznamenávania okruhu manuálne, zapnutie/vypnutie zaznamenávania okruhu podľa časového intervalu, aktuálny okruh zobrazený na mape
  • Obrazovku iného profilu - Meno, fotka, okruh zobrazený na mape v ktorom bol videni naposledy spolu s datumom kedy ho tam bolo vidno naposledy
  • Obrazovku s nahratím/odstránením profilovej fotky
  • Obrazovku so zmenou hesla, ak používateľ vie aktuálne heslo
  • Obrazovku s mapou, na ktorej sa zobrazí marker (ako profilová fotka ak je nastavená) a okolo nej môj okruh. Následne zobrazí aj všetkých ostatných používateľov pomocou markerov (s fotkami) v mojom okruhu. Kde marker je na nahodnej pozícii v mojom okruhu. Po kliknutí na marker sa zobrazí profil používateľa. Ak mám vypnuté zaznamenávanie, tak sa nezobrazí mapa ale upozornenie, že mám vypnuté zaznamenávanie a možnosť ho zapnúť.
  • Obrazovku so skrolovateľným zoznamom všetkých ostatných používateľov v mojom okruhu, v ktorom bude meno a profilová fotka. Po kliknutí na riadok sa zobrazí profil používateľa. Ak mám vypnuté zaznamenávanie, tak sa nezobrazí zoznam ale upozornenie, že mám vypnuté zaznamenávanie a možnosť ho zapnúť.
Aplikácia musí:
  • používať Geofencing - vytvoriť okolo aktuálnej polohy okruh s definovaným polomerom, pri jeho opustení vytvoriť nový okruh s aktuálnou polohou.
  • automaticky pravidelne načítavať zo serveru ľudí v okolí, a zobrazovať notifikáciu o aktuálnych a nových ľuďoch v okolí
  • umožniť zapínať/vypínať zaznamenávanie podľa stanoveného časového intervalu (napr. od 10:00 do 17:00)
  • Používať lokálnu databázu SQL Lite
  • Používať Fragmenty, Navigation knižnicu, Intenty, PendingIntenty, ViewModel, LiveData, Picasso/Glide na zobrazenie obrázkov, Google Maps / MapBox, Repository vzor podľa prednášok, Retrofit na komunikáciu s Rest API