PlentyGO: Programajánló szoftverrendszer színházak számára
|
|
- Emil Barna
- 6 évvel ezelőtt
- Látták:
Átírás
1 XX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, május PlentyGO: Programajánló szoftverrendszer színházak számára Szerzők: Bege István Babeş-Bolyai Tudományegyetem, Kolozsvár, Matematika és Informatika Kar, informatika szak, III. év Tóth Melinda Babeş-Bolyai Tudományegyetem, Kolozsvár, Matematika és Informatika Kar, informatika szak, III. év Témavezetők: dr. Simon Károly, egyetemi adjunktus, Babeş-Bolyai Tudományegyetem, Kolozsvár, Matematika és Informatika Kar, Magyar Matematika és Informatika Intézet Kintzel Levente, szoftverfejlesztő, Codespring Szilágyi Zoltán, szoftverfejlesztő, Codespring
2 Kivonat Egyre nagyobb az igény olyan alkalmazásokra, amelyek különböző programokat, rendezvényeket képesek egy helyen kezelni. Ilyen rendezvények lehetnek például a fesztiválok, sportesemények vagy színházi előadások. A legtöbb színház rendelkezik saját weboldallal, ahol közzéteszi aktuális előadásait, illetve az ezekkel kapcsolatos információkat, híreket. Ezek a weboldalak felépítésileg különböznek, ezért előfordul, hogy a felhasználó számára nehézséget okoz a megfelelő információ megtalálása. Erre a problémára kínál megoldást a PlentyGO szoftverrendszer, amely lehetővé teszi a színházak előadásainak böngészését egy egységes felületen. A dolgozat ezt a szoftverrendszert mutatja be, amely két kliens alkalmazásból és egy központi szerverből áll. A felhasználók az Android kliensalkalmazásban tudják böngészni mindazon színházak előadásait, amelyek előzőleg feltöltötték repertoárjukat a webes felhasználói felületen keresztül.
3 Tartalomjegyzék 1. Bevezető 1 2. A PlentyGO projekt Funkcionalitások Az Android kliens funkcionalitásai A webes felület funkcionalitásai A szerver funkcionalitásai A rendszer felépítése Architektúra Szerver oldali technológiák - Spring keretrendszer Spring Boot és konfiguráció Spring Data JPA Spring MVC Rest Spring Security OAuth Liquibase Kliens oldali technológiák Web kliens - AngularJS TypeScript A less stílus pre-processzor Mobil kliens - Android Retrofit OrmLite Picasso Eszközök és módszerek Megvalósítások fontosabb részletei Szerveroldali megvalósítások Adatmodell Tartalom nemzetköziesítése Szociális hálók integrációja Az adminisztrációs felület megvalósítása Kommunikáció a szerverrel
4 Nemzetköziesítés Autentikáció Az Android kliensalkalmazás megvalósítása Adatmodell Az adathozzáférési réteg Felhasználói felület Kommunikáció a szerverrel Autentikáció Szinkronizáció és nyelvkiválasztás A PlentyGO működése A webes felhasználói felület használata Az Android kliens alkalmazás használata Következtetés Továbbfejlesztési lehetőségek 28
5 1. fejezet Bevezető A PlentyGO szoftverrendszer színházak digitális programfüzeteként használható. Mivel régiónkban nem létezik hasonló alkalmazás, ez a szoftver egy új lehetőséget ad a színházaknak programjaik közzétételére. Továbbá nagyon jó reklámlehetőséget biztosít előadásaik népszerűsítésére. A rendszernek fontos jellemzője a többnyelvű adatok kezelése, ugyanis a webes felhasználói felületen a színházak adminisztrátorai több nyelven meg tudják adni a szükséges információkat. Az itt megadott adatok lesznek megjelenítve a mobil alkalmazásban, de a felhasználó már a készüléken beállított nyelven láthatja ezeket ábra. Az előadáslistából kiválasztott színdarab részletes leírása, és Google Maps segítségével történő navigálás a helyszínre a PlentyGO alkalmazáson belül. Tekintsünk egy konkrét példát az alkalmazás felhasználhatóságát illetően. Kirándulni indulunk egy másik városba, és indulás előtt úgy döntünk, hogy megnéznénk egy előadást a város egy jó nevű színházában. A szóban forgó színház már előzőleg feltöltötte előadásait a Plenty- GO rendszerébe. Ahelyett, hogy nekilátnánk kikeresni az interneten a színház weboldalát, majd ott tovább keresgélnénk a nekünk megfelelő dátumon játszott előadások, valamint a színház 1
6 1. FEJEZET: BEVEZETŐ pontos helyszíne után, egyszerűen csak használjuk a PlentyGO mobil alkalmazást. Az alkalmazáson belül nagyon egyszerűen leszűrhetjük a megjelenített programokat színház, város, illetve dátum szerint és máris böngészhetjük a vonatkozó információkat. Az előadásokról részletes leírást kapunk, és ha kiválasztottunk egy előadást, a Vigyél oda gombra kattintva Google Maps segítségével elnavigálhatunk az előadás helyszínére ( lásd 1.1 ábra). A felhasználóknak lehetőségük van kedvencnek jelölni előadásokat és intézményeket, hogy később a legkedveltebbeket könnyebben megtalálhassák. A grafikus felület felhasználóbarát, az általánosan elfogadott tervezési alapelveket követi, így a felhasználók könnyen használhatják az alkalmazást ábra. A PlentyGO webes felületén megjelenő színházak listája. A PlentyGO szoftver rendelkezik egy adminisztrációs webes felülettel (1.2 ábra), amelynek segítségével a színházak megbízottjai kezelni tudják saját programjaikat. Új előadásokat tudnak felvinni a rendszerbe, megadhatják azok kezdési időpontjait, Google Maps segítségével meg tudják adni intézményük pontos helyszínét. A dolgozat szerzői a Codespring Mentorprogram keretein belül sajátították el a megfelelő technológiai ismereteket. A projekt fejlesztése szintén a Codespring szakmai gyakorlatán belül indult, Kintzel Levente és Szilágyi Zoltán szoftverfejlesztők szakmai segítségével. A fejlesztőcsapat az egyetemi csoportos projekt tantárgy keretében új tagokkal bővült. Bors Ödön, Székely Réka és Tamás Dorottya segítették a fejlesztést egy egyetemi féléven keresztül. A dolgozat a szoftverrendszer felépítését, működését, megvalósításának körülményeit és a felhasznált technológiákat fogja tárgyalni. Az első fejezetében szó lesz az alkalmazás fontosabb funkcionalitásairól, illetve a rendszer architekturájával kapcsolatos döntésekről. A máso- 2
7 1. FEJEZET: BEVEZETŐ dik, harmadik és negyedik fejezet bemutatja a szerver és a két kliens alkalmazás fejlesztéséhez felhasznált technológiákat. Az ötödik fejezet ismerteti az olvasóval a funkcionalitások megvalósításának fontosabb részleteit. A hatodik fejezet néhány példán keresztül szemlélteti a rendszer működését. Végül a dolgozat a következtetések levonásával és néhány továbbfejlesztési lehetőség felsorolásával zárul. A PlentyGO csapat külön meg szeretné köszönni szakmai irányítóinak odaadó segítségét, amivel hozzájárultak a projekt létrejöttéhez. 3
8 2. fejezet A PlentyGO projekt A PlentyGO szoftver egy digitális programfüzetként használható, ahol a felhasználók egy mobil alkalmazáson belül tudják böngészni különböző színházak programkínálatát. A rendszerbe felvitt adatokat a színházak megbízottjai szerkeszthetik egy webes felületen keresztül. A rendszer egy alkalmazásszerverből, egy webes adminisztrációs felületből és egy telefonos alkalmazásból tevődik össze Funkcionalitások A rendszer legfontosabb funkcionalitása különböző színházak programjának egységes kezelése. Így a felhasználók könnyen megtalálhatják az igényeiknek megfelelő színdarabot, nem szükséges a színházak weboldalait tanulmányozni a megfelelő információ megtalálásához. Az alkalmazás többnyelvűségének köszönhetően a felhasználók az általuk beállított nyelven olvashatnak különböző intézményekről, illetve ezek előadásairól Az Android kliens funkcionalitásai A színházak programjainak a böngészése az Android alkalmazáson belül történik, első indításkor a telefonon beállított nyelven. Egy nyelvbeállítás menü alatt a felhasználónak lehetősége van megváltoztatni a tartalom nyelvét. Az alkalmazásba való belépés előtt a felhasználó bejelentkezése szükséges. Ezt megtehetjük Google vagy Facebook felhasználóval, illetve adatkapcsolat hiánya esetén vendég felhasználóként. Bejelentkezés után a felhasználó egy bal oldali menüben tudja megtekinteni adatlapját, többek között a profilképét is. Az alkalmazás fő nézete egy színházlistát és a színdarabok egy idővonalszerű listáját tartalmazza. Innen el lehet jutni az intézmények és előadások adatlapjára, ahol részletes információkhoz tudunk férünk hozzá. 4
9 2. FEJEZET: A PLENTYGO PROJEKT Alkalmanként előfordul, hogy nehézkes megtalálni egy intézményt, főleg ha ez egy idegen városban van. Az alkalmazás segítségével könnyen el lehet navigálni a kiválasztott előadás helyszínére, Google Maps segítségével. Mivel egy felhasználónak fontos szempont, hogy minél hamarabb kiválaszthassa a számára megfelelő előadást, ezért a színdarabokat lehet szűrni város, dátum és intézmény szerint. Ha egy korábbi böngészés során az előadás kedvencként volt megjelölve, akkor később ez elérhető lesz a kedvencek listájában. A rendszer biztosítja a böngészési lehetőséget adatkapcsolat hiányában is, ilyen esetben a felhasználó az előzőleg letöltött adatokat tudja megtekinteni A webes felület funkcionalitásai A webes felületre a rendszergazdák és a színházak megbízottjai tudnak bejelentkezni, ahol minden felhasználó a jogosultságának megfelelő információkhoz tud hozzáférni. A rendszergazdák szerepe új felhasználó felvitele a rendszerbe és ezek hozzárendelése különböző intézményekhez. Ők minden információt el tudnak érni a webes felületről. A színház adminisztrátorok a saját intézményük információit több nyelven látják és kezelik. Új előadást tudnak felvinni a rendszerbe, ahol különböző adatokat lehet megadni, többek között a színdarab leírását, műfaját, szereplőit, rendezőjét, valamint borítóképpel láthatják el intézményüket és azok színdarabjait. Később ezeket az adatokat módosíthatják. Fontos funkcionalitás, hogy mind a színházak, mind az előadások esetében külön lehetőség van beállítani a támogatott nyelveket. Így csak azokon a nyelveken szükséges megadni az információkat, amelyet a színház támogatni szeretne. Továbbá lehetőségük van Google Maps segítségével megadni a színházuk pontos helyszínét. A darabok felvitele után külön meg lehet adni az előadások időpontjait A szerver funkcionalitásai A szerver a webes és az Android kliens alkalmazást szolgálja ki adatokkal, amelyek egy relációs adatbázisban vannak tárolva. Ezen keresztül történik az információk létrehozása, lekérése, módosítása és törlése. Ugyanakkor az autentikációért és az API biztonságosabbá tételéért is a szerver felelős, hogy az adathozzáférés is biztonságos legyen. 5
10 2. FEJEZET: A PLENTYGO PROJEKT 2.2. A rendszer felépítése A rendszer központjában egy Java szerver áll, amely egy MySQL relációs adatbázisba menti el az adatokat. Az adatokat Representational State Transfer (REST) hívásokkal érik el mind a webes, mind az Android kliens alkalmazások. Ahhoz, hogy a mobil kliens offline módban is működőképes legyen, szinkronizáció után egy SQLite adatbázisba menti el a szervertől kapott adatokat, melyeket majd innen betöltve mutat a felhasználónak Architektúra Architektúra szempontjából a rendszer három fő komponensből áll: szerver, Android és webes kliens. A komponensek közötti kommunikáció a Data Transfer Object (DTO) tervezési mintára épül, amelynek a szerepe az adatok egységes kezelése. Ugyanakkor meghatározza, hogy a központi entitásokból milyen adatok kerüljenek publikálásra. Ennek implementációja alkotja a Commons modult. (7.1 ábra) 2.1. ábra. A PlentyGO projekt architektúrája. A szerver egy backend és egy Application Programming Interface (API) rétegből tevődik össze. A backend rétegen belüli Modell modul az adatok reprezentációjáért felelős. Az adatok perzisztálására egy Java Persistence API (JPA) implementációt használ a rendszer, amely a 6
11 2. FEJEZET: A PLENTYGO PROJEKT MySQL relációs adatbázissal kommunikálva végzi az adatok perzisztálását. Továbbá a backend tartalmaz egy Service modult is, amely a Repository modullal kommunikálva szolgáltatja az adatokat az őt hívó komponensek számára. Az API a szerveren található második réteg, amely egy Resource és egy Assembler modulból tevődik össze. A Resource modulhoz érkeznek be a kliensek kérései, amely a Service modullal kommunikálva szolgálja ki azokat. A válasz kiküldése előtt az Assembler DTO-vá alakítja a Service-től kapott modell objektumokat, melyeket ezután a Resource továbbít a kliensnek. A webes kliens, akárcsak a szerver, két rétegből tevődik össze. A Service modul feladata a szerver API-jával való kommunikáció és a kapott adatok szolgáltatása az őt hívó web komponensek számára. A UI modul tartalmazza a különböző oldalak nézeteit, illetve azok vezérlőit. A kontrollerek a Service-től kapott adatokkal töltik fel a nézetet. Az Android kliens felépítésileg a szerver architektúráját követi. Egy API réteg biztosítja a szervertől bejövő DTO objektumokat, ahol egy Assembler modul modellé alakítja ezeket. Továbbá egy OrmLite Repository rétegen keresztül az információk perzisztálva lesznek egy SQLite adatbázisban. A szerverhez hasonlóan itt is egy modell modul felelős az adatok reprezentációjáért. Egy UI réteg tartalmazza a megjelenítéshez szükségek komponenseket. A rétegek közötti kapcsolatot kontrollerek biztosítják. 7
12 3. fejezet Szerver oldali technológiák - Spring keretrendszer A PlentyGO projekt szervere a Spring [12] nyílt forráskódú, Java platformra írt alkalmazásfejlesztési keretrendszerre épül, amelynek segítségével könnyen fejleszthetőek összetett vállalati rendszerek vagy webalkalmazások. A keretrendszer ereje különféle szolgáltatásokat biztosító moduljaiban és flexibilitásában rejlik: csak azokat a modulokat szükséges bekötni a rendszerbe, amelyek funkcionalitásai használva lesznek. Az alap szolgáltatás részeként a Spring keretrendszer biztosít egy Inversion of Control (IoC) konténert, amely a projekt komponenseinek életciklusáért felel. Lehetőséget ad a Dependency Injection (DI) tervezési minta használatára, tehát képes automatikusan megoldani a különböző komponensek függőségeit. Interfész függőség esetén megkeresi a megfelelő konkrét implementációt, majd abból példányosítva oldja meg a függőséget. Komponensenként definiálhatóak az életciklus menedzsmentjével kapcsolatos elvárások, ezek függvényében a konténer minden komponensből egy vagy több példányt hoz létre. A Spring lehetőséget ad aspektus orientált programozásra (AOP) és támogatja az AspectJ nyelv használatát is. A PlentyGO szerverének esetében aspektusok segítségével valósul meg például a rendszerben fellépő hibák egységes kezelése, és a megfelelő válasz visszatérítése a kliens program számára Spring Boot és konfiguráció A Spring Boot[11] modul a szerver egyszerű konfigurálását és a webszerver beépítését tette lehetővé. A keretrendszer konfigurálása többnyire Java osztályok segítségével valósult meg, bonyolult XML állományok használata nélkül. A központi paraméterek egy külső YAML fájlból vannak beolvasva. 8
13 3. FEJEZET: SZERVER OLDALI TECHNOLÓGIÁK - SPRING KERETRENDSZER Spring Data JPA Az adatok perzisztálására a JPA specifikáció implementációjaként a Hibernate Object- Relational Mapping (ORM) keretrendszert használja a szerver, amely fölött absztrakciós szintet képez a Spring Data JPA[10]. A modul használatával sokkal könnyebb az adathozzáféréssel kapcsolatos műveletek implementálása, mivel elegendő a megfelelő JPA annotációkat alkalmazni az entitások szintjén, és minden entitás számára létrehozni egy megfelelő repository interfészt, ezek implementációját a keretrendszer generálja. Saját lekérdezéseket az interfészekbe lehet írni, egyszerűen a metódusnevekre alkalmazott konvenciók segítségével: a rendszer a metódusnevek alapján generálja a megfelelő lekérdezéseket. Továbbá a modul támogatja az adatok adatbázis szinten történő lapozását, a dinamikusan felépített lekérdezések végrehajtását, a JPQL lekérdezések használatát, illetve lehetőség van XML alapú konfigurációra is Spring MVC Rest A kliens programokat a PlentyGO RESTful API-ja szolgálja ki adatokkal, és ehhez a szerver a Spring Web MVC modulját használja. Ez a modul biztosítja a szerver és kliens között közlekedő JSON objektumok automatikus szerializációját és deszerializációját, lehetőséget ad fájlok fel- és letöltésére, valamint képes a REST kérések pontos értelmezésére Spring Security OAuth2 Az API biztonságáért a Spring Security keretrendszer felelős. Legfontosabb feladata a kliens programok kéréseinek hitelesítése és a jogosultságok ellenőrzése. A PlentyGO szerverén ezeket a feladatokat a Spring Security OAuth2[2] modul végzi, amely korlátozott hozzáférést biztosít HTTP szolgáltatásokhoz külső rendszerek számára. A modul minden kérés esetében beazonosítja annak feladóját, ellenőrzi a kérést küldő fél jogait, és ennek függvényében engedi tovább a megfelelő erőforráshoz, vagy utasítja el a kérést. Ezt a mechanizmust a rendszer hozzáférési tokenek segítségével biztosítja. A kliens programnak rendelkeznie kell egy érvényes tokennel, amelyet minden kéréssel elküld a szervernek, a HTTP kérés fejlécében. Minden token rendelkezik egy lejárati dátummal, amely után a token érvényét veszti, a kliens programnak pedig újat kell igényelnie. Igénylés esetén a kliens programnak el kell küldenie a megfelelő információkat a felhasználóról a megfelelő hitelesítési címre. Sikeres hitelesítés esetén a rendszer válaszként elküld egy hozzáférési token-t és egy hozzáférést meg- 9
14 3. FEJEZET: SZERVER OLDALI TECHNOLÓGIÁK - SPRING KERETRENDSZER újító token-t. Utóbbi akkor kerül használatra, amikor a hozzáférési token lejárt, de a megújító token még érvényes. Ezt elküldve a megfelelő hitelesítési címre új hozzáférési token igényelhető a felhasználó újbóli hitelesítése nélkül. A szerver JSON Web Tokent (JWT)[9] használ a kliensek azonosítására, amely tartalmazza a felhasználó nevét és jogait hash-elt formában. Ezek az információk dekódolhatóak a megfelelő hash algoritmussal kliens oldalon is, így ott is használhatóak a felhasználó jogosultságainak ellenőrzésére Liquibase A Liquibase[8] egy verziókövető rendszer adatbázisok számára, amely a fejlesztés során az adatbázis állapotainak menedzselését végezte. Nagy előnye, hogy több adatbázismenedzsment rendszert támogat, és a változtatások több formátumban is megadhatóak (YML, XML, JSON, SQL vagy Groovy). A projekt a Groovy formátumot használja a changeset-ei definiálására. Minden atomi változást egy changeset-ként kell definiálni a megfelelő formátumban, amelyet egy id és név együttes azonosít. Ilyen atomi művelet lehet például egy új tábla létrehozása, egy oszlop törlése, vagy egy új adat beszúrása stb. A szerver indulásakor a Spring Boot érzékeli, hogy a Liquibase modul hozzá lett adva a classpath-hez, így automatikusan indítja azt. Induláskor a konfigurációs állományból beolvassa az adatbázis címét, csatlakozik hozzá, és ha vannak új változtatások, elvégzi az ezeknek megfelelő műveleteket. Ez a háttérben úgy történik, hogy egy általa létrehozott adatbázis táblába elmenti az összes végrehajtott changeset-et. Így biztosítja, hogy minden változtatás csak egyszer legyen végrehajtva. 10
15 4. fejezet Kliens oldali technológiák A PlentyGO rendszer két kliensalkalmazást tartalmaz: egy webes adminisztrációs felületet és egy mobil alkalmazást. A fejezet az ezek fejlesztéséhez felhasznált fontosabb technológiákat, megoldásokat foglalja össze Web kliens - AngularJS A webes felhasználói felület az AngularJS[3] frontend keretrendszerre épül. A keretrendszer fejlesztését nagy részben a Google végezte, legelső kiadására 2010 októberében került sor. Mára már az egyik legnépszerűbb JavaScript keretrendszer a webprogramozók körében a Facebook által fejlesztett React, és a volt Google alkalmazott, Evan You által megírt Vue.js mellett. A színházak megbízottjai által használt kliens program a keretrendszer által biztosított komponens-alapú architektúrára épül, ahol a komponens a módosított Model-View-Controller (MVC) tervezési minta, az Model-View-ViewModel (MVVM) alapegysége. A modellt saját Plain old TypeScript Object (POTO) objektumok reprezentálják a rendszeren belül. A nézet (View) az a HTML, amely a modell megjelenítéséért felelős. Ha az MVC tervezési minta alapján módosításra kerül a nézeten megjelenített adat, a neki megfelelő modell csak a vezérlő hatására kerül frissítésre. Az AngularJS által biztosított two-way data binding mechanizmusnak köszönhetően ez a frissítés automatikusan megtörténik a vezérlő beavatkozása nélkül. Így a klasszikus MVC-ben megtalálható vezérlő ki lett váltva egy ViewModel objektummal, amely automatikus összeköttetést biztosít a nézet és a modell között, valamint tartalmazza a megjelenítésért felelős logikát is. Ez az objektum a $scope. A komponensek közötti kommunikációról a rendszer által biztosított data binding gondoskodik, amely lehetővé teszi a komponensek számára a bemeneti adatok megadását, illetve callback függvények definiálását a szülő komponensben. Utóbbi metódusok segítségével biztosítja a gyerek komponens kommunikációját a szülő komponenssel. Ezek tipikusan valamilyen felhasználói interakció hatására kerülnek meghívásra, amikor szükséges értesíteni a szülőt az adott 11
16 4. FEJEZET: KLIENS OLDALI TECHNOLÓGIÁK eseményről. Ilyen esemény például, amikor módosításra kerül egy már meglévő előadás leírása, vagy egy új intézményt vitt fel a rendszer adminisztrátora. Ezekben az esetekben lényeges frissíteni a lista nézetet a szülő komponensben ahhoz, hogy ott már az új adatok jelenjenek meg. Akárcsak a szerver program esetében, itt is a keretrendszer felelős a függőségek kezeléséért. A komponensek által definiált külső dependenciákat az AngularJS beépített alrendszere példányosítja és adja át az igénylő komponens részére TypeScript A PlentyGO webes kliens fejlesztése a Microsoft által kifejlesztett TypeScript[5] nyelv segítségével történt. A nyelv erőssége, hogy lehetőséget ad a fejlesztőknek típusok használatára, illetve az objektumorientált programozási paradigma követésére. Szintaktikailag és szemantikailag is ugyanazt az elvet követi mint a JavaScript, így megtanulása nem okoz különösebb nehézséget a webfejlesztők számára. A forráskód lefordításához szükség van egy TypeScript fordítóra, amely egy tiszta JavaScript kódot generál, amit már minden böngésző támogat. Mivel a legtöbb webes könyvtár JavaScript-ben íródott, ezért ahhoz, hogy kompatibilisek legyenek a TypeScripttel, rendelkezniük kell egy típus-definiáló állománnyal, amely megadja a JavaScript könyvtár struktúráját TypeScriptben A less stílus pre-processzor Az alkalmazás grafikus felhasználói felületének tervezése során a less[1] css pre-processzor szolgált a stílusleírás tömörebb megfogalmazására. Fontos tulajdonságai közé tartozik, hogy lehetőséget ad változók használatára, valamint beépített függvények alkalmazására is. Lehetőség van egymásba ágyazott szabályok használatára a lépcsőzetes stílus mellett, amelynek eredménye egy sokkal tömörebb kód. Mivel a böngészők csak a css-t tudják értelmezni, a less-ben definiált stílust először css-re kell fordítani Mobil kliens - Android A PlentyGO rendszer mobil kliense Android platformon fut, így fejlesztése Java programozási nyelvben történt. Az Android alapját egy Linux kernel képezi [4], a platformra való fejlesztéshez szükséges az Android Software Development Kit (SDK) használata, ami könyvtárakat, API-kat, emulátort és egyéb fejlesztési eszközöket tartalmaz. [14] 12
17 4. FEJEZET: KLIENS OLDALI TECHNOLÓGIÁK Retrofit Az Android kliens és a szerver közötti kommunikáció a REST API-n keresztül történik. A Retrofit egy olyan REST kliens, amely ezt hivatott megvalósítani az OkHttp könyvtárral együtt. Minden API hívást egy interfészbeli függvény határoz meg, a megfelelő @PUT) ellátva. A PlentyGO projekt esetében a Retrofit a szervertől kapott JSON formátumú adatokat DTO-ká deszerializálja, ezeket az Assembler-ek alakítják modellé [7] OrmLite Ahhoz, hogy az alkalmazást offline üzemmódban is lehessen használni, a szervertől kapott adatokat a mobil eszköz adatbázisába is szükséges menteni. A PlentyGO az adatok perzisztálását az OrmLite pehelysúlyú ORM keretrendszer segítségével valósítja meg. Az OrmLite több SQL adatbázist támogat, többek között az SQLite-ot is. Natív hívásokat intéz az Android operációs rendszer API-jaihoz, hogy hozzáférhessen az adatbázishoz. Az adatmodellek annotációkkal vannak stb.), amelyek segítségével a keretrendszer létrehozza a táblákat és az adatok perzisztálásakor a sémáknak megfelelő Java objektumokat ment le [6] Picasso A felhasználó profilképének a megjelenítése a Picasso könyvtár segítségével valósul meg. Az URL-t megadva betölti a képet a cache-be, amit majd átad egy képmegjelenítő UI komponensnek, hogy megjelenjen a felületen. A képeket könnyen lehet transzformálni, és a cache-nek köszönhetően, ha véletlenül megszakad az adatkapcsolatunk, akkor is látjuk a képet [13]. 13
18 5. fejezet Eszközök és módszerek A fejlesztés során a fejlesztők igyekeztek olyan eszközökhöz és módszerekhez folyamodni, amelyek hozzájárulnak a fejlesztés hatékonyságához. Az egyik legkedveltebb agilis módszer a programozók körében a Scrum, amely inkrementális és iteratív fejlesztési szakaszokból áll. Ez alapján a fejlesztés két hetes iterációkban valósult meg a nyári szakmai gyakorlat alatt, napi gyűlésekkel. Később, a csoportos-projekt tantárgy keretein belül három hetes sprintekben történt a fejlesztés. Minden iteráció tervezéssel (sprint planning) kezdődött. Ebben a szakaszban kiválasztásra kerültek a Backlog-ból azok a feladatok, amiket a fejlesztők meg akartak valósítani az elkövetkező futamban. Minden sprint végén új funkcionalitások adódtak hozzá a projekthez, amelyek egy demo keretén belül kerültek bemutatásra a product owner szerepkört is betöltő mentoroknak. Ahhoz, hogy a kód fejlődése jól nyomon követhető legyen és hatékonyabban menjen a csapatmunka, egy verziókövető rendszer használatára volt szükség. A választás a Git-re esett, amely egy osztott verziókövető rendszer. Fejlesztéskor minden funkcionalitás egy új ágon került megvalósításra, ami majd a kód felülvizsgálata után bekerült a projektnek egy stabil fejlesztési ága alá. Projekt fejlesztéskor mindig kihívást jelent a megfelelő időbeosztás. Ezért szükség volt egy olyan rendszerre, amivel nyomon lehet követni, hogy milyen feladatokat kell megoldani, illetve, hogy ki mivel foglalkozik. Erre a feladatra kitűnő megoldást jelentett a GitLab, amely projektmenedzsment eszközként is funkcionált. Továbbá a forráskód tárolásáról is ez az eszköz gondoskodott és folytonos integrációs megoldásként is szolgált. Olyan összetettebb alkalmazások fejlesztésénél, amelyek más modulokat is felhasználnak függőségként, hatalmas segítséget jelentenek a build és függőségmenedzsment eszközök. A PlentyGO rendszer esetében a Gradle végzi az Android és a szerver Java projektek, valamint a mindkettő által felhasznált Commons modul fordítását és függőségeik automatikus megoldását. A konfigurálás Groovy szkriptek segítségével történt. A webes csomagok kezelésére a node package manager (npm) szolgált, a webes munkamenetet a gulp automatizálta. Ez az eszköz 14
19 5. FEJEZET: ESZKÖZÖK ÉS MÓDSZEREK végezte a TypeScript fájlok JavaScriptre való fordítását, a less állományok css-re való alakítását, valamint az alkalmazás megfelelő összecsomagolását. A függőségek összegyűjtéséről és összecsomagolásáról a webpack gondoskodott. A projektfejlesztés során több fejlesztői környezetet is használt a csapat. Az Android alkalmazás fejlesztése Android-Studio-ban, míg a web kliens fejlesztése WebStorm-ban történt. A szerver fejlesztése során az IntellIJ IDEA-t és az Eclipse-t használták a fejlesztők. Mivel nem csak architektúrailag, hanem kinézetileg is fontos megtervezni az alkalmazást, ezért szükséges volt a kliens alkalmazásokhoz látványterveket készíteni. Ezek Balsamiq segítségével voltak létrehozva, mind a webes, mind az Android kliens számára. 15
20 6. fejezet Megvalósítások fontosabb részletei A fejezet a PlentyGO szoftverrendszer megvalósításának fontosabb részleteit ismerteti Szerveroldali megvalósítások A PlentyGO API szervere szolgálja ki mindkét kliens alkalmazás kéréseit, így a rendszer legösszetettebb komponensének számít Adatmodell A rendszeren belüli adatok reprezentációjára egyszerű Java Bean osztályok szolgálnak a megfelelő JPA annotációkkal ellátva, amelyek a edu.codespring.plentygo.server.backend.model csomagban találhatóak. A hierarchia csúcsán az AbstractModel absztrakt osztály található, amely tartalmaz egy univerzálisan egyedi azonosítót, mely által nagyon egyszerűen összehasonlíthatóak a rendszerben megtalálható entitások. A BaseEntity osztály egy Long típusú adattaggal bővíti az AbstractModel-t, amely az adatbázisban lévő kulcsnak megfelelő azonosítót reprezentálja. A SynchronizableEntity osztály a hierarchiában a BaseEntity után következik és egy deleted, illetve egy lastmodified adattagot tartalmaz. Ezeket az adattagokat minden olyan entitás tartalmazza, amely az Android szinkronizációs folyamat során átkerül a mobil kliens alkalmazásra. A deleted mező jelzi, ha az Android adatbázisából törölni kell az adott entitást, a lastmodified attribútumnak köszönhetően lekérhetőek azok az entitások, amelyek egy megadott UTC időpecsét után kerültek módosításra vagy létrehozásra. Ennek köszönhetően nem szükséges az összes modell osztály visszatérítése a szerver által szinkronizációkor. A MultilingualEntity osztály tartja számon minden többnyelvű entitás esetén az alapértelmezett nyelvet, illetve a támogatott nyelvek halmazát. Ez az osztály a SynchronizableEntity-t terjeszti ki, de már a nem annotációval van ellátva, mint az eddig említettek, @Inheritance(strategy = InheritanceType.JOINED) hármas 16
21 6. FEJEZET: MEGVALÓSÍTÁSOK FONTOSABB RÉSZLETEI jellemzi. Így ennek az osztálynak egy saját adatbázis tábla felel meg, amely az összes eddig említett attribútumot tartalmazza, valamint egy külső kulcsot a SupportedLocale modell osztály táblájára. A támogatott nyelvek számára egy több-a-többhöz típusú kapcsolattábla van létrehozva, amely tartalmazza a MultilingualEntity, valamint a SupportedLocale kulcsát minden entitás összes támogatott nyelve esetén. A MultilingualEntity osztályból lettek származtatva mindazok az entitások, amelyek rendelkeznek többnyelvű adatokkal. Ilyen osztályok az Institute, Show, City és Location. Ezek az osztályok csak az egyedi attribútumokat tartalmazzák adatbázis szintjén is, az előzőleg említetteket automatikus JOIN művelet által kapják meg a MultilingualEntity osztálynak megfelelő táblából Tartalom nemzetköziesítése A tartalom nemzetköziesítése az egyik legnagyobb kihívást jelentette az alkalmazás elkészítése alatt. Mivel mindkét kliens alkalmazást és a központi szervert is érintette a funkció, a legtöbb fejlesztési idő ennek a kidolgozásával telt. A központi szerver adathozzáférési rétegének képesnek kell lennie a többnyelvű adatok egységes kezelésére. Mivel az alkalmazásban ezt a réteget a Spring Data JPA, azon belül pedig a Hibernate ORM keretrendszer biztosítja, a legelső feladat a keretrendszer helyes bekonfigurálása volt. Ez a megfelelő JPA annotációk megadását jelentette. Az adatreprezentáció szintjén a MultilingualString osztály képvisel egy többnyelvű adatot, amely egyetlen attribútummal rendelkezik: = = = "multilingual_string_map", joincolumns = "string_id")) private Map<SupportedLocale, MultilingualData> localizedstrings;. Látható, hogy minden többnyelvű adat egy Map gyűjteménybe kerül, ahol a kulcsként szolgál egy, a rendszer által támogatott nyelv (például magyar vagy román). Értékként a MultilingualData, annotációval ellátott osztály szerepel, ami egyetlen String adattaggal rendelkezik, és ez az adattag tartalmazza a fordított szöveget a kulcsként megadott nyelven. Utóbbi osztály azért annotációval helyett, mert nincs szükség ezek külön beazonosítására az alkalmazáson belül. Használatuk a megfelelő kulcs nélkül értelmetlen. Mivel egy többnyelvű adat és a neki megfelelő fordítások között egy-a-többhöz kapcsolat áll fenn, adatbázis szintjén két táblára van szükség ezek tárolására. 17
22 6. FEJEZET: MEGVALÓSÍTÁSOK FONTOSABB RÉSZLETEI annotáció jelzi a kapcsolat típusát, adja meg a Map kulcsának nevét által definiált táblában. Utóbbi annotációt alap típusú gyűjtemények perzisztálásakor szükséges megadni. Ugyanitt megadható a JOIN művelethez szükséges mező neve is, mely ebben az esetben a "string_id". Minden entitás, amely rendelkezik többnyelvű adattaggal, egy MultilingualString objektumot jelent be osztályszinten. Míg az Android kliens alkalmazás mindig csak egy nyelven szinkronizálja a szerveren lévő adatokat, addig a webes felhasználói felületre minden nyelven eljutnak az entitásoknak megfelelő DTO-k. Ez azt eredményezi, hogy minden többnyelvű entitás esetén két DTO osztály került implementálásra a projekt commons moduljában. A Multilingual előtaggal kezdődő POJO-k minden nyelven tartalmaznak minden megadott információt, míg az előtag nélküliek csak a kért nyelven adják vissza az összes adatot. Több DTO több Assembler osztály megírását vonja maga után. Ezért modellenként is külön Assembler osztályok végzik a többnyelvű adattagot tartalmazó modell, és a nekik megfelelő DTO-k közötti átalakításokat. A MultilingualBaseAssembler osztályt kiterjesztő Assemblerek végzik az entitások több nyelvre való átalakításait, míg a LocalizedBaseAssembler interfészt implementálóak csak egy bizonyos nyelvre alakítják a modelleket. Az egynyelvű DTO objektumokból sosem készülnek modell osztályok, mivel ez adatvesztéshez vezetne Szociális hálók integrációja Mivel az Android alkalmazás lehetőséget biztosít szociális hálózatok általi bejelentkezésre (Facebook és Google), a szerveren is szükség volt bevezetni ezeket a külső modulokat. Amikor egy mobil felhasználó közösségi háló által kerül hitelesítésre, a kiválasztott háló egy saját hozzáférési tokent küld vissza az alkalmazásnak. Azonban ezzel a tokennel nem azonosíthatja magát a felhasználó a PlentyGO szerverén, mivel nem a szerver generálta azt. Ennek a problémának a kiküszöbölésére volt implementálva a sokak által csak "Fordított OAuth hitelesítésként" ismert folyamat. Lényege, hogy miután a kliens alkalmazás megszerezte a szociális hálónak megfelelő access tokent, egy REST kérést küld az /oauth/social elérési útvonalra, mely törzsében megadja a szociális háló nevét, valamint a tőle kapott tokent. A szerver ezután a token által csatlakozik a megadott szociális hálóhoz, amelytől lekéri a felhasználó azonosítóját. Ha az azonosító még nem létezik az adatbázisban, a szerver létrehozza azt, beállítja a típusát a hálónak megfelelően, valamint a jogosultságait és elmenti. Miután már létezik a felhasználó az adatbázisban, a szerver egy hitelesítési kérést szimulál, amely által visszatérít egy hozzáférési és hozzáférést megújító tokent a mobil felhasználó részére a megfelelő lejárati dátumokkal. 18
23 6. FEJEZET: MEGVALÓSÍTÁSOK FONTOSABB RÉSZLETEI 6.2. Az adminisztrációs felület megvalósítása A webes adminisztrációs felület egy önálló alkalmazásként funkcionál, amely semmilyen fizikai kapcsolatban nem áll a központi szerverrel. Egy saját webszerver szolgálja ki a komponenst alkotó statikus állományokat, melyek a böngészőbe való megjelenítéskor single-page alkalmazásként funkcionálnak és dinamikus tartalmat generálnak JavaScript által. Struktúra szempontjából három fontosabb mappa alkotja az alkalmazást. A blocks katalógus tartalmazza az alkalmazás TypeScriptben írt konfigurációs állományait, amelyek a projektben használt natív AngularJS, vagy más külső modulok beállításait definiálják. Ilyen beállítások például a szerver API címe, vagy az oldal vizuális témája. Az app katalógusban megtalálható az összes alkalmazásban használt saját AngularJS komponens. Minden komponenshez saját mappa tartozik, mely tartalmazza a viselkedését leíró állományt, az általa kezelt modell osztály TypeScript definícióját, valamint a megjelenítéshez szükséges HTML és less állományokat. A service mappában kerültek implementálásra a szerver API-jával kommunikáló webes komponensek Kommunikáció a szerverrel Ahhoz, hogy a webes kliens kommunikálni tudjon a központi szerverrel, szükség volt egy olyan modulra, amely támogatja a REST kérések küldését és válaszok fogadását. A választás a Restangular AngularJS szolgáltatásra esett, mivel biztosítja az előbb említett funkcionalitásokat minimális kód megírásával, támogat minden HTTP metódust, valamint elvégzi az automatikus szerializációt, illetve deszerializációt JSON és TypeScript objektumok esetében. A modul a kéréseket aszinkron feladatokként hajtja végre, így nincs rá garancia, hogy mikor érkezik meg a tényleges válasz. Ezért minden egyes kérés visszatérítési értékeként egy IPromise objektumot ad vissza a rendszer, amely tartalmazza a REST API által küldött konkrét választ. Ezekhez az objektumokhoz definiálhatók callback függvények, amelyek bizonyos események bekövetkeztében kerülnek meghívásra. Ilyen esemény a helyes válasz megérkezése, vagy hiba fellépése a kérés következtében Nemzetköziesítés A webes felhasználóknak lehetőségük van kiválasztani a nekik megfelelő nyelvet az adminisztrációs felület használatakor. A weboldalon megjelenő címkék többnyelvűsítéséről az 19
24 6. FEJEZET: MEGVALÓSÍTÁSOK FONTOSABB RÉSZLETEI angular-gettext modul gondoskodott. Használata rendkívül egyszerű, a forráskódban elegendő felannotálni a megfelelő HTML taggel a fordítani kívánt szövegrészletet. Ezután egy gulp feladatkezelő szkript segítségével kigenerálható az összes felannotált szövegrészlet egy.pot kiterjesztésű állományba. Mivel a modul a gettext nemzetköziesítési és lokalizációs formát használja, a Poedit szerkesztővel bármilyen nyelven megadhatóak a fordítások. Ezek már egy.po kiterjesztésű állományba kerülnek, amelyek a nevüknek megfelelő nyelven tartalmazzák a fordításokat. Ahhoz, hogy ezek futási időben is elérhetőek legyenek, szintén egy gulp szkript végzi a.po fájlok fordítását JSON-re, majd kirakja a megfelelő elérési útvonalra, hogy letölthető legyen a kliensek által. Nyelvváltáskor elegendő csak betölteni a megfelelő JSON állományt, a modul automatikusan kicseréli az összes többnyelvű címkét az oldalon Autentikáció Ahhoz, hogy minden színház megbízott csak az általa kezelt színházakhoz, és azok előadásaihoz férjen hozzá, nélkülözhetetlen volt a felhasználók beazonosítása. A szerver minden kérés esetén a hozzáférési tokenből kinyeri, hogy ki a küldő és milyen szerepkörrel rendelkezik, majd ennek függvényében generálja a választ. A weboldalon mindehhez megvalósításra került egy bejelentkező rendszer, amely által minden felhasználó beazonosításra kerül. Bejelentkezéskor a megadott hitelesítési adatok elküldődnek a szervernek, mely válaszul egy hozzáférési tokent és egy hozzáférést megújító tokent térít vissza a felhasználó adataival. Ezeknek a tokeneknek a tárolására nyújtott nagyon kézenfekvő megoldást a HTML5-ben bevezetett Local Storage. A hozzáférési tokennek minden kérés fejlécében szerepelnie kell, így ennek a hozzáadását egy egyedi AngularJS HTTP interceptor végzi. Ez minden kimenő kérést, és minden bejövő választ ellenőriz, így ha a szerver jelzi, hogy a token lejárt, itt történik meg a token megújítása is. Ha azonban már a megújító token sem érvényes, az interceptor kidobja a felhasználót a bejelentkező oldalra, hogy újból azonosíthassa magát Az Android kliensalkalmazás megvalósítása Az Android alkalmazás felépítésileg az MVC elvet követi. Az adatmodellek felelősek az entitások reprezentálásáért, az Activity-k a kontrollerek szerepét töltik be, míg az Activitykhez hozzárendelt xml állományok meghatározzák a felületen elhelyezkedő komponenseket és a közöttük levő relációt. 20
25 6. FEJEZET: MEGVALÓSÍTÁSOK FONTOSABB RÉSZLETEI Adatmodell Az adatmodellek az edu.codespring.plentygo.android.model csomagban találhatóak. Minden adatmodell egy-egy entitást reprezentál. Felépítésileg egyszerűek, adattagokat, setter és getter metódusokat, illetve egy paraméter nélküli konstruktort tartalmaznak. A konstruktor lehetővé teszi, hogy a lekérdezések objektumokat tudjanak visszatéríteni. A PlentyGO központi entitásai közé tartozik a Show, ShowDateTime, Institute, Location, City, ShowCover valamint az InstituteCover. A FavoriteShow a kedvenc előadásokat, míg a FavoriteInstitute a kedvenc intézményeket reprezentálja. A User adatmodell jelképezi az alkalmazásba bejelentkezett felhasználókat. Az intézménynek van kategóriája (InstituteCategory), az előadásnak műfaja (ShowGenre), a felhasználónak típusa (UserType). Mindhárom esetben enum típus segítségével lehet kiválasztani a szükséges adatokat. A modell osztályok az AbstractModel osztály kiterjesztettjei. Ahhoz, hogy tudomást lehessen szerezni bizonyos entitások törléséről, ki kell terjeszteniük egy SynchronizableEntity nevű absztrakt osztályt, amelynek isdeleted logikai változója számon tartja, hogy még létezik-e az adott entitás. Ha ez az érték true-ra változik, akkor az alkalmazás adatbázisából ki kell törölni az adott rekordot Az adathozzáférési réteg Az adatmodellek adattagjai annotációkkal vannak ellátva. Ezek segítségével a Database- ConfigUtil osztály generálja az adatbázis sémákat. Annotációval meg lehet adni az elsődleges kulcsot, külső kulcsokat, a táblának és annak mezőinek a nevét stb. Az adatbázissal kapcsolatos műveletek a DAO osztályokra van bízva. Minden DAO egy adott modell osztállyal kapcsolatos műveletekért felel. A DAO-k példányosítását egy DatabaseHelper nevű osztály végzi, melynek működése hasonlít a Factory tervezési mintához. Minden DAO osztályból csak egy példányt hoz létre és ezt téríti vissza. Példa az előadás táblának megfelelő DAO példány lekérésére: public Dao<Show, Integer> getshowdao() throws SQLException { if (showdao == null) { showdao = getdao(show.class); } 5 return showdao; } Az adatbázis-manipulációval kapcsolatos műveleteket repository interfészek metódusai határozzák meg. Ezek konkrét implementációja OrmLite-specifikus. A repository osztályok konstruktorában lekérésre kerülnek a szükséges DAO példányok a DatabaseHelper osztályon keresztül. 21
26 6. FEJEZET: MEGVALÓSÍTÁSOK FONTOSABB RÉSZLETEI Az adathozzáférési réteggel kapcsolatos programkód az edu.codespring.plentygo.android.repository csomagban található Felhasználói felület A PlentyGO alkalmazás nézetéért felelős osztályok az edu.codespring.plentygo.android.ui csomagban találhatóak. Az alkalmazás nézeteit és a felhasználóval történő interakciót Activity-k és Fragment-ek biztosítják. Egy Activity egy képernyőnek felel meg, ez több részfelületet tartalmazhat, amit Fragment-nek neveznek. Minden nézethez hozzátartozik egy xml állomány, amely leírja az adott felület felépítését. Az alkalmazás elindításakor egy LoginActivity jelenik meg a képernyőn. Innen a bejelentkezés gombra kattintva a felhasználó egy központi nézethez jut, amely két tab-ot tartalmaz. Az egyik az InstituteFragment-et jeleníti meg, amely a rendszerbe felvitt intézmények listája. A másik a ShowFragment-et tartalmazza, ahol az előadások jelennek meg időrendi sorrendben. Egy előadást kiválasztva el lehet jutni a ShowDetailsActivity-re, ahol részletes leírást kap a felhasználó az adott színdarabról. Egy színházra kattinva megjelenik az InstituteDetailsActivity az adott intézmény részletes leírásával. Innen el lehet navigálni a ShowByInstituteActivity-re, ahol a kiválasztott intézmény előadásai jelennek meg. A főnézetből az alkalmazás MenuDrawer-ére kattintva megjelenik egy menüsor, ahol ki lehet választani az alkalmazás elsődleges nyelvét. Ez a SettingsActivity által valósul meg Kommunikáció a szerverrel Az alkalmazás API rétege az edu.codespring.plentygo.android.api csomag alatt található. A szerverrel történő kommunikáció a Retrofit könyvtár és az OkHttp http kliens segítségével valósul meg. Minden központi entitás esetében létezik egy Retrofit interfész, amely tartalmazza a megfelelő Rest kéréseket. A következő API hívás lekéri a szervertől az előadások listáját a paraméterként megadott Call<List<AndroidShowDTO>> getshows(@query("lang") String locale); A szerver és az Android alkalmazás között JSON formátumú adatok vándorolnak. A Retrofit könyvtár biztosítja a JSON formátumú üzenetek és a DTO-k közötti konverziót. Az ApiBean osztályok a modellek és DTO-k közötti átalakítást valósítják meg az Assemblerek segítségével. 22
27 6. FEJEZET: MEGVALÓSÍTÁSOK FONTOSABB RÉSZLETEI Autentikáció Az ApiManager a Factory tervezési mintára épül, a createapi metódus háromszoros túlterhelése különböző jogosultságú erőforrásokhoz ad hozzáférést. Mivel az alkalmazás több fajta bejelentkezést támogat (vendégfelhasználó, Google és Facebook felhasználó), ezért esetenként különbözik az autentikációs mechanizmus. Vendég felhasználó esetén az alkalmazás egy guest_client_id-t és egy guest_client_secret-et tartalmazó TokenDTO-t küld el az /oauth/token erőforráshoz. Innen válaszként visszakap egy access_tokent és egy refresh_tokent. Ezután minden API hívás fejlécébe bekerül az access_token. Egy AuthenticationInterceptor osztály biztosítja, hogy mindig érvényes token legyen a fejlécben. Az access_token lejárta után frissíteni lehet azt a refresh_token segítségével. Miután a refresh_token is lejárt új bejelentkezés szükséges. Google és Facebook felhasználók esetében abban tér el az autentikációs mechanizmus az előbbitől, hogy a validáláshoz előbb el kell küldeni a szervernek a Facebook, illetve a Google által generált tokent az /oauth/social erőforrásra Szinkronizáció és nyelvkiválasztás A szinkronizációs mechanizmusért a SyncService osztály felelős. Minden központi entitás esetében (ShowDateTime, Show, Institute, Location, City, ShowCover, InstituteCover) van egy szinkronizációs függvény, amely egy időpecsét szerint lekéri az adott időpont után felvitt vagy módosított entitásokat. Válaszként egy id, default_language, available_language listát kapunk. Ezután minden entitásra külön-külön meghívódik a GET API hívás. Ha létezik az alkalmazás nyelve az entitás nyelvei között akkor ezen a nyelven jelennek meg az adatok. Különben az eszköz vagy az entitás alapértelmezett nyelve szerint kerülnek az adatok megjelenítése. Az alkalmazás nyelvét a MenuDrawer-ben levő nyelvbeállítás menü alatt lehet módosítani, alapértelmezetten az eszköz nyelve. 23
28 7. fejezet A PlentyGO működése A fejezet a PlentyGO szoftverrendszer fontosabb funkcionalitásainak használatát szemlélteti A webes felhasználói felület használata A webes felhasználói felületre való bejelentkezés után a felhasználó kiválaszthatja a számára megfelelő nyelvet. Jelenleg három nyelv van támogatva a kliens program által: magyar, román és angol ábra. Egy előadás adatainak a kezelése a PlentyGO adminisztrációs felületén keresztül.. A bejelentkezés utáni első menüpont az intézmények listája. Ebben a listában megjelenítésre kerül az összes színház a rendszer adminisztrátorainak számára. A színházak megbízottjainak csak az általuk kezelt intézményekhez van hozzáférésük, így csak azokat láthatják a listában. Minden intézmény esetében megadhatóak az általa támogatott nyelvek, a pontos helyszíne, valamint neve és rövid leírása. Új intézményt csak a rendszer adminisztrátora tud feltölteni az 24
29 7. FEJEZET: A PLENTYGO MŰKÖDÉSE adatbázisba. A második menüpontban az előadások listája kerül megjelenítésre. Itt szintén lehetőség van a támogatott nyelvek megadására, illetve egy dialógus ablakban megadhatóak az előadások pontos kezdési időpontjai. A harmadik és negyedik menüpontok a rendszer adminisztrátorai számára elérhetőek. Előbbiben lehetőség van új városok felvitelére, utóbbiban új felhasználók, illetve azok jogosultságainak megadására. Intézmény adminisztrátorok esetében megadható a kezelt intézmények listája is Az Android kliens alkalmazás használata Az Android alkalmazás segítségével böngészhetjük mindazon intézmények programkínálatát, akik feltöltötték előadásaikat a rendszerbe a webes adminisztrációs felületen keresztül. (lásd 7.2. ábra) 7.2. ábra. A PlentyGO mobil alkalmazásán belül megjelenő színházak és előadások listája. Az alkalmazás elindításakor szükséges bejelentkezni vendégfelhasználóként vagy Google-, illetve Facebook-felhasználó segítségével. Ezt követően egy főnézeten keresztül meg lehet tekinteni a színházak és előadások listáját. Az előadásokat több szempont szerint lehet szűrni, többek között város, színház és dátum szerint. Ennek köszönhetően a felhasználó könnyen megtalálja a számára megfelelő előadást. Az intézményeket és előadásokat meg lehet jelölni kedvencként a későbbi keresés megkönnyítésére. Egy előadás vagy színház kiválasztása után részletes információkhoz lehet hozzáférni. A 25
30 7. FEJEZET: A PLENTYGO MŰKÖDÉSE Vigyél oda gombra kattintva az alkalmazás képes elnavigálni a felhasználót Google Maps segítségével a kiválasztott intézmény helyszínére. A tartalom elsődleges nyelvét egy bal oldali menüben lehet módosítani. A nyelv szerint kerülnek beszinkronizálásra az adatok. Ha az adott nyelvet nem támogatja egy színdarab vagy színház, akkor a szinkronizáció másodlagos nyelve az eszköz, majd az entitás alapértelmezett nyelve lesz. 26
A Java EE 5 plattform
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
Webes alkalmazások fejlesztése
Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni
JAVA webes alkalmazások
JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,
Enterprise JavaBeans 1.4 platform (EJB 2.0)
Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans
Web-fejlesztés NGM_IN002_1
Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása
Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans
Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.
Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció
ERA Elektronikus aláírás - felhasználói dokumentáció Tartalomjegyzék 1. Bevezető... 3 1.1. Általános információk... 3 2. DesktopSign... 3 2.1. Általános információk... 3 2.2. Telepítés... 3 3. MNBSubscriber...
Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe
Webes alkalmazások fejlesztése Bevezetés az ASP.NET MVC 5 keretrendszerbe ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia
RBLDNS DNS-based blocklists management felhasználói kézikönyv
RBLDNS DNS-based blocklists management felhasználói kézikönyv (INTEGRITY Kft. 2013. 06. 27.) RBLDNS Webes kezelőfelülete Az INTEGRITY által működtetett RBLDNS rendszer webes felületét a spamdns.eu/rbl/
Gyakorlati vizsgatevékenység A
Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés
A ProfiNet szolgáltatáskereső platform
XIX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2016. május 19-22. A ProfiNet szolgáltatáskereső platform Szerzők: Vass Lilla Babeş-Bolyai Tudományegyetem, Kolozsvár,
API tervezése mobil környezetbe. gyakorlat
API tervezése mobil környezetbe gyakorlat Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás
MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények
1. sz. melléklet MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS A) Műszaki követelmények A körkereső szoftvernek (a továbbiakban Szoftver) az alábbi követelményeknek kell megfelelnie
Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez
Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez Székely István Debreceni Egyetem, Informatikai Intézet A rendszer felépítése szerver a komponenseket szolgáltatja Java nyelvű implementáció
Gyakorlati vizsgatevékenység B
Gyakorlati vizsgatevékenység Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés
Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft
Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül
Összetett szoftverrendszerek fejlesztése Innovatív szoftver prototípusok a Codespring Mentorprogram keretein belül
Összetett szoftverrendszerek fejlesztése Innovatív szoftver prototípusok a Codespring Mentorprogram keretein belül Simon Károly simon.karoly@codespring.ro Miért nem? Új, természetből inspirált számítástechnikai
Felhasználói leírás a DimNAV Server segédprogramhoz ( )
Felhasználói leírás a DimNAV Server segédprogramhoz (1.1.0.3) Tartalomjegyzék Bevezetés...3 1. Telepítés...3 2. Eltávolítás...4 Program használata...5 1. Kezdeti beállítások...5 2. Licenc megadása...6
Oszkar.com Android alkalmazás v1.2
Oszkar.com Android alkalmazás v1.2 Az 1.2 verzióban a következő funkciók érhetők el: Be- kijelentkezés Autós ajánlatok keresése, akár dátum intervallumra Pontos és közeli ajánlatok megjelenítése Autós
Bóra Adatcsere. A webes modul működésének részletesebb leírását a csatolt dokumentum tartalmazza.
Bóra Adatcsere A Bóra Adatcsere a Bóra bérprogram webes modulja, ami a http://adatcsere.globo.hu címen érhető el. Természetesen a modult szeretnénk az Önök igényei alapján tovább fejleszteni, ezért kíváncsian
Adatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
Órarendkészítő szoftver
SchoolTime Órarendkészítő szoftver 2.0 verzió Tartalomjegyzék: 1., Belépés a programba...3 2., Órarend főtábla...3 3., Tanátok...4 3.1., Új tanár felvitele, módosítása...4 3.2., Tanár törlése...4 3.3.,
Nyilvántartási Rendszer
Nyilvántartási Rendszer Veszprém Megyei Levéltár 2011.04.14. Készítette: Juszt Miklós Honnan indultunk? Rövid történeti áttekintés 2003 2007 2008-2011 Access alapú raktári topográfia Adatbázis optimalizálás,
Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.
Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. május 1. BEVEZETÉS Az útmutató célja az Országos Területrendezési
ESZR - Feltáró hálózat
ESZR - Feltáró hálózat ERDŐGAZDÁLKODÁS/FELTÁRÓ HÁLÓZAT Bevezetés Az erdészeti tevékenységeket támogató technológiák folyamatos fejlődésével szükségessé válik az erdőfeltárás, az erdőfeltáró hálózatok -
Felhasználói kézikönyv - Android kliens
Felhasználói kézikönyv - Android kliens Tartalom Telepítés Indítás Fő képernyők Térkép Rétegválasztó ablak Kilépés Keresés Lista Részletek Telepítés Az Élő Berek Android alkalmazás letölthető a www.e-berek.hu
1. Az Android platform bemutatása (Ekler Péter)... 1 1.1. Az Android sikerességének okai... 1 1.2. Az Android platform története... 3 1.3. Android-verziók... 5 1.4. Android Market (Google Play)... 13 1.5.
Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)
Szoftverarchitektúrák specifikáció Szoftverarchitektúrák 12. Sorozat portál (követelmény specifikáció) Balázs Zoltán (X0ELSN) Kiss Zoltán (BUS1FJ) Szoftverarchitektúrák specifikáció Tartalomjegyzék 1 Bevezető...
Taninform KIR kapcsolat
Taninform KIR kapcsolat Cél A Taninform KIR adatkapcsolat célja, hogy a mindkét rendszerben megtalálható és tárolt, iskolai adminisztrációval kapcsolatos alapadatokat az intézmények könnyen szinkronban
MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák
Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés
ALKALMAZÁS KERETRENDSZER
JUDO ALKALMAZÁS KERETRENDSZER 2014 1 FELHASZNÁLÓK A cégvezetők többsége a dobozos termékek bevezetésével összehasonlítva az egyedi informatikai alkalmazások kialakítását költséges és időigényes beruházásnak
Szakdolgozati, TDK témajavaslatok
Kiadta: IB Controll Kft. Összeállította: Nagy Imre Dokumentum verzió: v1.0 Utolsó frissítés dátuma: 2015. 03. 30. Tartalomjegyzék 1. Bevezetés...3 2. Témajavaslatok...4 2.1.1. OpenWrt / Linux szerver admin
SZAKKÉPZÉSI KERETTANTERV a(z) 55 213 04 MOBILALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ
SZAKKÉPZÉSI KERETTANTERV a(z) 55 213 04 MOBILALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ I. A szakképzés jogi háttere A szakképzési kerettanterv a nemzeti köznevelésről szóló 2011. évi CXC. törvény,
JavaScript Web AppBuilder használata
JavaScript Web AppBuilder használata Kiss András Esri Magyarország Kft. 2015. október 8. Az ArcGIS Platform lehetővé teszi a Web GIS-t Térinformatika elérése bárhonnan Desktop Web Eszköz Egyszerű Egységes
MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.
Telefon: Fax: E-mail: (+36-1) 269-1642 (+36-1) 331 8479 info@ex-lh.hu www.ex-lh.hu Eötvös József Főiskola 6500 Baja, Szegedi út 2. MŰSZAKI DOKUMENTÁCIÓ Aleph WebOPAC elérhetővé tétele okostelefonon Pályázati
e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez
MICROSEC Számítástechnikai Fejlesztő zrt. e-szignó Online e-kézbesítés Végrehajtási Rendszerekhez Felhasználói útmutató https://online.e-szigno.hu/ 1 Tartalom 1. Bevezetés... 3 2. A rendszer használatának
RBLDNS DNS-based blocklists management felhasználói kézikönyv
RBLDNS DNS-based blocklists management felhasználói kézikönyv (INTEGRITY Kft. 2013. 12. 9.) Bevezető ismertetés Az RBLDNS rendszer a hagyományos DNS protokollra épülő rendszer, melyet elsősorban black
Terapeuták munkáját támogató szoftverrendszer: a dwelling projekt
XX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2016. május 18-21. Terapeuták munkáját támogató szoftverrendszer: a dwelling projekt Szerzők: Ambrus Adrián-Zoltán
Adatbázis rendszerek I
Normalizálás 1NF 2NF BCNF Adatbázis rendszerek I 20111201 1NF 2NF BCNF Ha BCNF 2NF A B B A 2NF BCNF 2NF részkulcsból indul ki FD létezik FD, amely nem jelölt kulcsból indul ki Jelölt kulcs olyan mezőcsoport
MVC. Model View Controller
MVC Model View Controller Szoftver fejlesztés régen Console-based alkalmazások Pure HTML weboldalak Assembly, C Tipikusan kevés fejlesztő (Johm Carmack Wolfenstein, Doom, Quake..) Szűkös erőforrások optimális
Felhasználói kézikönyv
Felhasználói kézikönyv Elektronikus Ügyintézés (EÜHT) Kézbesítési tárhely V 1.6 Utolsó mentés: 2015. 08. 11. TARTALOMJEGYZÉK 1. Bevezető... 3 2. Fogalomtár... 3 3. Kézbesítési Tárhely - szolgáltatás Intézmények
Földmérési és Távérzékelési Intézet
Ta p a s z ta l a to k é s g ya ko r l a t i m e g o l d á s o k a W M S s zo l gá l tatá s b a n Földmérési és Távérzékelési Intézet 2011.03.13. WMS Szolgáltatások célja A technikai fejlődéshez igazodva
Szoftver Tervezési Dokumentáció. Nguyen Thai Binh
Szoftver Tervezési Dokumentáció Nguyen Thai Binh April 2010 1. fejezet Feladat Szimulációs feladat. Célja, hogy reprezentáljunk egy több komponensből álló alkalmazást, amely a megadott témakörnek megfelel,
Hiteles elektronikus postafiók Perkapu
Hiteles elektronikus postafiók Perkapu 2018.10.27. Tartalom Bevezetés...2 Bejelentkezés a Hiteles Elektronikus Postafiókba...2 Perkapu tárhely kiválasztása...2 Beérkezett üzenetek...3 Dokumentumletöltés...4
XIX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, május FestivApp
XIX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2016. május 19 22. FestivApp Általános szoftverrendszer rendezvények programjának böngészésére és menedzsmentjére
HVK Adminisztrátori használati útmutató
HVK Adminisztrátori használati útmutató Tartalom felöltés, Hírek karbantartása A www.mvfportal.hu oldalon a bejelentkezést követően a rendszer a felhasználó jogosultsági besorolásának megfelelő nyitó oldalra
Autóipari beágyazott rendszerek. Komponens és rendszer integráció
Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása
Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe
Webes alkalmazások fejlesztése 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia
Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting http://www.mattakis.com
Google App Engine az Oktatásban Kis 1.0 Gergely ügyvezető MattaKis Consulting http://www.mattakis.com Bemutatkozás 1998-2002 között LME aktivista 2004-2007 Siemens PSE mobiltelefon szoftverfejlesztés,
Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás
Bodó / Csató / Gaskó / Sulyok / Simon október 9. Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár
Bodó / Csató / Gaskó / Sulyok / Simon Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2016. október 9. Tudnivalók Tudnivalók: 1 Csapatok kiválasztása: a második hét végéig; 2
BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)
BarAck.Net Internetes csomagkezel Felhasználói kézikönyv V 1.0 (2011. július 20.) Tartalomjegyzék 1 Áttekintés...2 1.1 Célkitzés...2 1.2 A program felépítése...2 2 Futtatási környezet, telepítési információk...3
WordPress segédlet. Bevezető. Letöltés. Telepítés
WordPress segédlet Bevezető A WordPress egy ingyenes tartalomkezelő rendszer (Content Management System - CMS), amely legnagyobb előnye az egyszerű telepítés és a letisztult kezelhetőség és a változatos
Informatikus, Webfejlesztő. Nagy Gusztáv
Informatikus, Webfejlesztő Nagy Gusztáv 1 2 Nagy Gusztáv Programozó matematikus kb. 20 programozási nyelv, 4-5 paradigma KEFO GAMF Kar, tanszéki mérnök Egyéni vállalkozó: főleg webfejlesztés Kapcsolat:
OOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
Bevezetés Működési elv AJAX keretrendszerek AJAX
AJAX Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek Áttekintés Bevezetés Működési elv AJAX-ot támogató keretrendszerek
Oktatási anyag az MLSZ-IFA rendszerhez
Oktatási anyag az MLSZ-IFA rendszerhez Nyilvántartási szám: ISO 9001: 503/1256(2)-1177(2) BIZALMAS INFORMÁCIÓ JET-SOL JET-SOL TARTALOMJEGYZÉK 1 Sportszervezeti adminisztráció... 3 1.1 Sportszervezeti adatok
Egyetemi könyvtári nyilvántartó rendszer
RENDSZERTERV Egyetemi könyvtári nyilvántartó rendszer A rendszer célja A projekt célja egy egyetemi könyvtár nyilvántartó rendszerének megtervezése. A legfőbb követelmény, amit a rendszerrel szemben támasztok,
A mobil alkalmazás. Felhasználói útmutató - Android
Program megnevezése: Magyarország-Szlovákia Határon Átnyúló Együttműködési Program 2007-2013 Pályázat címe: HUSK JOBs portal Közös munkaerő-piaci információs rendszer A vezeto partner: Centrum pokročilých
Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás
Petőfi Irodalmi Múzeum A Digitális Irodalmi Akadémia megújuló rendszere technológiaváltás II. Partnerek, feladatok Petőfi Irodalmi Múzeum Megrendelő, szakmai vezetés, kontroll Konzorcium MTA SZTAKI Internet
Egyetemi adatbázis nyilvántartása és weben
Egyetemi adatbázis nyilvántartása és weben keresztül történő elérése Bara Levente Dező László Farkas Kinga Gere Árpád Keresztes Anna March 6, 2009 1 Contents 1 Egyetemi adatbázis nyilvántartása és weben
Java Programozó képzés A&K AKADÉMIA 2019.
Java Programozó képzés A&K AKADÉMIA 2019. Kedves érdeklődő! Engedd meg, hogy a következő oldalakon részletesebben is bemutassam képzéseink modulrendszerét! Ha további kérdéseid vannak, ne habozz, tedd
Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv
Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési
Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.
Ingyenes Mobil helpdesk megoldás A Mobil helpdesk egy olyan androidos felületen futó hibabejelentő, amelynek néhány alapbeállítását megadva saját mobil hibabejelentő rendszere lehet, vagy partnereinek
TERC V.I.P. hardverkulcs regisztráció
TERC V.I.P. hardverkulcs regisztráció 2014. második félévétől kezdődően a TERC V.I.P. költségvetés-készítő program hardverkulcsát regisztrálniuk kell a felhasználóknak azon a számítógépen, melyeken futtatni
Tudás Reflektor. Copyright 2011; Kodácsy Tamás; E-mail: kodacsy.tamas@kodasoft.hu
Tudás Reflektor A Társadalmi Megújulás Operatív Program 4.1.3. számú, A felsőoktatási szolgáltatások rendszerszintű fejlesztése Központi/felsőoktatási Validációs Rendszer projekt keretében készült olyan
PHP-MySQL. Adatbázisok gyakorlat
PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen
Adatbázis-kezelő rendszerek. dr. Siki Zoltán
Adatbázis-kezelő rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati
A TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș-Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
NEPTUN MOBIL ALKALMAZÁS FELHASZNÁLÓI SEGÉDLET
NEPTUN MOBIL ALKALMAZÁS FELHASZNÁLÓI SEGÉDLET Felhasználói dokumentáció verzió 1.0 Budapest, 2015. Változáskezelés Verzió Dátum Változás Pont Cím Oldal Kiadás: 2015.07.05. Verzió: 1.6. Oldalszám: 2 / 12
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Készült Giachetta Roberto jegyzete alapján
Mobil Informatikai Rendszerek
Mobil Informatikai Rendszerek Android NDK Native Development Kit Sicz-Mesziár János sicz-mesziar.janos@nik.uni-obuda.hu Mezei József mezei.jozsef@nik.uni-obuda.hu 2018. április 22. NDK Native Development
Zimbra levelező rendszer
Zimbra levelező rendszer Budapest, 2011. január 11. Tartalomjegyzék Tartalomjegyzék... 2 Dokumentum információ... 3 Változások... 3 Bevezetés... 4 Funkciók... 5 Email... 5 Társalgás, nézetek, és keresés...
Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.
Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens
A felhasználó a web-böngészőben megadja az alkalmazás URL-címét.(link és kedvencek használhatóak)
1. FUNKCIÓK 1.1. Adminisztráció 1.1.1. Bejelentkezés Az adott szervezet (Hitelintézet, Pénzszállító szervezet) felhasználója egy korábbi regisztráció során a rendszerbe betöltött profil és tanúsítvány
ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ
Budapest Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ Elméleti segédanyag Készítette: Kovács Dániel László 2007. november Tartalomjegyzék
A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -
Felhasználói kézikönyv. ÜFT szolgáltatás. Magyar Nemzeti Bank
Felhasználói kézikönyv ÜFT szolgáltatás Magyar Nemzeti Bank TARTALOMJEGYZÉK 1. BEVEZETÉS... 3 2. FOGALOMTÁR... 3 3. KÉSZPÉNZÁLLÁTÁSI ÜTF (KÜFT) MODUL... 3 3.1. A KÜFT MODUL FUNKCIÓI... 3 3.1.1. Pénzintézet
E-Freight beállítási segédlet
E-Freight beállítási segédlet Az E-Freight rendszer működéséhez szükséges programok és beállítások v08 A legújabb verzióért kérjük, olvassa be az alábbi kódot: 1. Támogatott böngészők Az E-Freight az Internet
A Szoftvert a Start menü Programok QGSM7 mappából lehet elindítani.
Telepítés A programot a letöltött telepítőprogrammal lehet telepíteni. A telepítést a mappában lévő setup.exe fájlra kattintva lehet elindítani. A telepítő a meglévő QGSM7 szoftver adatbázisát törli. Ezután
InCash számlázó program és a Webshop Hun rendszer összekötése
InCash számlázó program és a Webshop Hun rendszer összekötése Az InCash számlázó programkészítő cég, egy köztes programot hozott létre, amely segítségével webáruházakban generálódó megrendeléseket képes
Microsoft SQL Server telepítése
Microsoft SQL Server telepítése Az SQL Server a Microsoft adatbázis kiszolgáló megoldása Windows operációs rendszerekre. Az SQL Server 1.0 verziója 1989-ben jelent meg, amelyet tizenegy további verzió
Szülői modul. Belépés a TANINFORM rendszerbe. Főoldal
Szülői modul Belépés a TANINFORM rendszerbe Belépni vagy a bogim.hu oldalon elhelyezett linkre való kattintással vagy a https://start.taninform.hu/application/start?intezmenyindex=032552 cím böngészőbe
Mikroszámla. Interneten működő számlázóprogram. Kézikönyv
Mikroszámla Interneten működő számlázóprogram Kézikönyv Tartalomjegyzék Weboldal 2 Regisztráció 3 Bejelentkezés 4 Főoldal 6 Menüsor szerkezete 7 Számlák 8 Beállítások 9 Fizetési módszerek kezelése 10 Kedvezmények
2F Iskola fejlesztői dokumentáció
2F Iskola fejlesztői dokumentáció Tartalomjegyzék 2F Iskola fejlesztői dokumentáció...1 1. Vizió...1 2. Követelmények...1 3. Üzleti modell...4 4. Telepítési modell...6 5. Használati esetek...7 6. Felhasználói
Junior Java Képzés. Tematika
Junior Java Képzés Tematika I. Szakmai törzsanyag A tematika tartalmaz algoritmuselméletet, programozási tételeket, tipikus adatfeldolgozó feladatokat, programozási nyelvi alapelemeket, technológiai ismereteket,
Iktatás modul. Kezelői leírás
Iktatás modul Kezelői leírás 1 C.) Iktatás modul A modul kezelése történhet a menürendszerből, illetve az Iktatás modul fülén lévő ikonok segítségével. Az Iktatás modul önállóan vagy más modulok törzsadatait
Az autorizáció részletes leírása
Az autorizáció részletes leírása 1. REGISZTRÁCIÓ ÉS FELTÉTELEI 1.1 Regisztráció Az Autorizációs kérés előtt a szervezetnek vagy a magánszemélynek regisztráltatnia kell magát. A regisztrációs lapon megadott
Partner. kezelési útmutató
Partner kezelési útmutató A P&T Partner mobil alkalmazás minden Android operációsrendszerrel mûködô mobileszközön ingyenesen elérhetô a Google Play áruházból. Keresd: P&T Partner. Az alkalmazást a telepítés
FELHASZNÁLÓI KÉZIKÖNYV
FELHASZNÁLÓI KÉZIKÖNYV AZ NHKV ÁTMENETI BÉRSZÁMLÁZÓ KÖZSZOLGÁLTATÓI FELÜLETHEZ 1 / 10 TARTALOMJEGYZÉK 1 Dokumentum célja... 3 2 A program célja... 3 3 Belépés... 3 4 Kezdőképernyő... 4 5 Partner táblázat...
Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba
Importálás Külső programok által generált imp és.xml állományokat be lehet tölteni a program import funkcióival. Az ABEV2006 az xml állományok importálását nem tudta. Ez újdonság a nyomtatványkitöltő programban.
Szolgáltatási szint megállapodás
Szolgáltatási szint megállapodás Verzió: 1.1 (2017. november 30.) aai@niif.hu Tartalomjegyzék Tartalomjegyzésk 1 Műszaki szolgáltatások...3 1.1 Fájl-alapú metadata...3 1.1.1 Szolgáltatás URL...3 1.1.2
Android Wear programozás. Nyitrai István nyitrai.istvan@bmeautsoft.hu
Android Wear programozás Nyitrai István nyitrai.istvan@bmeautsoft.hu Amiről szó lesz A platformról dióhéjban Felületi újdonságok Fejlesztői környezet beállítása Értesítések Példa #1 Kommunikáció Példa
Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 12. ELŐADÁS Adatbázis-kezelés Delphiben 2 Adatmegjelenítés lekérdezés segítségével A táblákhoz hasonlóan a lekérdezések is az adatbázis
ALKALMAZÁSOK ISMERTETÉSE
SZE INFORMATIKAI KÉPZÉS 1 SZE SPECIFIKUS IT ISMERETEK ALKALMAZÁSOK ISMERTETÉSE A feladat megoldása során valamely Windows Operációs rendszer használata a javasolt. Ebben a feladatban a következőket fogjuk
Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.
Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008. Változáskezelés Verzió Dátum Változás Pont Cím Oldal Kiadás: 2008.10.30. Verzió: 2.0. Oldalszám: 2 / 11 Tartalomjegyzék 1.
BODROGKOZ.COM / HASZNÁLATI ÚTMUTATÓ
BODROGKOZ.COM / HASZNÁLATI ÚTMUTATÓ 1. Adminisztrációs felület elérhetősége: http://www.bodrogkoz.com/wp-admin/ vagy http://www.bodrogkoz.com/wp-login.php A honlap tesztidőszak alatt az alábbi címen érhető
Diákigazolvány. Belépés> Adminisztráció> Iskolai oktatás képes menü> diákigazolvány> diákigazolvány igénylés
Tartalom Új diákigazolvány igénylés folyamata... 2 1. IAR feltöltéshez szükséges jogosultságok beállítása... 2 2. Token kérés... 2 3. Új igénylés feladása... 2 Igénylések keresése, szinkronizálása... 4