root / work / ekhtabr-nafsak
Active — EdTech · E-Learning

Ekhtabr Nafsak

Curriculum-aligned exam practice platform — full tests, quick quizzes, points, and certificates across all school levels

Started
2025
Repository Private / Internal

The Context

Students preparing for school exams in Egypt have two options — buy printed revision books or scroll through disconnected YouTube videos. Neither gives you the one thing that actually prepares you for an exam: doing it under realistic conditions and finding out exactly where you went wrong. Ekhtabr Nafsak was built to close that gap. It covers the full curriculum from primary through secondary, lets students run either a full timed exam or a quick subject quiz, and scores everything instantly with per-question breakdowns. To keep students coming back, a points and rewards system turns practice into a loop — earn points for completions, unlock premium exams, collect certificates, and compete for prizes. The goal is making exam prep feel less like a chore and more like a game you actually want to finish.

Architecture & Execution

The content layer is organized by curriculum level — preliminary, primary, and secondary — then by subject and grade, giving the question bank a deep hierarchical structure that supports both full syllabus exams and targeted single-topic quizzes. When a student starts a session, the exam engine assembles a question set based on mode (full exam or quick quiz), pulls it into a Redis-backed session to maintain state across interruptions, and enforces timing constraints server-side so the client can't cheat the clock. On submission, the scoring engine evaluates every answer, computes a detailed breakdown by topic, and writes the result to SQL Server. The points engine runs as a post-scoring step — it applies a configurable rule set (completion bonuses, streak multipliers, perfect-score rewards) and updates the student's balance atomically. Certificates are generated on qualifying scores and stored as downloadable assets. Firebase delivers push notifications for streak reminders, new exam unlocks, and prize eligibility alerts.

Post-Mortem Lessons

01

A question bank with thousands of entries across dozens of subjects is only as useful as its tagging. Getting the curriculum taxonomy right upfront — level, grade, subject, topic, difficulty — was the foundation everything else depended on, and retrofitting it later would have been a rewrite.

02

Redis session state for active exams saved us from a painful edge case: students losing progress on network drops. Resumable sessions with server-side state meant a reconnect picked up exactly where they left off, which killed a major source of user frustration.

03

The points system needs to feel rewarding without feeling exploitable. Balancing the rule set took more iteration than expected — too generous and students farmed easy quizzes, too stingy and they disengaged. The fix was tying multipliers to variety of content covered, not just volume.

Education Levels
3
Exam & Quick Quiz Modes
Full
Points & Rewards Engine
Live
Certificate Generation
Auto
Core Technologies
Flutter .NET 9 ASP.NET Core SQL Server Redis Firebase Cloudflare
Student App (Flutter)
          ↓
   ASP.NET Core API
    ↙      ↓       ↘
Exam     Quiz     Points
Engine   Engine   Engine
    ↓       ↓        ↓
Question Instant  Rewards
Bank     Scoring  & Certs
          ↓
  Redis (session state)
  SQL Server (records)
  Firebase (notifications)