v2.0.0
Release v2.0.0
We are pleased to present version 2.0.0, a landmark release that introduces an adaptive learning system powered by performance tracking and intelligent recommendations. This major version upgrade transforms the application from a static question generator into a personalized learning platform that adapts to each user’s strengths and weaknesses. Alongside this breakthrough feature, v2.0.0 brings extensive calculus expansions, enhanced data management, improved print worksheet functionality, and numerous dependency upgrades.
New Features
-
Adaptive Learning System
A newadaptivemodule tracks user performance per topic and difficulty level, storing accuracy and response time metrics in the database. The system powers two core capabilities:- Dynamic Difficulty & Topic Recommendations – Based on past performance, the application recommends the next optimal difficulty and topic to focus on, helping users target their weak areas.
- Weak Topics Modal – A dedicated popup displays topics where the user has shown below‑average performance, with suggestions for practice. A “Recommend Topics” button in the top toolbar triggers this modal.
- Performance Statistics Dashboard – A new
get_performance_statscommand retrieves aggregated metrics (total attempts, correct answers, accuracy, average response time) filterable by difficulty and time range, enabling future analytics visualizations. - Adaptive Learning Toggle – The feature can be enabled or disabled via a checkbox in the settings panel (enabled by default), giving users full control.
-
Comprehensive Performance Data Management
- New Database Tables –
user_topic_statsstores per‑topic, per‑difficulty performance metrics;scorestable extended withidfield for individual record management. - Data Cleanup Commands –
delete_scoreremoves individual score records;reset_all_dataclears both scores and performance statistics. - Hard Reset Button – A “Manage performance data” button in the UI opens a modal allowing users to view all stored data, delete everything, or refresh the display.
- Topic Validation – Scores can only be saved when a topic is selected, preventing empty entries.
- New Database Tables –
-
Calculus Question Expansions
The calculus module has been significantly extended with dozens of new question types across multiple areas:- Limits & Continuity – Added conceptual limit questions (average vs. instantaneous velocity), more limit cases, and refined handling.
- Derivatives – New types: logarithmic differentiation, inverse trigonometric derivatives, advanced implicit differentiation, and conceptual instantaneous rate problems.
- Applications of Derivatives – Five new optimization problems: rectangle optimization, box optimization, cylinder optimization, fencing optimization (river‑adjacent pasture), and ladder‑over‑fence optimization.
- Integrals – Advanced topics: inverse trigonometric integrals, completing the square, logistic model, improper integrals (vertical asymptote), polar arc length, parametric arc length.
- Sequences & Series – Added geometric series, nth term test, limit comparison test, Taylor series for cos(x) and ln(1+x), series operations, and p‑series refinements.
- Parametric, Polar, & Vector – New types: polar arc length, parametric arc length (general), polar area between curves, vector dot product of derivatives.
- Graphical Calculus – AP‑style slope field questions (sketch, match, reason) and equilibrium solutions / phase lines.
- Advanced Integration – Logistic full analysis, completing‑the‑square inverse trig, and more.
-
Print Worksheet Improvements
The worksheet generation feature has been completely overhauled for reliability:- Replaces manual HTML parsing with direct LaTeX interception via MathJax/KaTeX API hooks, eliminating timing issues.
- Removes the print preview UI, simplifying the user experience.
- Uses global
currentQuestionLatexvariable to preserve raw LaTeX source. - Worksheet font changed to “Times New Roman” for improved print readability.
-
Strong Typing for Topics and Difficulties
IntroducesTopicIdandDifficultyenums usingderive_moreandstrum, replacing string‑based identifiers throughout the backend. This improves type safety, serialization, and maintainability. -
Enhanced Settings and UI
- Added “Adaptive Learning” toggle in settings panel.
- Added “Show Weak Topics Popup” toggle to control automatic display (default on).
- Replaced text‑based “Recommend Topics” button with an icon button for visual consistency.
- Improved topic pill styling and container heights for better touch targets and readability on mobile.
Improvements
-
Backend Refactoring
- Reorganized imports and standardized code formatting across multiple modules.
- Replaced direct JSON construction with typed
Recommendationstructs. - Improved error handling in score saving and leaderboard updates.
- Added detailed logging in answer checking for easier debugging.
-
Database Enhancements
- Added
migratefeature tosqlxfor future schema migrations. - Updated
load_scoresquery to includeidcolumn. - Normalized SQL indentation and improved query consistency.
- Added
-
Frontend Code Quality
- Added comprehensive JSDoc headers to
session.ts,dataManagement.ts,weakTopics.ts, and other files. - Standardized string quotes to double quotes across multiple modules.
- Fixed missing method calls and null‑safety issues in modal handling.
- Removed redundant file path comments and outdated references.
- Added comprehensive JSDoc headers to
-
UI Polish
- Adjusted
.question-displayfrom flexbox to inline‑flex for proper layout. - Increased topic pill padding and reduced font size for better fit.
- Improved mobile spacing and touch targets.
- Adjusted
-
Security Fix
- Resolved a code scanning alert (exception text reinterpreted as HTML) by properly escaping error messages.
Breaking Changes
This release introduces no breaking changes to existing user workflows. All new features are opt‑in (adaptive learning can be disabled) and backward‑compatible with previous data. However, the version is incremented to 2.0.0 because the adaptive learning system fundamentally changes the application’s value proposition from a static generator to a personalized learning tool, representing a major evolution.
Dependency Updates
- mathjs: upgraded from 15.1.1 to 15.2.0
- vite: upgraded from 8.0.3 to 8.0.8
- sqlx: upgraded from 0.7.4 to 0.8.1
- time: upgraded from 0.3.46 to 0.3.47
- tar: upgraded from 0.4.44 to 0.4.45
- rustls-webpki: upgraded from 0.103.9 to 0.103.10
- anyhow, bumpalo, cc, chrono, wasm‑bindgen, web‑sys: various patch updates
- Removed
ahashas it is no longer needed. - Added new dependencies:
derive_more,strum,strum_macros,bit-set,bit-vec,wasm-encoder,wasm-metadata,wasmparserfor enhanced WebAssembly support and enum utilities.
Full Changelog
For a comprehensive enumeration of all changes, please consult the comparison between v1.11.0 and v2.0.0.
We welcome user feedback and encourage the reporting of any issues or suggestions through the project’s GitHub repository. Your input remains invaluable to the continued improvement of RandMatQuGeA.
Thank you for using RandMatQuGeA. Version 2.0.0 marks a new era of intelligent, adaptive math practice – and we are excited to see how it helps you master mathematics more effectively than ever.
If you are using a Windows AMD64 (x64) machine, download the release with “x64-setup.exe” in its name.
If you are using an Intel Mac, download the release with “x64.dmg” in its name.
If you are using an Apple Silicon Mac (M‑series chip), download the release with “aarch64.dmg” in its name.
If you are using Linux (x86_64), download the release with “.AppImage” or “.deb” in its name.