Adaptive math practice with a local AI tutor. Students choose a topic, solve generated exercises in a notebook-style view, and get immediate feedback with solution steps. Difficulty adapts per subtopic from each student's recent answers, and a local LLM served by Ollama streams alternative explanations and progress summaries, with no cloud API keys.
Stack: Java 17 · Spring Boot · Spring Security (JWT in HTTP-only cookies) · JPA/Hibernate · MySQL · React · Vite · Material UI · Server-Sent Events · i18next (English and Hebrew, right-to-left)
- Adaptive difficulty: five levels per subtopic, from BASIC to EXPERT, adjusted from recent answer history, streaks and a cooldown.
- Generated exercises: arithmetic (addition, subtraction, multiplication, division, fractions) and geometry (rectangle, circle, triangle, polygon), each with an expected answer and solution steps.
- AI tutor: explanations and personal learning summaries streamed token by token from a local Ollama model.
- Live dashboards: progress, attempts and success rates over SSE, for students and for administrators.
- Administration: topic and subtopic management with soft delete and restore, enforced by server-side roles.
- Authentication: access and refresh tokens in HTTP-only cookies, with USER and ADMIN roles.
- Two languages: full English and Hebrew interface, with a right-to-left layout for Hebrew.
| Folder | Contents |
|---|---|
server/ |
Spring Boot API: authentication, question generation, the adaptive engine, SSE streams and the Ollama integration (details) |
client/ |
React single-page app: practice, dashboards, the admin area and localization (details) |
Requirements: Java 17+, Node.js, MySQL 8, and optionally Ollama for the AI tutor (default model: ollama pull aya-expanse:8b).
Start the API first, from the repository root:
# API on http://localhost:8080
cd server
cp .env.example .env # set the database, JWT secret and Ollama values
./mvnw spring-boot:run # on Windows PowerShell: .\mvnw.cmd spring-boot:runThen, in a second terminal from the repository root:
# Client on http://localhost:5173 (Vite proxies /api to the API)
cd client
npm ci
npm run devQuickMath was built in 2025 by a team of four. This repository brings together the original learning-system-client and learning-system-server repositories with their complete commit history.