ExamPadi: Building an Exam Preparation Platform for Nigerian Students
Overview
ExamPadi is an exam preparation platform designed for Nigerian students preparing for JAMB (Joint Admissions and Matriculation Board) and WAEC (West African Examinations Council) standardized exams. It provides offline-first access to past questions with AI-powered explanations, adaptive learning, and performance analytics to help students study effectively before sitting their CBT exams.
The Problem
Nigerian students face critical gaps in exam preparation:
- Limited access to authentic past questions
- No structured offline learning (poor connectivity in many regions)
- Lack of AI-driven explanations for complex concepts
- No real-time progress tracking or adaptive difficulty
ExamPadi solves these by bundling past question databases with intelligent AI explanations and offline-first architecture.
Product Features
Core Functionality
- Per-Subject Offline Question Packs: Download JAMB/WAEC questions by subject and access without internet
- 3-Day Free Trial: No credit card required; full platform access to evaluate before purchasing
- Two Subscription Tiers:
- Yearly: ?8,000 (~$5 USD) – annual access to all subjects and updates
- Lifetime: ?15,000 (~$10 USD) – one-time purchase, permanent access
- AI-Powered Explanations: Claude API integration provides detailed, context-aware explanations for every question
- OTP & SMS Verification: Termii SMS/OTP service ensures secure account access
- Push Notifications: Firebase Cloud Messaging keeps students updated on new content and reminders
Learning Analytics
- Subject-wise performance tracking
- Question-level accuracy and time-per-question metrics
- Adaptive difficulty: questions become harder/easier based on performance
- Daily streak and achievement badges
Payment Integration
- Seamless in-app Paystack integration (web checkout + local verification)
- Refund-friendly trial period policy
Technical Architecture
Frontend: Flutter (Cross-Platform)
Stack: Flutter, Riverpod (state management), Drift (offline SQLite), Dio (HTTP), Go Router (navigation)
- Offline-First Design: All questions cached locally using Drift ORM; learners sync when online
- Responsive UI: Tailored for both phones (7"-12") and tablets; optimized for Nigerian device ecosystems
- State Management: Riverpod providers for clean, testable state across auth, quiz, and analytics screens
- Adaptive Difficulty: In-app algorithm adjusts question difficulty based on correctness and time spent
Separate Apps:
- ExamPadi Student: Focus on solving questions and reviewing explanations
- (Future) ExamPadi Admin: Content management, user insights, subscription oversight
Backend: Django 5.x + DRF (Django REST Framework)
Stack: Django 5.x, DRF, PostgreSQL, Redis, Celery, Nginx, Daphne/ASGI
- Question Management API: RESTful endpoints for subjects, questions, options, and explanations
- Subscription & Billing: Paystack webhook handling, subscription state management, trial expiry automation
- User Analytics: Time-series performance data (PostgreSQL) cached in Redis for fast dashboard loads
- AI Explanation Generation: Async Celery tasks queue Claude API calls for explanations (batched to manage costs)
- SMS/OTP Service: Termii integration via REST; token expiry handled server-side
- Push Notifications: Firebase Admin SDK publishes messages to subscribed devices
Data & Content
- PostgreSQL: Relational storage for users, subscriptions, questions, explanations, analytics
- Redis: Session cache, subscription state, rate limiting, async task queue
- Offline Packs: Per-subject JSON exports (compressed, ~2–5MB each) downloadable on-demand within app
- Claude API: Generates explanations asynchronously; cached in DB to avoid redundant API calls
Deployment
- VPS: Self-hosted on Hostinger (Nginx reverse proxy, Daphne ASGI server, systemd services)
- Domain: exampadi.com with SSL via Let's Encrypt (Certbot)
- Email: Postmark (django-anymail) for transactional emails (trial expiry, subscription confirmations)
- Storage: S3-compatible object storage for downloadable question packs
Why ExamPadi?
For Students
- Affordable: ?8,000/year or ?15,000 lifetime—far cheaper than ?50,000+ tutoring centers
- Flexible Learning: Offline access means study anytime, anywhere—no internet dependency
- Authentic Past Questions: Questions sourced directly from JAMB/WAEC archives via ALOC API + manual typist verification
- AI-Powered Explanations: Get instant, detailed answers without waiting for a tutor—learn why answers are correct
- Track Progress: Real-time analytics show which topics need more work before exam day
For Developers
- Modern Stack: Flutter + Django showcase for cross-platform mobile and scalable backend
- Nigerian-Focused: Addresses real UX patterns (offline-first, SMS/OTP, Paystack integration, low-bandwidth design)
- Async-Heavy: Deep dive into Celery, Redis, and background task orchestration
- Real Payments: Production Paystack integration with webhook verification
Lessons Learned
Technical Highlights
- Offline Content Sync: Drift + HTTP caching layer keeps app snappy even with 10,000+ questions
- Async Cost Control: Celery batching and caching prevent Claude API runaway costs
- SMS as Auth: Termii OTP eliminates password complexity for Nigerian users; fewer forgotten passwords
- Subscription State Machine: Clear enum-based subscription states (trial, active, expired, cancelled) prevent bugs
- Webhook Security: Verified Paystack signatures prevent unauthorized subscription claims
UX Learnings
- No "Sign Up" Form Friction: OTP-first flows (phone → OTP → auto-created account) boost trial conversions
- Offline Indicators: Visual cues (green sync icon, "cached" badges) build user confidence
- Quick Trial Activation: 3-day trial starts immediately; no email verification needed
- Local Payment: Paystack web checkout in WebView familiar to Nigerian users
Next Steps
- Content Expansion: Add O-Levels (NECO), UTME mock exams, and subject-specific tutoring videos
- Social Learning: Peer discussion threads, leaderboards, study group formation
- Analytics Dashboard: Tutor/parent view for monitoring student progress
- API for Schools: White-label ExamPadi for private secondary schools
Try ExamPadi
- iOS: Coming to App Store (Q4 2026)
- Android: Available on Google Play
- Web: Companion dashboard at exampadi.com (planned)
ExamPadi is built and maintained by SYSTEMCOG. For technical details or partnership inquiries, reach out via contact.