5/3/2026
Khalifah: The Online Tryout Platform That Handles Thousands of Students Without Breaking
See how NightCoders built an online tryout platform that handles 5000+ concurrent students during peak exam season without crashing.
By fathin@nightcoders.id

The Problem
Khalifah is an education technology startup focused on test preparation for Indonesian civil service (CPNS) and university entrance exams.
They needed a platform where:
Educators could create timed tryouts, manage question banks, and analyze class performance
Students could take realistic practice tests that simulate actual exam conditions
Operations could handle peak traffic during exam seasons without crashing
The Challenge
The education market is crowded with basic quiz tools. Most existing solutions fall short:
For Educators
No powerful admin tools - can't create complex tests or analyze performance
Limited question types - can't handle Indonesian exam formats
Poor analytics - get raw data dumps instead of insights
For Students
Broken timed tests - timer drifts, submissions fail, answers lost
No real exam simulation - doesn't feel like the actual test environment
Slow results - wait days for score feedback
For Operations
Can't handle traffic - crashes during peak exam seasons
No role-based access - can't secure test content before release
Expensive infrastructure - legacy LMS platforms cost a fortune
Most existing tools are either too simple (Google Forms) or too clunky (legacy LMS platforms).
Our Approach
Dual-Interface Design
We built two distinct experiences from day one:
Public-facing site for students - Clean, focused, timed test interface. No admin features visible. No distractions.
Secure admin panel for educators - Powerful tools for test creation, analytics, and user management.
This prevented feature creep in the student experience while giving admins the power tools they need. Two apps, one codebase, zero confusion.
Database-First Architecture
Tests, questions, attempts, and results are core to this product. We chose:
PostgreSQL with Drizzle ORM for type-safe queries
Proper relations between tests, questions, and attempts
Migration-driven schema for safe version updates
Every database change is tracked. Every deployment is safe.
Test Integrity by Design
Questions are stored with randomization logic - every student gets a different order. Attempts are tracked with precise timing. Results are calculated server-side to prevent client-side manipulation.
The system is designed to be trustworthy, even by students trying to game it.
What We Built
For Students
Tryout Browser View available tests with schedules, pricing, and difficulty ratings. Filter by exam type, difficulty, or date.
Timed Test Interface
Full-screen mode prevents switching apps
Question flagging for review
Section navigation with progress indicator
Visible countdown timer with warning alerts
Auto-submit when time expires
Instant Results
Immediate score breakdowns
Per-question analysis showing correct answers
Detailed explanations for every question
Historical tracking of scores over time
Personal Dashboard
Completed tryouts
Upcoming schedules
Scores over time
Performance alerts
For Educators
Test Builder Create tryouts with:
Custom schedules (open/close dates)
Pricing and pass marks
Time limits per section
Question randomization options
Anti-cheat settings
Question Bank
Add questions individually or in bulk
Rich formatting with images
Answer explanations
Tagging and categorization
Import from CSV/Excel
Participant Analytics
View all attempts with timestamps
Score distributions and averages
Time spent per question
Class-wide performance trends
Export to Excel
Announcement System Broadcast updates to all registered users. Push notifications for important announcements.
Program Pages Dedicated landing pages for different test prep tracks (CPNS, TOEFL, UTBK, etc.)
For Admins
User Management Create accounts, reset passwords, promote admins, manage roles. Three tiers: student, educator, superadmin.
Site Settings Update branding, contact info, SEO metadata, social links - all from one page.
Blog CMS Publish articles and updates through a block-based editor. Content marketing built in.
Technical Implementation
Stack
Layer | Technology |
|---|---|
Frontend | Next.js 16, React 19, Tailwind |
Backend | FastAPI, PostgreSQL, Drizzle |
Auth | Supabase Auth |
Storage | MinIO for question images |
Deployment | Docker Compose |
Key Features
Role-based access control - students, educators, admins have different permissions
Real-time scoring - results calculated server-side, delivered instantly
Scalable file uploads - MinIO handles question images and documents
Zero-downtime deployments - Docker Compose with rolling updates
The Results
Student Experience
Realistic exam simulation - feels like the actual test
Instant results - no waiting for grading
Mobile-friendly - take tests on any device
Educator Experience
Powerful test creation - complex tests in minutes
Insightful analytics - understand student performance
Self-service - no developer needed
Technical Performance
Handled 5,000+ concurrent users during peak season
Zero downtime during critical exam periods
Sub-second page loads even under load
Khalifah vs Other Solutions
Feature | Google Forms | Legacy LMS | Khalifah |
|---|---|---|---|
Timed Tests | Basic | Yes | Professional |
Analytics | None | Basic | Advanced |
Role-Based Access | No | Limited | Full |
Scalability | No | Yes | Yes |
Mobile Support | Poor | Varies | Excellent |
What This Proves About NightCoders
We build products that handle real scale under real pressure.
When thousands of students hit "Start Test" at the same time, the platform stays fast. When educators need analytics, they get insights, not raw data dumps.
We understand that education products need to be both powerful and trustworthy. One mistake in an exam platform erodes trust that takes years to rebuild.
