Digitális Komplex Instrukciós Program

Mi a Digi KIP?
  • Ügyfél: KLIKK
  • Év: 2018
  • Időtartam: 3 hónap
AngularAngular

Az Angular a Google által fejlesztett, JavaScript-alapú SPA (Single Page Application) keretrendszere böngészőkre.

Nagyméretű és kohézív frontend felületek fejlesztésére az egyik legalkalmasabb keretrendszer. Sok kompetitorával szemben az Angular szigorú szabályokkal rendelkezik. Ezzel utat és irányt ad a fejlesztőknek.

Mikor használjuk?
  • Nagyméretű frontendes alkalmazások esetén.
  • Adminisztrátori alkalmazások esetén.
  • Speciális dinamikus tartalom megjelenítéséhez.
DockerDocker

A Docker egy virtualizációs eszköz, mely konténeres technológiára alapul. Segítségével hatékonyabban, biztonságosabban és gyorsabban fejleszthetők, élesíthetők és üzemeltethetők az alkalmazások.

Számos előnye közül a legkiemelkedőbb, mely lehetővé teszi, hogy alkalmazásainkat egy ún. képben tároljuk. Azonban fontos kiemelni, hogy ez a kép nem összetévesztendő a virtuális gépek által használt képekkel. Egy képben tárolt alkalmazás elindítása csupán milliszekundumokat vesz igénybe, ellentétben egy virtuális géppel, melynek boot ideje is legalább másodpercekben mérendő.

Továbbá fontos megemlíteni a portolhatóságot is, ugyanis a Docker-el kompatibilis alkalmazásokat költöztetni nagyon egyszerű.

Mikor használjuk?
  • Fejlesztés közben, demó és végleges projektek kialakításához.
  • Meglévő alkalmazások portolásához.
  • On premise (helyileg kihelyezett) rendszerek üzemeltetéséhez.
  • Felhőkre tervezett alkalmazások futtatásához.
KotlinKotlin

