Skip to main content
All Projects
WebCompleted

Aplikasi Penilaian SITRA HMI — Sistem Manajemen Penilaian Pelatihan Berbasis Web

Januari 2024 — April 2024
Aplikasi Penilaian SITRA HMI — Sistem Manajemen Penilaian Pelatihan Berbasis Web project screenshot

Overview

Aplikasi Penilaian SITRA HMI adalah platform manajemen penilaian pelatihan berbasis web yang dibangun untuk mendukung penyelenggaraan kegiatan kaderisasi HMI (Himpunan Mahasiswa Islam), menggantikan proses penilaian manual yang rentan terhadap kesalahan dan tidak efisien. Sistem ini memiliki dua peran pengguna — Admin (Pemandu) yang bertugas mengelola data, mencatat nilai, dan memantau perkembangan peserta; serta Peserta yang dapat memantau nilai dan kehadiran mereka secara mandiri melalui dashboard personal. Penilaian dirancang secara komprehensif mengikuti taksonomi Bloom, mencakup tiga domain: kognitif (tugas, pre-test, mid-test, post-test, FGD, makalah), psikomotorik, dan afektif, dengan sistem absensi digital menggunakan QR Code yang di-scan langsung oleh peserta untuk mencatat kehadiran secara real-time.

Key Features

  • Manajemen Peserta — CRUD data peserta dengan barcode unik yang di-generate otomatis per peserta.
  • Absensi QR Code — Peserta melakukan scan QR Code untuk mencatat kehadiran secara real-time tanpa input manual.
  • Penilaian Kognitif — Pencatatan nilai tugas, mid-test, post-test, FGD (Focus Group Discussion), dan makalah oleh admin
  • Penilaian Psikomotorik — Penilaian aspek keterampilan peserta selama pelatihan.
  • Penilaian Afektif — Penilaian aspek sikap dan perilaku peserta.
  • Nilai Presensi & Kehadiran — Konversi data absensi menjadi nilai kehadiran secara otomatis.
  • Rekapitulasi Nilai — Rekap nilai gabungan seluruh aspek, dengan fitur ekspor ke file Excel.
  • Dashboard Admin — Ringkasan statistik jumlah user, peserta, materi, dan absensi.
  • Dashboard Peserta — Peserta dapat melihat nilai dan kehadiran pribadi mereka.
  • Manajemen Materi — Pengelolaan materi pelatihan dengan upload file ke Cloudinary.
  • Multi-role Auth — Sistem login terpisah untuk admin dan peserta dengan proteksi middleware.

Challenges

  • Absensi digital yang akurat — Memastikan proses scan QR Code tidak bisa dimanipulasi dan data tercatat ke database secara konsisten, termasuk menangani kondisi jaringan yang tidak stabil saat kegiatan lapangan.
  • Kompleksitas skema penilaian — Penilaian mencakup banyak komponen (6+ aspek kognitif, psikomotorik, afektif) yang harus direkap menjadi satu nilai akhir dengan bobot yang berbeda.
  • Session-based auth dengan middleware — Middleware auth.js memvalidasi role dari session sebelum mengizinkan akses ke route tertentu, memisahkan akses admin dan peserta secara bersih.
  • Upload dan penyimpanan file — Mengelola upload makalah peserta ke cloud storage (Cloudinary) dengan validasi tipe file dan ukuran yang tepat.
  • Ekspor data ke Excel — Menyusun rekapitulasi nilai dari berbagai koleksi MongoDB menjadi satu sheet Excel yang terstruktur dan mudah dibaca.

Solutions

  • QR Code per peserta — Setiap peserta mendapatkan barcode unik yang di-generate dengan bwip-js dan disimpan sebagai file PNG. Scan dilakukan via kamera browser menggunakan jsQR, sehingga tidak memerlukan perangkat khusus.
  • Modular MVC architecture — Setiap modul penilaian dipisah menjadi folder mandiri (model, controller, router) sehingga perubahan di satu aspek penilaian tidak mempengaruhi modul lain.
  • Session-based auth dengan middleware — Middleware auth.js memvalidasi role dari session sebelum mengizinkan akses ke route tertentu, memisahkan akses admin dan peserta secara bersih.
  • Cloudinary integration — File upload menggunakan multer-storage-cloudinary sehingga file langsung tersimpan di cloud tanpa menyentuh storage server.
  • XLSX export dari agregasi Mongoose — Data dari berbagai koleksi digabungkan di controller sebelum diproses library xlsx untuk menghasilkan file Excel yang siap diunduh.

Lessons Learned

  • Desain database yang matang di awal sangat krusial — Relasi antar koleksi (peserta, absensi, nilai) yang tidak dirancang dengan baik di awal menyebabkan query yang kompleks saat rekapitulasi. Perencanaan schema MongoDB sejak dini menghemat banyak waktu.
  • Pisahkan view dan logic secara konsisten — Menggunakan pola MVC secara disiplin membuat penambahan fitur baru (seperti modul penilaian baru) jauh lebih mudah tanpa perlu menyentuh kode yang sudah berjalan.
  • Middleware adalah kunci keamanan aplikasi multi-role — Mengandalkan hanya pada tampilan UI untuk membatasi akses tidak cukup; validasi role harus selalu dilakukan di sisi server sebelum controller berjalan.
  • Docker mempercepat onboarding — Containerisasi memastikan aplikasi berjalan konsisten di environment berbeda tanpa masalah "works on my machine", sangat berguna saat deployment atau kolaborasi tim.
  • Testing sejak awal mencegah regresi — Penambahan Jest + Supertest membantu memastikan endpoint kritis (login, absensi) tetap berfungsi setiap kali ada perubahan kode.