Zadanie zhrnutie
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
- 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úť.
- 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