110 likes | 224 Views
E-learning rendszer fejlesztése. Oltványi Gábor József diplomaterv bemutató Konzulens: Jaskó Szilárd 2012.07.04 ., PPKE-ITK Elektronikus oktatás szakirányú továbbképzés. Feladatkiírás. 1. „Egy tetszőlegesen választott e-learning rendszer továbbfejlesztése”.
E N D
E-learning rendszer fejlesztése Oltványi Gábor Józsefdiplomaterv bemutatóKonzulens: Jaskó Szilárd2012.07.04., PPKE-ITKElektronikus oktatás szakirányú továbbképzés
Feladatkiírás 1. „Egy tetszőlegesen választotte-learning rendszer továbbfejlesztése” • Válasszon egy létező (nyílt forráskódú) e-learning rendszert! • Ismerkedjen meg az alapelveivel, a benne használt technológiákkal (programkód, adatbázis)! • Üzemeltessea rendszert a saját gépén vagy egy szerveren! • Nézzen utána a rendszer eddigi fejlesztésének! Pl. fejlesztői közösség, fő verziók, verziókövető rendszer. • Részletezze, hogyan támogatja a SCORM szabványt az adott e-learning rendszer! • Egy tetszőleges modult fejlesszen tovább – az elektronikus oktatás szemszögéből hasznos módon! • Esetleg fogadtassa el változtatását a fejlesztő szervezettel!
Fogalmak, előzmények 2. • Távoktatás, elektronikus oktatás, e-learning,LMS, CMS, LCMS, VLE, Virtual School • Tanulásigény (LLL), képzésigény (cégek) • Szereplők: rendszergazda, adminisztrátor, oktatásszervező, tananyagfejlesztő, kurzuskészítő, oktató, hallgató • Egységesítés => szabványok, pl. SCORM • Újrafelhasználhatóság=> LO-k: Képzés, kurzus, tanóra/teszt, oldal, média-elem • Előzmények/egyéb E-learning rendszerek: • Oktatásban: ingyenes (WebCT, Atutor, Moodle) • Cégeknél: IT-multik (Oracle, iLearning, IBM L.Space) • Előzmények/Moodle fejlesztéséről • jól dokumentált: moodle.org
3. • Szoftver (LMS/CMS/VLE); Moodle Pty Ltd.; MoodlePartnerhálózat; Moodle Community (moodle.org) Modular Object-Oriented DynamicLearning Environment • Felhasználók (e-learning szerepek szerint), kurzusok, tanórák, tesztek, hallgatók előrehaladásának nyomonkövetése, chat, címkék, wiki, fórumok, hírek, belső levelezés, értesítők, kérdőívek, stb… • Technológiai alapok: • nyílt forráskódú, ingyenes, PHP-alapú keretrendszer • Keretrendszer: PHP (kódkönyvtár + adatkönyvtár – moduláris!) • Adatbázis: választható (MySQL, PostgreSQL, MSSQL, Oracle, SQLite) • JavaScript: YUI, de elvileg JS nélkül is futnia kell, modularitás! • Verziókövetés: git (verzió-branch-ek…)
Verziók és SCORM 4. • 1999, Martin Dougiamas, 2002: 1.0, 2012: 2.3. • főverzió/major/release, alverzió/minor; stable/unstable, alpha, beta, RC, heti release-ek • SCORManyagot nem lehet létrehozni a Moodle-ben, de importálni és megjeleníteni lehet, vannak letölthető demó SCORM-anyagok is a Moodle egyik oldalán. • Kurzus, szerkesztési mód Tananyag hozzáadása SCORM-csomag => egy link jelenik meg a kurzusunkban • Példa: egy teszt csomag, médiaelemekkel tarkítva…
Official Moodle git repo (git://git.moodle.org/moodle.git) MyMachine OurServer Our Moodle git repo origin My Moodle dev git repo Our Moodle site (moodle.ourserver.com) OtherMachine Moodle test site OtherMoodle dev git repo Fejlesztői modell,telepítés és üzemeltetés 5. • Cél: • elérni a Moodle legújabb frissítéseit • egy „éles” és egy „teszt” Moodle rendszert üzemeltetni • Ide saját módosításokat is fejleszteni – a saját gépünkről – esetleg egy kolléga is tudjon hasonlóan fejleszteni. • Telepítés: • Szerver-oldal: apache, php, mysql, git • moodle.git klónozása saját „origin”, éles és teszt környezetek létrehozása újabb klónozással • üres adatbázis létrehozása, moodle-telepítés követése • Fejlesztői gépen (lehet akár Windows is!): • EasyPHP – phpMyAdmin, adatbázis dump, local alias • git – klón a szerverünkről, moodle: config.php • Üzemeltetés, karbantartás, frissítés, saját fejlesztések: • git remote update, git pull, …, git checkout, git commit, git push, git rebase/merge http://gabrosz.szentjanosbogar.hu/mdl2/
Tracker, kontribúció, fejleszthető komponensek 6. • Tracker: a Moodle teendő-listája, feladatok: „issue”-k. Projektek: • Moodle; Community Sites; Mobile; • QA; Testing; Non-core contributed modules • Kontribúció: közreműködés a Moodle fejlesztésében • Ehhez meg kell felelni a „coding standards”-nek • Fő verzióhoz „Moodle” projekt-beli issue-nak kell lennie, a sajátok a „contrib”-ba mennek, ami a bővítménykönyvtárban jelenik meg (plugins) • Saját github létrehozása, issue a Trackerben (contrib + QA/Test), dokumentáció, fórumtémák. • A Moodle bővítése: pluginok (komponensek, bővítmények) • docs.moodle.org/dev/Plugins, meglévők: moodle.org/plugins • Egy komponens: • modularitás => adott mappa almappája • meghatározott elnevezések, kötelező fájlok, osztály-öröklődés pl.: /blocks/conversations/ versions.php, (edit_form.php), blocks_conversations.php, lang/en/block_conversations.php • class block_conversations extends block_base { …
Fejlesztői megjegyzések 7. • PHP: • config.php vs. install.php; lib/setup.php, lib/… • osztály-öröklődés modulonként • business logic és a template nem különül el… • régi, elavulós PHP-s stílus fellelhető (var, global) • Adatbázis: • nincs objektum-relációs leképezés (ORM) • (=> adatbázis-szerver függő is lehet a lekérdezés) • nagyjából logikus, de van redundancia… • JavaScript: • YUI ~ nem használtam, helyette jQueryt… • a YUI gyorsabb, könnyebb súlyú, és modulárisabb, szigorúbb elvekkel, a jQueryt gyorsan lehet fejleszteni • Fejlesztőeszközök: • Linux/Windows?, Virtualbox ? Eclipse/Netbeans?; Notepad++ • EasyPHP phpMyAdmin/MySQL WorkBrench; PuTTY • git – GitK, GitGUI, Git Bash (~linux shell), KDiff3 • böngészők: Firefox, Chrome, + fejlesztésre: Inspector-ok, FireBug
Conversations Block 8. • Ötlet, motiváció: • interaktív, felhasználóbarát, intelligens kommunikációs felület (chat+messaging) • nincs még hasonló plugin • Specifikáció: • block+modul integrált chat és levelezéssel, auto-frissítés, paraméterezhetőség • listázás: online felhasználók (vagy egyéb szűrés) – rájuk kattintva cset vagy levél-oldal • üzenetlistázás: felhasználónként, önfrissülő • új üzenet jelzése, olvasatlan-számláló, stb. • Implementáció: • egy központi AJAX-hívásra épül, • aminek egy paraméter-listjától függő funkciók hajtódnak végre – szerver- és kliens-oldalon is egy-egy „handle” függvény kontrollálásával. • listák betöltése: késleltetve, utána már csak frissítés • levélfolyam: korábbiak betöltése csak kérésre • Publikáció / hátra van: • a modul – csak a blokkon dolgoztam eddig • blokk funkciók, pl. chat egyesítése, chat elérhetőség • jQuery helyett YUI • fordítások
Demó 9.
Összefoglalás 10. • E-learning rendszerek alapfogalmai • Moodle vizsgálata • fejlesztésre alkalmas telepítési és üzemeltetetési modell és ennek kivitelezése • SCORM: megjeleníthető, de nem fejleszthető • fejlesztői közösség, verziók, tracker (feladattár), kontribúció feltételei • fejleszthető bővítmények, bővítménytár • Conversations block: saját fejlesztés • ötlet, specifikáció, elkészült részek és tervek