A Kotlin egy JVM-re (Java Virtual Machine) épülő nyelv, melyet a Jetbrains fejlesztett ki és fejleszt a mai napig. A nyelv meglehetősen új. Ebből adódóan friss koncepciókkal debütált a piacra. A modern felfogásnak köszönhetően a legjobb és legfontosabb részegységeit és koncepcióit használta fel más nyelveknek (C#, Java, JavaScript, stb), így csökkentve a fejlesztők számára a bonyolult kódsorok mennyiségét és növelve a hatékonyságot.

Önmagában rendelkezik saját VM-el, de alapvetően forgatható Java kódra. Ezen túl fordítható még JavaScript-re (ECMAScript 5) is, így lehetőség nyílik arra, hogy weboldalakat, webes rendszereket fejlesszünk Kotlinban.

Mikor használjuk?
  • Új és meglévő, Java-alapú alkalmazások létrehozásához és továbbfejlesztéséhez.
PHPPHP

A PHP (Hypertext Preprocessor) egy szerveroldali scriptnyelv, melyet C-ben és C++-ban írtak meg.

Az egyik első szerveroldali nyelv, melynek segítségével dinamikus tartalom állítható elő. Korának és népszerűségének köszönhetően számos keretrendszer érhető el rá.

Mikor használjuk?
  • Asszinkronitást nem igénylő projektek vagy szegmensek esetén.
  • Egyszerűbb dinamikus tartalmak előállításához.
  • Egyedi szoftverek készítéséhez.
LaravelLaravel

A Laravel napjaink legelterjedtebb PHP keretrendszere. Gondosan megtervezett hierarchiával rendelkezik és megfelelő mértékben ad szabadságot a fejlesztők és cégek számára, hogy saját elképzeléseiket és megvalósítási konvencióikat követhessék.

Az amúgy is gyors Symfony keretrendszerre épül, melyet hatékony eszközökkel turbózott fel.

Alapvetően rendelkezik authentikációs sémával, migrációs modellel, ORM-el és még sorolhatnánk.

A sok általa nyújtott eszköz lehetőséget ad rá, hogy a valódi üzleti problémára fókuszáljon a fejlesztő és kevésbé a technológiai kihívásokra.

A nagy fejlesztői közösség által, egy hosszútávon támogatott keretrendszerről van szó.

Mikor használjuk?
  • Komplex, egyedi igényű monolit alkalmazások egyik legjobb alapja.
  • Modularizálás esetén.
  • Meglévő PHP alkalmazások portolására.

A Digi KIP projekt egy már alkalmazásban lévő analóg oktatási módszer digitalizálása. A KIP (Komplex Instrukciós Program) lényegében különböző kompetenciák szerint 4-6 fős heterogén csoportokba rendezi a diákokat. A módszer szerint specifikusan kell a diákokra meghatározni mind a csoport és egyéni feladatokat.

Egy 45 perces óra alapvetően négy fő fázisból épül fel. Első körben a tanár felfedi az úgy nevezett "Nagy Gondolatot", mely az óra témakörét és / vagy fő kérdését veti fel.

A következő fordulóban a diákok az aktuális nagy gondolathoz kapcsolódó csoportfeladatot kapnak. A feladatot közösen oldják meg.

Ezt követően az adott csoportban szereplő diákok mindegyike a beadott csoportfeladattal és a témával kapcsolatos egyéni feladatával találkozik.

A beadott csoport és egyéni feladatokat követően a diákok előadják az órai munkájukat egy pár perces idősávban. Ezt követően értékelhetik a diákok az órát.

Megrendelői igények

Az ügyfél különböző megkötéseket tett, miszerint a diákok mindegyike egy tablet készüléket fog használni landscape (elforgatott) módban. Ehhez szükséges volt egy mobil / tablet alkalmazás lefejlesztése.

Ezen túl a rendszernek teljesen interaktívnak kellett lennie. Valós időben kellett az információt eljuttatni a diákokhoz és az összes szóban forgó eszközt az aktuális óra fázisához szinkronizálni (automatikusan navigálni).

Azonban az automatikus navigálás nem egy vica verza rendszer kellett, hogy legyen. A Nagy Gondolat megjelenése után a tanár tovább engedheti a diákokat a csoportfeladatokra. Azonban vissza nem navigálhatók a diákok automatikusan. Ennek oka az, hogy feltehetően egy, vagy több csoport már megkezdte a feladatának megoldását. Ettől függetlenül azonban a diákok képesek a Nagy Gondolat fázisára egyénileg visszatérni.

Összegezve az egyértelmű előre haladás automatikus, azt követően a visszafelé történő navigálás manuális kellett, hogy legyen.

Továbbá a tanároknak is szükségük volt egy alkalmazásra, mely képes az osztályokat, órákat és órai sablonokat előállítani, lekezelni. Ezen felül igény volt egy központosított portál rendszerre is, aminek elsődleges célja a különböző Digi KIP-et alkalmazó iskolák közötti tantárgy sablonok megosztása volt. Így lehetősége van a tanároknak egy centralizált helyen megosztani saját óravázlatukat más tanárokkal, akik szintén alkalmazhatják a sablonok egészét vagy részegységét saját órájukon.

Digitalizálás megvalósításának feltételei

Hálózattervezési szempontból fontos volt az órák megtarthatóságának stabilitása, a távoli hozzáférés biztosítása a tanárok és az esetlegesen otthon maradt diákok részére. Ennek megoldására a felhő és helyi (On Premise) hibrid rendszerét készítettük el.

Valós idejű kommunikáció

Minden valós idejű információáramoltatást igénylő ökoszisztéma egyik legfontosabb komponense az erre alkalmazott technológia vagy technológiák. Felmerült a Long Polling (BOSCH) technika bevetése is, azonban mivel gyakorlatilag egységes célhardvereket szolgáltatott az ügyfél minden óra megtartásához így végül a Websocket mellett tettük le a voksunkat. Egyszerűbb volt a különböző eseményekre reagálni és kevesebb munkát is jelentett a kliens és szerver oldalon egyaránt.

Ezen túl szempont volt az is, hogy a megrendelő minimálisra kívánta szorítani a szükséges performansz mértékét. Amennyiben egy osztályban 28 diák vesz részt úgy a tanárral együtt ez legalább 29 aktív kapcsolatot jelent. Amennyiben átlagban egy évfolyaman két osztály van, ez máris 48. Általános esetben pedig 4 évfolyamot kell kiszolgálni, mely így legalább összesen 192 aktív kapcsolatot jelent.

Alkalmazott technológiák

Mivel minden iskolában helyileg kihelyezett rendszert terveztünk meg, így elkerülhetetlen volt egy lokális monolit alkalmazáscsomag létrehozása, mely Docker konténeres technológiával működik. Tartalmazza az intelligencia backend részt, mely PHP, Laravel-ben került megvalósításra. Ezen túl egy Redis RAM Cache szervert és egy MariaDB-t a relációk perzisztálásához.

A fejlesztés során megfelelő szakmai és üzemeltetési támogatást nyújtottunk az ügyfél számára. Fontos volt az elkészült helyi alkalmazások megjelenésének minősége. Igyekeztünk előtérbe helyezni a felhasználói élményt, ugyanis fontosnak tartottuk a felületek letisztultságát és intuitív megjelenését a tanárok különböző korosztályára való tekintettel.