Aplikasi ini dibuat untuk keperluan saya dalam ppdb untuk masuk SMA. Karena website ppdb tidak mungkin menghandle koneksi realtime dengan jumlah user sampai ribuan atau ratusan ribu, saya membuat aplikasi yang mengambil data memakai puppeteer dengan teknik fetch data setiap 2,5 detik (XHR Long Polling), dan menampilkannya ke tampilan web.
Clone repositori ini dan install package yang diperlukan.
pnpm installCopy file .env.sample dan ubah namanya menjadi .env. Isikan variabelnya, contoh:
CITY=KOTA BEKASI
LEVEL=sma
TYPE=negeri
SCH_NPSN=20231718
OPTION_TYPE=prestasi-rapor
Keterangan :
CITY: Kota/Kabupaten yang diperlukan untuk mengambil data seluruh sekolah disatu kawasan.LEVEL: Pilihan jenjang sekolah. Valuenyasma,smk, atauslb. Pastikan huruf kecil.TYPE: Tipe sekolah yang dituju,swastaataunegeri.SCH_NPSN: ID unique sekolah, data ini didapatkan setelah menjalankanpnpm getSchools.OPTION_TYPE: Jalur pendaftaran, valuenya bisa berupaabk,ketm,kondisi-tertentu,perpindahan(Perpindahan tugas ortu / Anak Guru),prestasi(Kejuaraan),prestasi-rapor, danzonasi.
Jangan lupa untuk menambahkan value untuk keys CITY, LEVEL, TYPE, dan OPTION_TYPE. Instruksi dibawah ini perlu dijalankan mendapatkan SCH_NPSN, jalankan
pnpm getSchoolsSetelah menjalankan akan ada folder baru bernama folder info yang didalamnya ada file json. Ambil salah satu value npsn untuk mendapatkan data berdasarkan sekolah spesifik. Untuk mendapatkan pdf list pendaftar sesuai OPTION_TYPE yang sudah di tetapkan, jalankan perintah
pnpm pdf-reportSetelah menjalankan ini akan ada folder result yang didalamnya ada folder pdf. Akan ada file pdf yang berhasil diambil dari website ppdb yang mungkin sudah disortir.
Jika ingin mendapatkan pdf dengan banyak sekolah, copy file pdf.config.js.sample menjadi pdf.config.js, isikan array variable schools untuk daftar sekolah yang ingin diambil datanya. Untuk OPTION_TYPE, secara otomatis akan mengambil data berdasarkan keseluruhan jalur yang diterima oleh sekolah yang bersangkutan.
Catatan: nama sekolah harus ada di folder info semua file json yang berada dalam folder info, jika tidak ada maka akan terjadi error karena tidak ada data npsn sekolah.
Jalankan
pnpm pdf-report-a-lotPeriksa folder result/pdf yang sama, file pdf yang dihasilkan.