....
36. oat-sa/extension-tao-testcenter
....
37. oat-sa/extension-tao-test-runner-plugins
....
3. extension-tao-clientdiag
taoClientDiagnostic, Browser and OS diagnostic tool
Ektension ini digunakan untuk memeriksa OS dan browser dari client. Untuk demo dapat melihat di :
https://florida-auth.taocloud.org///index .
Menu ke extension ini seharusnya dapat otomatis dibuat muncul di halaman login, melalui entrypoint (config/tao/entrypoint.conf.php) tapi dokumentasinya masih minim, jadi sementara, kita kustom (branch extension-tao-clientdiag-custom) dulu dengan mencontoh guestaccess entrypoint.
5. PCI/PIC (Portable Custom Interactions) development
TextReaderInteraction
Instalasi pciSamples dapat juga dilakukan dengan command line : php tao/scripts/installExtension.php pciSamples
Text reader digunakan untuk menampilkan soal berbentuk paragraf. Jika ingin paragraf berdampingan dengan soal-soalnya [4], kita bisa mengaktifkan opsi multi-column, maka kita perlu meng-aktifkan opsi 'multi-column' pada konfigurasi :
config/taoQtiItem/qtiCreator.conf.php
6. extension-tao-task-queue ( taoTaskQueue )
Untuk informasi lebih lanjut terkait extension ini, silahkan baca dokumentasinya https://hub.taotesting.com/techdocs/tao-task-queue/readme-distributed-task-queue atau git reponya https://github.com/oat-sa/extension-tao-task-queue
Server
Apache
Untuk menghindari
error yg dijelaskan disini, ubah :
/etc/httpd/conf/modesecurity/modsecurity.conf
and increase this value from 1310720(128K) to higher:
SecRequestBodyLimit 1310720
Nginx
Untuk menghindari Error: 0 : timeout dari TAO,
Disini dibuat agak besar, karena untuk Dashboard yg menyebar qti packages ke beberapa server, harus dicari solus yg lebih baik dari ini.
Nginx 504 Gateway Timeout / Nginx 502 Bad Gateway
nginx.conf fastcgi_read_timeout 60000s;
keepalive_timeout 60000;
php.ini
max_execution_time = 60000
default_socket_timeout = 60000
php-fpm.d/www.conf
request_terminate_timeout = 60000
Membuat item test secara programatik
Roles
Di TAO ada beberapa roles : Global Manager, Item Author, Lock Manager, Operational Administrator, REST Publisher, Readiness checker, Reviewer Role, System Administrator, Task Queue Manager, Test Author, Test Taker, Test XML Editor
1. Global Manager
..
2. Item Author
...
3. Lock Manager
...
4. Operational Administrator
...
5. REST Publisher
...
6. Readiness checker
...
7. Reviewer Role
...
8. System Administrator
...
9.Task Queue Manager
...
10. Test Author
...
11. Test Taker
...
12. Test XML Editor
....
Rest API
Redis
Untuk skalabilitas TAO, sebaiknya Kita menggunakan Redis, karena jika tidak, ketika test taker, peserta ujian > 200 orang, maka TAO akan kewalahan melayani, jika menggunakan MySQL jika konfigurasinya tidak optimal, CPU usage nya akan sangat tinggi, jika konfigurasi php-fpm, tidak optimal, diawal ujian, ketika peserta > 200 orang, terkang tiba-tiba php-fpm hang. Dengan menggunakan redis, diharapkan, kendala seperti diatas, tidak terjadi lagi.
Konfigurasi yang harus diubah :
config/taoDelivery/execution_service.conf.php
config/generis/uriProvider.conf.php
config/tao/stateStorage.conf.php
config/tao/session.conf.php
config/generis/auth.conf.php
config/generis/persistences.conf.php
config/taoDelivery/execution_service.conf.php
return new oat\taoDelivery\model\execution\implementation\KeyValueService(array(
'persistence' => 'deliveryExecution'
));
config/generis/uriProvider.conf.php
return new core_kernel_uri_AdvKeyValueUriProvider(
array(
'persistence' => 'uriProvider',
'namespace' => LOCAL_NAMESPACE.'#'
)
);
config/tao/stateStorage.conf.php
return new tao_models_classes_service_StateStorage(array(
'persistence' => 'serviceState'
));
config/tao/session.conf.php
return new common_session_php_KeyValueSessionHandler(array(
common_session_php_KeyValueSessionHandler::OPTION_PERSISTENCE => 'session'
));
config/generis/auth.conf.php
return new oat\oatbox\config\ConfigurationService(array(
'config' => array(
array(
'driver' => 'oat\\authKeyValue\\AuthKeyValueAdapter'
),
array(
'driver' => 'oat\\generis\\model\\user\\AuthAdapter',
'user_factory' => 'generis/userFactory'
)
)
));
config/generis/persistences.conf.php
return new oat\generis\persistence\PersistenceManager(array(
'persistences' => array(
'default' => array(
'driver' => 'dbal',
'connection' => array(
'driver' => 'pdo_pgsql',
'driverClass' => null,
'instance' => null,
'host' => 'localhost',
'dbname' => 'dbname',
'user' => 'username',
'password' => 'password',
'driverOptions' => array()
)
),
'serviceState' => array(
'driver' => 'phpredis',
'host' => '127.0.0.1',
'port' => 6379
//'driver' => 'phpfile'
),
'cache' => array(
'driver' => 'phpfile'
),
'session' => array(
'driver' => 'phpredis',
'host' => '127.0.0.1',
'port' => 6379
//'driver' => 'phpfile'
),
'deliveryExecution' => array(
'driver' => 'phpredis',
'host' => '127.0.0.1',
'port' => 6379
),
'uriProvider' => array(
'driver' => 'phpredis',
'host' => '127.0.0.1',
'port' => 6379
),
'authKeyValue' => array(
'driver' => 'phpredis',
'host' => '127.0.0.1',
'port' => 6379
),
'default_kv' => array(
'driver' => 'phpredis',
'host' => '127.0.0.1',
'port' => 6379
//'driver' => 'phpfile'
),
'maintenance' => array(
'driver' => 'phpfile'
)
)
));
php index.php 'oat\authKeyValue\action\ActivateKeyValueAuthentication' --persistence authKeyValue
Installl Redis di Mac :
/usr/local/opt/php\@7.3/bin/pecl install redis
Jika mengalami masalah dengan Tao DeliveryExecution tracking service dengan redis, cara hack sementaranya.
dapat dibaca di diskusi ini.
Untuk selengkapnya baca [5]
Bahasa
Untuk mengupdate bahasa, menambah bahasa, seperti bahasa Indonesia di TAO dapat menjalankan perintah :
php tao/scripts/taoTranslate.php -force -v -a create -l id-ID -ll 'Indonesia' -u=username -p=password -e tao,ltiDeliveryProvider,taoGroups,taoMediaManager,taoTests,taoCe,taoItems,taoOutcomeUi,taoTestTaker,taoDelivery,taoQtiItem,taoDeliveryRdf,taoLti,taoQtiTest,taoClientDiagnostic,funcAcl,pciSamples,qtiItemPci,qtiItemPic,taoBackOffice,taoEventLog,taoProctoring,taoResultServer,taoRevision,taoDacSimple
download paket terjemahan untuk versi tao Anda, lalu jalankan :
./pootle_export_to_tao.sh tao34 id-ID .
Lalu agar muncul pada pilihan bahasa, jalankan (cukup dijalankan sekali saja, kalau lebih dari sekali, sistem akan error) :
php tao/scripts/taoRDFImport.php -v -n -u=username -p=password http://www.tao.lu/Ontologies/TAO.rdf# -i tao/locales/id-ID/lang.rdf
Lakukan merge terjemahan :
./merge_all_translations.sh id-ID
Google Cloud
JMeter
Stress Test TAO dengan JMeter.
Migrasi Server / Backup & Resptore
define('ROOT_URL','http://cbt.openthinklabs/'); #pastikan akhirannya menggunakan forward slash (/)
Backup database yang digunakan : mysql/postgresql jika menggunakan redis, redis dibackup juga. Selain itu, backup juga folder-folder berikut pada directory data TAO Anda ; private/ , itemDirectory/ dan taoQtiTest.
Troubleshooting
Debugging
config/generis/log.conf.php
return new oat\oatbox\log\LoggerService(array(
'logger' => array(
'class' => \oat\oatbox\log\logger\TaoMonolog::class,
'options' => array(
'name' => 'tao',
'handlers' => array(
array(
'class' => \Monolog\Handler\StreamHandler::class,
'options' => array(
'/opt/webapps/tao/logs/tao.log',
\Monolog\Logger::DEBUG
)
)
)
)
)));