Tuesday, 7 March 2017

Elasticsearch

Status : Draft

Untuk proses pencarian teks, gambar dan persamaan matematika Bank Soal menggunakan elasticsearch [1].

Konfigurasi Elasticsearch 



Ketika menggunakan settingan default, terkadang, query ke soal Kimia terjadi error berikut :

Caused by: org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024

Ketika menaikkan nilai indices.query.bool.max_clause_count di banksoal//elasticsearch/elasticsearch- 5.0.0/config/elasticsearch.yml menjadi 10000

indices.query.bool.max_clause_count: 10000
Alhamdulillah, error nya lenyap.

Referensi


  1. Belajar Bareng Elastic Search http://elastic.openthinklabs.com/ 





Saturday, 7 January 2017

Dokumentasi : Backup & Restore

Status : Draft

Disini kita ingin melakukan backup database dan folder upload setiap hari pada pukul 12 siang. 

Buat script backup di ~/bin/backup.sh

#!/bin/bash

hari=$(date +"%A")

pg_dump --file "/backup/banksoal/postgresql/$hari.sql" --host "localhost" --username="banksoal" -w --verbose --role "banksoal" --format=c --blobs "banksoal"

mkdir -p /backup/banksoal/webapps/upload/$hari

rsync -zavh /opt/www/banksoal/application/webroot/upload /backup/banksoal/webapps/upload/$hari

Buat entri cron :

$crontab  -e

# m h  dom mon dow   command
0 12 * * 1 /home/openthinklabs/bin/backup.sh
0 12 * * 2 /home/openthinklabs/bin/backup.sh
0 12 * * 3 /home/openthinklabs/bin/backup.sh
0 12 * * 4 /home/openthinklabs/bin/backup.sh
0 12 * * 5 /home/openthinklabs/bin/backup.sh
0 12 * * 6 /home/openthinklabs/bin/backup.sh

.pgpass


nano ~/.pgpass
localhost:5432:banksoal:banksoal:password

Format :

hostname:port:database:username:password

sudo chmod 600 ~/.pgpass
sudo chown user.postgres ~/.pgpass 

Friday, 6 January 2017

Dokumentasi : Database

Status : Draft

soal


soal.id_status_soal dan soal soal.status_akhir

soal.id_status_soal nilainya ada 4 kemungkinan :

1;"Diterima"
2;"Diterima dengan perbaikan"
3;"Ditolak"
0;"Belum direview"
4;"Ditolak Admin"

soal.status_akhir nilainya ada 2 kemungkinan, yaitu 1 jika soal.id_status_soalnya bernilai 1 dan 0 jika soal.id_status_soalnya bernilai selain 1. 

soal.status_akhir sama dengan 1, artinya soal tersebut dapat digunakan dalam set, jika nilainya 0, soal tersebut tidak dapat digunakan dalam set. 

Wednesday, 23 November 2016

Instalasi Bank Soal di NGINX

Status : Draft


Konfigurasi NGINX



server {
        #listen 80 default_server;
        #listen 443 ssl;

        server_name banksoal.np;
        #ssl_certificate /etc/nginx/ssl/nginx.crt;
        #ssl_certificate_key /etc/nginx/ssl/nginx.key;

#tuning: https://www.monitis.com/blog/6-best-practices-for-optimizing-your-nginx-      performance/

worker_processes 8;
worker_connections 1024;
gzip on;
gzip_proxied any;
gzip_types text/plain text/xml text/css application/x-javascript;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
access_log off;


        root /opt/www/banksoal/application/webroot;

     
        error_log /var/log/nginx/banksoal/error.log;

        fastcgi_read_timeout 25920000s;
client_max_body_size 500M;

        location / {
                try_files $uri /index.php/$uri?$args;
        }

        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                if (!-f $document_root$fastcgi_script_name) {
                        return 404;
                }
                include fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param   PATH_INFO               $fastcgi_path_info;
                fastcgi_param   KOHANA_ENV PRODUCTION;
                fastcgi_pass fpm73;
        }
}

/etc/nginx/conf.d/fpm.conf

upstream fpm {
        server unix:/run/php/php7.0-fpm.sock;
}

 /etc/php/7.0/fpm/php.ini

upload_max_filesize = 500M
post_max_size = 500M
memory_limit = ..sesuaikan dgn memory yg tersedia, lebih besar lebih baik..

 /etc/php/7.0/fpm/pool.d/www.conf 

pm.max_children = 40
pm.start_serveres = 15
pm.min_spare_servers = 15
pm.max_spare_servers = 25

Untuk konfigurasi yg lebih tepat bisa baca : https://dev.to/jake/configuring-php-fpm-for-high-network-traffic-47le

Monday, 15 August 2016

Dokumentasi : Daftar Set Soal - Per Kumpulan Mata Pelajaran

Menu : Generate Soal > Per Kumpulan Mata Pelajaran

Bobot (C)


Rumus : Jenjang Kemampuan + (0.2 * Tingkat Kesulitan * Jumlah Soal dengan Kemampuan dan Kesulitan yang sama pada Naskah)

Bobot


Rumus : 0.2 * Tingkat Kesulitan * Jumlah Soal dengan Kemampuan dan Kesulitan yang sama pada Naskah

Thursday, 14 April 2016

Dokumentasi : Pengacakan Soal

Status : Draft

Pendahuluan


Pengacakan Soal 


Proses Mengacak Soal Secara Otomatis 


...

Pengacakan Jawaban Soal 


....

Melihat Kemiripan Antara Set Soal

Generate Soal > Kemiripan Set Soal
.....

Melihat Distribusi Penggunaan Soal 

.....

Referensi


  1. Opsi Jawaban dapat diacak, https://github.com/OpenThinkLabs/SistemInformasiBankSoal/issues/101