diplomaterv_ElOkt_OltvanyiGaborJozsef_QASEL9

Download Report

Transcript diplomaterv_ElOkt_OltvanyiGaborJozsef_QASEL9

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
1.
Feladatkiírás
„Egy tetszőlegesen választott
e-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)!

Üzemeltesse a 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!
2
2.






Fogalmak, előzmények
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
3.

Szoftver (LMS/CMS/VLE); Moodle Pty Ltd.; Moodle Partner
hálózat; Moodle Community (moodle.org)
Modular Object-Oriented Dynamic
Learning 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…)
4
4.
Verziók és SCORM

1999, Martin Dougiamas, 2002: 1.0, 2012: 2.3.

főverzió/major/release, alverzió/minor; stable/unstable,
alpha, beta, RC, heti release-ek

SCORM anyagot 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…
5
Fejlesztői modell,
telepítés és üzemeltetés
5.

Cél:
elérni a Moodle legújabb frissítéseit
Official
MyMachine
› Moodle
egy „éles” és egy „teszt” Moodle rendszert üzemeltetni
OurServer
› git
Iderepo
saját módosításokat
is
fejleszteni
–
a
saját gépünkről – esetleg egy
Our Moodle
My Moodle
kolléga is tudjon hasonlóan
fejleszteni.
(git://git.moodle.org/
git repo origin
dev git repo
moodle.git)
›

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
Our Moodle site
újabb klónozással
Moodle
 üres adatbázis létrehozása, moodle-telepítés követése
test site
› Fejlesztői gépen (lehet akár Windows is!):
(moodle.ourserver.com)
OtherMachine
 EasyPHP – phpMyAdmin, adatbázis dump, local alias
OtherMoodle
dev git repo
 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/
6
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 { …
7
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
8
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
9
9.
Demó
10
10.
Összefoglalás

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
11