Aplikasi versi 0.1
Aplikasi ini dibangun ditujukkan untuk:
- pelaksanaan ujian esai online dengan batas waktu,
- penilaian ujian esai otomatis berdasarkan pola-pola esai yang telah dinilai oleh guru,
- dan tracking perkembangan nilai ujian esai siswa,
Aplikasi belum sempurna terkait pengelolaan data master akademik (masih CRUD biasa), dan tidak menghandle skenario raport maupun kenaikan kelas.
Aplikasi ini dibangun dengan menggunakan bahasa Python 3.7, database MySQL (minimal versi 5), Broker (rekomendasi Redis min v4 atau RabbitMQ), dan berjalan diatas sistem operasi Linux x64.
Cara instalasi
-
Siapkan Python 3.7, database MySQL, dan broker yang berjalan di sistem operasi Linux. Buat virtual environtment pada folder yang akan anda sediakan untuk aplikasi.
-
Buat database untuk aplikasi ini dan import semua file ujian_app.sql.
-
Buat user staf tata usaha yang akan menambahkan data master (kelas, matapelajaran, akun guru, dan akun siswa), dengan eksekusi
INSERT INTO `staftu` (`nama`, `username`, `password`) VALUES ('Nama Staf TU', 'tu_user', SHA1('tu_password'));
di database MySQL anda. -
Install semua pustaka yang dibutuhkan dengan cara eksekusi
python -m pip install -r req.pip
. -
Install aplikasi dengan cara eksekusi
python -m pip install PenilaianUjianEsaiOtomatis-0.1.0-cp37-cp37m-linux_x86_64.whl
-
Simpan dan ubah file konfigurasi config.ini di root, sesuaikan akses database MySQL dan akses brokernya.
-
Konfigurasi
wsgi.py
pada web server production yang anda miliki. Jalankanrun_app.py
tanpa WSGI tambahan tidak direkomendasikan untuk production. -
Jalankan
run_cworker.py
dan jadikan daemon untuk memproses penilaian esai manual dan penilaian esai otomatis.
Keterangan file konfigurasi config.ini
[APP]
ENV = diisi production bila jalan, diisi development hanya untuk kepentingan pengembangan
DEBUG = diisi False jika tidak ingin debug, diisi True jika ingin debug aplikasi
PASS_HASH = diisi False jika anda ingin menyimpan plain teks password di database tanpa hash/enkripsi, diisi True jika anda ingin menyimpan SHA1 dari password pengguna di database
[DB]
URI = URI database. Contoh mysql+cymysql://username:password@localhost:3306/ujian_app
POOL_SIZE = jumlah pool koneksi database
POOL_RECYCLE = waktu dalam satuan detik untuk recycle pool yang ada
POOL_PRE_PING = lakukan pengecekan dengan cara ping koneksi database
[CELERY]
BROKER_URL = URI broker untuk background tugas penilaian manual/otomatis, contohnya: redis://localhost:6379/0
RESULT_BACKEND = URI backend untuk data antrian tugas manual/otomatis, contohnya: db+mysql://username:password@localhost:3306/ujian_app