Zadanie
Vytvorte jednoduchu socialnu siet s moznostou pridavania multimedialnych prispevkov ( obrazok, video ). Semestralne zadanie budete vypracovavat vo stvorici. Odovdzat je ho potrebne pred 11. cvicenim. Na 11. a 12. cviceni ho budete potom prezentovat.
ZADANIE JE POTREBNE ODOVZDAT DO 12. cvičenia (9.12. 6:00).
Zdrojovy kod odovzdat do miesta odovzdania v AIS. A nasledne na 12. cviceni mat pripraveny kod v pocitaci a tiez nainstalovanu aplikaciu na mobile na demostraciu funkcionality.
Pokyny k odovzdaniu
DO AIS odovzdavaju VSETCI studenti. Odovzdavate cely projekt v .zip archive, okrem suborov/priecinkov uvedenych v nasledovnych .gitignore suboroch.
V hlavnom priecinku projektu (kde sa nachadza priecinok app) je potrebne vynechat nasledovne subory podla tohto .gitignore listu.
*.iml .gradle /local.properties /.idea .DS_Store /build /captures .externalNativeBuild local.properties *.apk *.abb /app/debug /app/release
Vo vnutri priecinku app je potrebne vynechat subory, uvedene podla tohto .gitignore listu.
/build
Vsetky ostatne subory/priecinky v projekte odovzdavate v .zip subore. Ak sa vam zmesti tak do ZIP suboru pridate aj instalacny .apk subor vasej aplikacie.
UPOZORNENIE: Z odovzdanych suborov v .zip subore musi byt mozne uspesne zostavit project (buildnut), pomocou New -> Import project (Gradle). Ak build bude neuspesny, tak aplikacia nesplna poziadavky na hodnotenie, a je hodnotena nulovym (0) poctom bodov.
UPOZORNENIE !!! Ak počas odovzdávania zadania, študent nebude vedieť zdieľať obrazovku alebo nebude mať funkčný mikrofón (nebudem ho počuť) alebo nebude mať funkčnú webkameru (nebudem ho vidieť). Študent automaticky nedostáva zápočet bez ohľadu na odovzdaný projekt do AIS, keďže nebolo možné overenie vedomostí študenta, ktoré je nevyhnutné na získanie bodov do zápočtu.
Hodnotenie
- Prihlasenie, odhlasenie, registracia - po 1 bode spolu 3 body
- Firebase Crashlytics - ukazka aj Firebase konzoly - 2 body
- Pouzivanie lokalnej databazy, Viewmodel, repozitory - 5 bodov
- Nahratie Videa (novy prispevok) - 5 bodov
- Upload Videa (novy prispevok) - 5 bodov
- Zobrazenie profilu - 2 body
- Vyber a upload fotky (zmena profilovej fotky) - 3 + 3 bodov
- Skrolovanie prispevkov - 5 body (+ 2 bonus body ak sa po uploade novy prispevok zobrazi na zaciatku)
- Prehravanie videa ( prehranie, plynulost, prisposobenie velkosti obrazovky ) - 5 b
- Zobrazovanie profilovej fotky ( zobrazenie, zaokruhlenie, bez deformacie ) - 2 b
- Celkovy dojem dizajnu, plynulost aplikacie, funkcnost ovladania, odozva na akcie - 10 bodov
Spolu max 50 Bodov ( min. 25 bodov na zapocet )
Prispevok
Prispevok musi obsahovat video na celu obrazovku a vlavo dole pouzivatelska fotka, meno a pod tym datum uverejnenia prispevku.
Profil
Profil musi obsahovat pouzivatelske meno, email, fotku. Po kliknuti na fotku je mozne zmenit profilovu fotku. Zmenu hesla a odhlasenie.
Kamera
Aplikacia musi umoznovat vo vnutri nahravanie FULLHD video vo formate .mp4 (H264). Mozete pouzit lubovolnu kniznicu. Avsak ak sa nahra ine video, tak nahravanie nebude uznane.
RecyclerView
Na swipovania medzi prispevkami je potrebne pouzit RecyclerView
Prihlasenie/ Registracia / Zmena hesla / Zmena fotky
Na prihlasovanie je povinne pouzit uvedene rest api. (bude coskoro)
Firebase Crashlytics
Na zaznamenavanie chyb v aplikacii je povinne pouzit Firebase Crashlytics
Povinne automaticke zaznamenavanie vzniknutych chyb pocas behu aplikacie.
Videa a fotky - Upload
Na upload videi (len .mp4) a obrazkov (len jpg, jpeg, png) do velkosti 8MB je povinne pouzivat nasledovny servis.
### Registracia POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "register", "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "email": "john@doe.com", "username": "john", "password": "oV3aK9iB5" } ### Info POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "userProfile", "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "token": "776ea8822224691aa4f37c20b789715d" } ### Login POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "login", "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "username": "john", "password": "oV3aK9iB5" } ### Refresh token !! zmena tokenu POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "refreshToken", "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "refreshToken": "019fd7ad99bcafbf155723114514e412" } ### Zmena hesla , !! zmena tokenu POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "password", "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "token": "ad095d2e5dad6ae16087deb3c64bff60", "oldpassword": "95d2e5dad", "newpassword": "H3oV3aK9iB" } ### Pridat profilovku POST http://api.mcomputing.eu/mobv/upload.php Content-Type: multipart/form-data; boundary=boundary --boundary Content-Disposition: form-data; name="image"; filename="image.jpg" Content-Type: image/jpeg < C:\laragon\www\api\profile.png --boundary Content-Disposition: form-data; name="data" Content-Type: application/json { "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "token": "2a5d3d882db5ba522f480047d1782933" } ### Odstanit profilovku POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "clearPhoto", "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "token": "2a5d3d882db5ba522f480047d1782933" } ### Prispevky POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "posts", "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "token": "23dc378945cecf28097ef131045f305e" } ### Pridat prispevok POST http://api.mcomputing.eu/mobv/post.php Content-Type: multipart/form-data; boundary=boundary --boundary Content-Disposition: form-data; name="video"; filename="video.mp4" Content-Type: video/mp4 < C:\laragon\www\api\video2.mp4 --boundary Content-Disposition: form-data; name="data" Content-Type: application/json { "apikey": "bX8eF8uH3oV3aK9iB5xG0lX6eY5rT4", "token": "2a5d3d882db5ba522f480047d1782933" } ### Existuje username GET http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "exists", "apikey": "", "username": "user" } ### Vymazat prispevok, podla id prispevku. Prispevok moze vymazat len jeho autor. POST http://api.mcomputing.eu/mobv/service.php Accept: application/json Cache-Control: no-cache Content-Type: application/json { "action": "deletePost", "apikey": "", "token": "", "id": 1 }
Nasledne cesta k videu ci fotke je : http://api.mcomputing.eu/mobv/uploads/
V pripade, ze token uz nie je platny vrati sa vam odpoved 401 so spravou Token invalid . V pripade ze ste uviedli zly Api key tak sa vam vrati odpoved 401 Api invalid . V ostatnych pripadoch je to 400 / 404 / 500 .
Zobrazovanie obrazkov
Na zobrazovanie obrazkov odporucam pouzivat: