Wolfie Logo
Wolfie
Back to Projects
TypeScriptLaTeXMathNext.js

Maturator - Infinite Math Platform

December 2025

The Problem

Preparing for the Polish Matura exam in mathematics has a fundamental flaw: you eventually run out of practice problems. Textbooks have limited exercises, past exams get memorized, and online banks are finite. Once you've seen a problem, solving it again doesn't build the same skills.

I wanted to create a platform where students could practice forever - with unique, algorithmically-generated problems every single time.

"Just make a quiz app," the reasonable part of me suggested.

The Solution

Maturator is an advanced educational platform that generates infinite, unique math problems in real-time. Unlike static question banks, every problem is created on-the-fly with randomized values, contexts, and solutions.

You can solve the same type of task 100 times, and the numbers, scenarios, and correct answers will be different every single time.

Is this overkill for exam prep? Perhaps.
Will students run out of problems? Literally impossible.

Live Webpage: maturator.vercel.app


Key Features

Infinite Problem Generation

No static databases, no memorizing answers. Every request generates fresh problems with randomized:

  • Numerical values
  • Variable names
  • Geometric configurations
  • Graph parameters

Try memorizing your way out of infinity. I'll wait.

Two Study Modes

ModeDescription
Thematic TrainingFocus on specific topics (Algebra, Geometry, Functions, Probability...)
Exam SimulatorFull-scale 30+ task simulation with 180-minute timer and detailed scoring

Dynamic Visualizations

Problems come with live-generated SVG graphics:

  • Function graphs with precise plotted curves
  • Geometric figures with labeled vertices
  • Statistical charts (histograms, box plots)
  • Coordinate systems with marked points

Yes, I checked my high school notes.

Smart Math Input

Custom input interface for easy typing of:

  • Fractions: 1/2 → $\frac{1}{2}$
  • Roots: sqrt(x) → $\sqrt{x}$
  • Powers: x^2 → $x^2$
  • Greek letters and symbols

Instant Feedback

  • Immediate validation for closed (ABCD) questions
  • Open-ended answer checking with tolerance
  • Step-by-step solution reveal

The Engine - matura-engine

This isn't just a frontend consuming a third-party API. I built the entire generation engine from scratch:

Repository: wolfie-university/matura-engine
Live API: math-api-azure.vercel.app

Because using an existing math API would've been too easy. And where's the fun in that?

12 Specialized Generator Modules

TopicCoverage
AlgebraPowers, Roots, Logarithms, Percentages
Functions (General)Properties, Linear functions, Graphs
QuadraticVertex, Roots, Inequalities, Viète's formulas
OptimizationRevenue problems, Geometry optimization
SequencesArithmetic, Geometric, General properties
Analytic GeometryLines, Circles, Intersections, Coordinates
PlanimetryTriangles, Quadrilaterals, Angles, Theorems
StereometrySolids, Angles in 3D, Cross-sections
TrigonometryIdentities, Equations, Geometry applications
CombinatoricsPermutations, Combinations, Variations
ProbabilityDice, Coins, Urns, Set operations
StatisticsMean, Median, Mode, Standard Deviation

API Endpoints

http
1
2
3
4
5
6
7
8
# Specific topic generator
GET /api/v2/generator/:topic?difficulty=medium&count=5

# Random mix of all topics
GET /api/v2/generator/random?count=10

# Full exam simulation (30+ tasks)
GET /api/v2/exam/full?difficulty=hard

Response Structure

json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
  "meta": {
    "type": "QuadraticGenerator",
    "difficulty": "medium"
  },
  "content": {
    "question_text": "Determine the vertex of the parabola:",
    "question_latex": "f(x) = 2x^2 - 4x + 1",
    "image_svg": "<svg>...</svg>",
    "variables": { "a": 2, "b": -4, "c": 1, "p": 1, "q": -1 }
  },
  "answers": {
    "type": "closed",
    "correct": "W(1, -1)",
    "distractors": ["W(-1, -1)", "W(-1, 1)", "W(1, 1)"]
  },
  "solution": {
    "steps": [
      "Formula for p: $$p = -b/2a$$",
      "Calculate: $$p = 4/4 = 1$$",
      "Calculate q: $$q = f(1) = -1$$",
      "Result: $$W(1, -1)$$"
    ]
  }
}

Difficulty Levels

LevelDescription
easySimpler numbers, fewer steps
mediumStandard exam complexity
hardExtended ranges, edge cases

Tech Stack

Frontend (Maturator)

TechnologyPurpose
Next.jsApp Router, SSR
TypeScriptType safety
Tailwind CSSStyling
shadcn/uiComponents
KaTeXLaTeX rendering
React QueryData fetching

Backend (matura-engine)

TechnologyPurpose
Node.jsRuntime
ExpressREST API
Custom SVGDynamic graphics
LaTeX stringsMath formatting

Result

Maturator demonstrates full-stack engineering with a focus on algorithmic problem generation:

  • Custom math engine - 12 topic-specific generators
  • Infinite randomization - No two problems are identical
  • Dynamic visualizations - SVG graphs generated per-problem
  • LaTeX integration - Beautiful math rendering
  • Full exam simulation - 30+ tasks, timer, scoring
  • Modern frontend - Next.js, TypeScript, shadcn
  • REST API design - Clean, documented endpoints

The platform is live and used by students preparing for the Polish Matura exam. It proves that educational software doesn't have to be static - with the right algorithmic approach, you can create unlimited learning content.

License: MIT - fork it for your own exam system!


P.S. - If you use this to pass your Matura, you're welcome. If you still fail, I take no responsibility. Math is not for everyone I guess (but I strongly do not believe it - I built 12 modules proving it).

Thanks for reading! Check out my other projects.