Skip to content
This repository has been archived by the owner on Oct 25, 2021. It is now read-only.

Documentation

Papp Kristóf Szabolcs edited this page Nov 23, 2020 · 18 revisions

A rendszer felépítése és felhasznált technológiák

A rendszer kliens-szerver architektúrát követ. A kliens biztonságos HTTPS kapcsolaton keresztül kommunikál a szerverrel, amely a kérésekre json formátumú üzenetekkel válaszol. A szerver oldal a felhasználók adatait és a CAFF fájlokhoz tartozó meta információkat (pl.: a feltöltő azonosítója, a kommentek listája, stb.) relációs adatbázisban tárolja. Az Entity Framework ORM keretrendszernek köszönhetően az alkalmazás több adatbázismotorral is kompatibilis, a konkrét technológia konfiguráció segítségével adható meg. A tényleges CAFF fájlok fájlrendszerben tárolódnak. A szerver egy REST API-t nyújt a funkcióinak elérésére, melynek megvalósításához az ASP.Net Core technológiát választottuk. Ezen keresztül van lehetőség a felhasználók kezelésére, a bejelentkezésre és a CAFF fájlok kezelésére valamint kommentek létrehozására is. A kliens oldal megvalósításához egy Android alkalmazást választottunk.

Az Androidos kliens felépítése

Az Android alkalmazás elkészítéséhez a Google által fejlesztett és támogatott Kotlin nyelvet választottuk, mivel lényegesen nagyobb kifejezőerővel bír és gyorsabb fejlesztést tesz lehetővé, mint a korábbi alternatíva, a Java. Az alkalmazás alapvető felépítése az MVVM mintát követi. A View mappában található a nézetek létrehozásáért felelős kód. Az alkalmazás egy activity-t tartalmaz, a különböző funkciók különböző fregmenseken érhetők el. A felhasználói interakciókat a ViewModel osztályok látják el, valamint a szerverről érkező adatok tárolása is itt történik meg. A VM osztályok** Service**-eket használnak fel a hálózati adatok küldéséhez. A REST alapú kommunikációt a Retrofit könyvtár felhasználásával oldottuk meg. A Model osztályok tartalmazzák az hálózaton átküldött és json-be sorosított adatok Kotlin reprezentációját. Ezeket data class formájában implementáltuk.

Az Androidos kliens biztonsága

Az alkalmazás funkciói csak regisztráció és bejelentkezés után érhetőek el. A regisztráció során a rendszer ellenőrzi, hogy a felhasználónév nem foglalt-e, illetve a jelszó megfelel-e a policy.-nak. Utóbbinak az ellenőrzése kliens és szerver oldalon egyaránt megtörténik. Sikeres bejelentkezés során a kliens válaszként egy JWT tokent kap, melyet eltárol és későbbi kérések során header paraméterként mindig felküld a szerverre. A szerver ennek segítségével hitelesíti a felhasználót, illetve a token a felhasználó jogusultsági szintjét is tartalmazza.

Clone this wiki locally