About CertMate


💡 What Inspired Me

I've sat through and have seen others enough certification prep cycles to know the pattern: buy a course, grind through a question bank, hope the repetition sticks, show up to the exam, and find out the hard way that the three topics you kept skipping were worth 40% of the score.

The tools haven't changed in a decade. Static question banks. No feedback loop. No intelligence. Just volume.

What frustrated me most wasn't the difficulty of the material - it was that the prep experience itself was broken. You finish 200 practice questions and still have no idea if you're ready. You don't know which topics are genuinely solid and which ones just felt familiar because you saw them last. There's no one telling you "stop doing EC2 questions - you're already at 90% there - go fix your IAM."

I wanted to build a system that actually watches how you study, identifies the exact gap between where you are and where you need to be, and does something useful about it — automatically.

That became CertMate.


🔨 How I Built It

CertMate is a full-stack web application built with React 18 + TypeScript on the frontend and Supabase as the backend for auth, database, and real-time sync.

The core of the product is the adaptive engine — a topic-level accuracy tracker that runs after every question attempt. Each question is tagged to a domain (e.g., IAM Policies, VPC Networking, Cost Management) and the system maintains a per-user, per-topic accuracy model:

$$\text{accuracy}(t) = \frac{\text{correct}(t)}{\text{attempted}(t)} \times 100$$

When a topic's accuracy drops below a threshold $\theta = 60\%$ after at least 3 attempts, it is flagged as a weak area. When accuracy drops below $\theta = 40\%$, it's escalated to critical. The drill recommendation engine then weights question selection toward critical and weak topics:

$$P(\text{select topic } t) = \frac{w_t}{\sum_{i} w_i}, \quad w_t = \begin{cases} 3 & \text{if } \text{accuracy}(t) < 40\% \ 2 & \text{if } 40\% \leq \text{accuracy}(t) < 60\% \ 0 & \text{if } \text{accuracy}(t) \geq 75\% \end{cases}$$

This ensures focused drills never waste time on topics the user has already mastered.

The AI explanation layer is powered by a Gemini API call that fires the moment a user selects an answer — before they even submit — so the explanation is ready instantly when the result card appears. Every explanation covers:

  • Why the correct answer is right
  • Why each distractor is wrong
  • A related concept to study next

The AI Tutor panel is a persistent side panel accessible from every screen — a context-aware chat interface that always knows which certification the user is studying, their current weak areas, and the last question they answered.

The frontend is styled with Tailwind CSS using a custom dark-first design token system, with Cabinet Grotesk for display headings and Geist for UI body text. Charts and analytics use Recharts.


📚 What I Learned

1. Adaptive learning is deceptively simple in theory. The math behind weak area detection is straightforward. The hard part is the UX: when do you surface the intervention, how do you phrase it so it feels helpful rather than punitive, and how do you respect the user's flow without being intrusive? I rewrote the adaptive banner three times before the timing and copy felt right.

2. AI responses need to be invisible infrastructure, not visible features. Early versions of CertMate had a big "AI Explanation" button. Users ignored it. When I made the explanation automatically appear after every answer — no button, no friction — engagement with that content jumped immediately. The best AI features feel like the product just got smarter, not like the user is accessing a feature.

3. Empty states are product moments, not UX afterthoughts. A new user landing on a dashboard of zeros is a silent product failure. Designing the zero-state — what to say, what to offer, how to guide without overwhelming — turned out to be one of the highest-leverage product decisions I made.

4. The onboarding wizard is a commitment device. Making users set an exam date in step 2 of onboarding wasn't just a UX nicety. Users who set a target date showed dramatically better session completion in early testing — because the countdown makes the stakes real.


🧱 Challenges I Faced

Supabase Realtime sync reliability Getting real-time progress updates to reflect on the dashboard without race conditions or stale state was the messiest technical challenge. The core issue was the useEffect dependency firing before the auth session resolved — causing the initial query to run as an unauthenticated user and return empty. The fix was a session ID guard, but diagnosing it cost hours.

AI explanation latency The original flow triggered the AI call after the user submitted their answer, which meant a 1–2 second blank gap before the explanation appeared. The solution was to pre-trigger the API call silently when the user hovered an answer option for more than 500ms — so by the time they submitted, the response was already waiting. This turned a noticeable lag into a zero-latency feel.

Keeping "adaptive" from feeling like surveillance Early user feedback used words like "watching me" and "tracking me" to describe the weak area detection — which was intended as a feature, but landed as a concern. The fix was framing: instead of "We detected you struggle with IAM", changing it to "CertMate noticed you're building up IAM — here's a drill to lock it in." Same data, completely different emotional register.

Scope creep from ambition I had plans for flashcards, spaced repetition schedules, a leaderboard, a streak system, and community forums. I shipped none of them. The constraint of a hackathon deadline was actually clarifying — it forced me to identify the single core value proposition (adaptive weak-area detection + AI explanations) and build only that, deeply and well.


🚀 What's Next

CertMate currently supports six certifications: AWS Cloud Practitioner, PMP, CompTIA A+, IELTS Academic, Google Analytics 4, and Claude Certified Architect.

The roadmap includes:

  • Expanding the question bank to 500+ questions per certification
  • Adding a mock exam mode with timed sessions and score reporting
  • Integrating study streak tracking and daily goals
  • Building a team / corporate plan for organisations sponsoring employee certifications

The adaptive engine is the foundation. Everything else builds on top of knowing exactly where each user needs to improve.

Built With

Share this project:

Updates