Enterprise-Grade Computer Based Test (CBT) Ecosystem. Dirancang untuk stabilitas tinggi, monitoring real-time, dan mitigasi kecurangan pada skala 100+ peserta ujian secara simultan.
- Real-time Monitoring Dashboard: Pantau status ujian, durasi tersisa, dan indikasi kecurangan siswa secara langsung (Zero-latency Firestore Listeners).
- Hybrid Data Integrity: Mekanisme Auto-Save setiap 60 detik untuk menjaga integritas jawaban saat koneksi tidak stabil.
- RBAC (Role Based Access Control): Pemisahan otoritas antara Admin Owner (Full Access) dan Admin Pengajar (Exam Management).
- Pro QR Handshake Protocol: Integrasi sinkronisasi perangkat mobile melalui rotasi token QR 5 detik untuk keamanan akses.
- Rich Content Engine: Dukungan rendering rumus Matematika (KaTeX), Rich Text (Quill), dan Media (Base64 optimized).
- Data Analytics: Ekspor hasil ujian ke format Excel (.xlsx) dengan analisis item soal secara otomatis.
- Frontend: Next.js 16 (App Router), React 19, TypeScript.
- Styling: Tailwind CSS 4, Framer Motion (Liquid-Glass UI).
- Backend: Firebase (Firestore, Auth, Hosting).
- Auth Strategy: Auth0 Enterprise Integration.
- Testing: Jest (Unit), Playwright (E2E), Firestore Security Rules Testing.
graph TD
A[Admin Dashboard] -->|Real-time Sync| B(Firestore)
B -->|Broadcast Status| C[Student Mobile App]
C -->|Auto-Save 60s| B
D[QR Handshake] -->|Token Rotation| A
D -->|Auth Verify| C
- Node.js 18.x or higher
- Firebase Project Credentials
- Clone the repository
git clone https://github.com/mirsydfchrynto/CBT-System.git
- Install dependencies
npm install
- Set up environment variables (.env.local)
NEXT_PUBLIC_FIREBASE_API_KEY=your_key AUTH0_SECRET=your_secret
- Run development server
npm run dev
Proyek ini menerapkan standar pengujian ketat untuk memastikan zero-downtime saat ujian berlangsung:
- Unit Testing:
npm test - E2E Testing:
npx playwright test - Security Audit: Verifikasi Firestore Rules & Auth0 Role Validation.
M. Irsyad Fachryanto - Fullstack Architect
- LinkedIn: muhammadirsyadf
- Portfolio: irsyad-architect.surge.sh