Tech Stack
Bagian ini memberikan gambaran umum tentang teknologi-teknologi utama yang digunakan dalam Sistem Web Assessment dan Smartlab. Arsitektur dibangun dengan framework dan teknologi modern untuk memastikan skalabilitas, pemeliharaan, dan kinerja yang optimal.
Frontend
- Nuxt.js. Sebuah hybrid framework yang dibangun di atas Vue.js untuk rendering sisi server dan pembuatan situs statis. Nuxt.js memungkinkan aplikasi untuk berjalan baik sebagai Single Page Application (SPA) maupun Server-Side Rendered (SSR), memberikan fleksibilitas untuk berbagai kasus penggunaan. Dalam sistem ini, digunakan untuk antarmuka dashboard admin, memberikan pengalaman yang mulus bagi administrator sistem.
- Vue 3. Sebuah framework JavaScript progresif yang digunakan untuk membangun frontend platform assessment, menawarkan antarmuka yang modern, reaktif, dan berbasis komponen untuk para peserta.
Backend
- NestJs. Sebuah framework Node.js progresif yang digunakan untuk backend Admin dan Assessment. Framework ini menyediakan struktur yang kokoh dan skalabel untuk mengelola API, business logic, dan layanan real-time.
Services
-
PeerJs. Sebuah library JavaScript untuk memungkinkan komunikasi peer-to-peer (P2P) antara klien menggunakan WebRTC, digunakan dalam sistem proctoring.
-
Socket.IO Sebuah library yang digunakan untuk komunikasi real-time berbasis event-driven antara klien dan server. Digunakan dalam sistem untuk menangani sinkronisasi dan komunikasi real-time antar peserta dan admin selama assessment berlangsung.
-
Turn Server Sistem ini menggunakan coturn sebagai server TURN untuk menyalurkan lalu lintas media ketika koneksi peer-to-peer langsung tidak memungkinkan, memastikan komunikasi yang lancar di jaringan yang terbatas.
-
Database
-
PostgreSQL: sebuah database relasional open source untuk menyimpan data terstuktur.
-
Redis: Penyimpanan in-memory key-value yang digunakan untuk caching data dan session management, meningkatkan performa untuk data yang sering diakses.
-
-
Storage
-
gRPC: digunakan untuk komunikasi antara Main Backend dan layanan Penyimpanan untuk mengunggah aset.
-
NFS (Network File System): Digunakan oleh main backend untuk mengambil aset dari sistem penyimpanan.
-
-
Web Server and Proxy
- Caddy: Sebuah web server dan reverse proxy digunakan untuk menangani lalu lintas HTTPS dan mengarahkan permintaan klien ke layanan yang sesuai. Dalam sistem ini, Caddy juga dgunakan untuk mengelola sertifikat SSL (self-signed untuk deployment berbasis IP).