reacto11mecha / enpitsu

Software ujian berbasis web dan mobile apps (WIP)
https://enpitsu-olive.vercel.app
MIT License
1 stars 2 forks source link

feat: menambahkan opsi ekspor dan impor soal sebagai antisipasi apabila web admin down #44

Open reacto11mecha opened 7 months ago

reacto11mecha commented 7 months ago

Describe the feature you'd like to request

Pada hari ini (05/02/2024) diselenggarakan kegiatan "TRY OUT AKBAR UTBK SNBT TINGKAT PROVINSI JAWA BARAT TAHUN 2024" buatan http://www.jibas.net tetapi karena di selenggarakan oleh dinas pendidikan jawa barat dan peserta yang mengerjakan adalah seluruh pelajar SMA kelas 12 seluruh jawa barat. Karena banyak yang mengakses, olah karena itu server tidak bisa menangani ribuan request lebih dari peserta try out.

Fitur yang ditawarkan oleh aplikasi jibas yaitu dapat mengunduh soal dan mengerjakan soalnya, jika sudah maka bisa mengerjakan ujian sebagaimana mestinya, kekurangannya yaitu wajib mengunduh data yang sumbernya harus terhubung ke server yang sudah di set pada saat login aplikasi. Hal ini bisa menjadi backup plan ketika web admin enpitsu mengalami down akibat di hujani request yang sangat banyak.

Describe the solution you'd like to see

Kurang lebih jam 9, dipanggil ke ruang lab komputer oleh pak ari wijaya untuk mencoba untuk mengakali supaya soal bisa dikerjakan oleh semua peserta tanpa harus mengunduh dari server yang sedang down kemudian file itu disebarkan ke seluruh peserta ujian di sman 12 bekasi.

Untuk enpitsu, buat fitur yang mendukung export soal (di web admin), dan import soal pada klient (web + android). Kemungkinannya yaitu menggunakan fitur yang json miliki.

Additional information

image

INFORMASI TO AKBAR UTBK SNBT JAWA BARAT TAHUN 2024.pdf

http://www.jibas.net/

manoedinata commented 7 months ago

Ini untuk antisipasi admin down? Atau enpitsu-client nya yg down ?

reacto11mecha commented 7 months ago

Ini untuk antisipasi admin down? Atau enpitsu-client nya yg down ?

admin, jadi masih bisa lanjut ngerjain

reacto11mecha commented 7 months ago

jawabannya kan masih persist, jadi masih bisa di submit walaupun waktu nya dah abis, tapi di utamain buat fetch data latest

manoedinata commented 7 months ago

Btw persist nya di local device atau di server nya? Klo server, hit request nya nggak kebanyakan?

reacto11mecha commented 7 months ago

Btw persist nya di local device atau di server nya? Klo server, hit request nya nggak kebanyakan?

tentu lokal, berlaku di web sama native, ya kali di server

manoedinata commented 7 months ago

One thing to consider: Integritas soal. Mungkin json nya di encrypt / encode? Well, jaga-jaga aja.

reacto11mecha commented 7 months ago

One thing to consider: Integritas soal. Mungkin json nya di encrypt / encode? Well, jaga-jaga aja.

Good thing tho, paling nanti data aslinya base64, per soal kasih hash md5 buat integrity?

Kalo pg kan ada pertanyaan, sama opsi jawabannya, itu paling di concat, di bikin md5nya. Kalo esai ya pertanyaannya aja yang di bikin hashnya.

Tapi tetep kalo emang bisa ya fallback ke online, but need more investigation

reacto11mecha commented 7 months ago

Nice to have, tapi wajib fokus buat clientnya, apalagi aplikasi native belom beres

manoedinata commented 7 months ago

One thing to consider: Integritas soal. Mungkin json nya di encrypt / encode? Well, jaga-jaga aja.

Good thing tho, paling nanti data aslinya base64, per soal kasih hash md5 buat integrity?

Kalo pg kan ada pertanyaan, sama opsi jawabannya, itu paling di concat, di bikin md5nya. Kalo esai ya pertanyaannya aja yang di bikin hashnya.

Tapi tetep kalo emang bisa ya fallback ke online, but need more investigation

Up to you brother

manoedinata commented 7 months ago

Nice to have, tapi wajib fokus buat clientnya, apalagi aplikasi native belom beres

Ayo ceffat

reacto11mecha commented 7 months ago

Sabar le, masih sekolah ini

reacto11mecha commented 7 months ago

Update, soal di cache 2 jam ditambah data peserta di cache 2 minggu, 1000+ data peserta otomatis hit redis pas fetch data endpoint exam, paling beban ya awal fetch data peserta, kalkulasi jawaban esai, sama cek dia curang atau udah ngumpulin jawaban. Query cek curang sama udah ngumpulin jawaban udah pake prepared statement.

Paling masuk akal opsi export import ini ngerjain pake "offline mode", peserta udah load file soalnya, ngerjain, terus ke beranda lagi. Submit gimana? Masukin kode soal sesuai soalnya, scroll ke bawah submit atau disebut "online mode". Mungkin perlu ngecache si data dari file ke react query sih biar ga beban banget, tapi kalo nanti di reload setelah di cache ya sama aja boong, bakalan fetch dari server lagi.

Si file itu nanti isinya metadata sama soalnya. Metadata itu ada judul, waktu mulai & selesai, juga kode soal.

Dan jadi catatan juga, fitur ini kepake kalo darurat doang.