How nv-duymanh/mathvisionkid works
MathVision Kids combines student handwriting recognition and arithmetic checking with teacher review, tutoring, and administrative tools. The main student flow prepares a captured image, submits it through the business API, and uses the AI runtime for OCR and analysis before returning a result for confirmation or review. The README documents OCR routing; sampled source shows the AI service’s routes and backend submission dependencies. Other product capabilities are represented at subsystem level where their implementation was not sampled.
Main entry points: api Business API · recognition Capture and results · SubmissionService.java Submission handling · main.py AI service routes
Components 19
Student learning
- Capture and results
apps/student-mobile/src/app/recognition - Image preparation
apps/student-mobile/src/features/recognition/image/imagePipeline.ts - Recognition client
apps/student-mobile/src/features/recognition/api/RecognitionService.ts - Tutor client
apps/student-mobile/src/features/tutoring/api/TutorService.ts
Business backend
- Business API
backend/business-api/src/main/java/com/mathvisionkids/api - Submission handling
backend/business-api/src/main/java/com/mathvisionkids/api/submission/SubmissionService.java - Image storage
backend/business-api/src/main/java/com/mathvisionkids/api/storage/ObjectStorageService.java - AI analysis gateway
backend/business-api/src/main/java/com/mathvisionkids/api/analysis/AiAnalysisGateway.java - Accounts and classes
backend/business-api/src/main/java/com/mathvisionkids/api/admin/AdminService.java - Audit records
backend/business-api/src/main/java/com/mathvisionkids/api/audit/AuditEvent.java
AI runtime
- AI service routes
ai/runtime/app/main.py - OCR endpoint
ai/runtime/app/api/ocr.py - Row localization
ai/runtime/app/api/generalized_pipeline.py - Model recognition
ai/runtime/app/recognition/model_engine.py - Tutoring runtime
ai/runtime/app/api/tutor.py
Educator tools
- Teacher review
apps/teacher-web/src/App.tsx
Administration
- Admin console
apps/admin-web/src/App.tsx - Recognition analytics
apps/admin-web/src/pages/RecognitionAnalyticsPage.tsx
Other components
- Student
Connections 19
- Student → Capture and results: uses
README.md - Capture and results → Image preparation: prepares image
apps/student-mobile/src/features/recognition/image/imagePipeline.ts - Capture and results → Recognition client: submits recognition
- Recognition client → Business API: calls API
- Business API → Submission handling: routes submissions
backend/business-api/src/main/java/com/mathvisionkids/api/submission/SubmissionService.java - Submission handling → Image storage: stores images
backend/business-api/src/main/java/com/mathvisionkids/api/submission/SubmissionService.java - Submission handling → AI analysis gateway: requests analysis
backend/business-api/src/main/java/com/mathvisionkids/api/submission/SubmissionService.java - AI analysis gateway → AI service routes: dispatches analysis
- AI service routes → OCR endpoint: mounts OCR route
ai/runtime/app/main.py - Business API → OCR endpoint: uses OCR routes
README.md - AI service routes → Model recognition: checks readiness
ai/runtime/app/main.py - Model recognition → Row localization: recognizes rows
- Capture and results → Tutor client: requests tutoring
- Tutor client → Tutoring runtime: calls tutor API
- Teacher review → Business API: uses business services
- Admin console → Business API: uses business services
- Admin console → Recognition analytics: routes analytics
apps/admin-web/src/App.tsx - Business API → Accounts and classes: administers accounts
backend/business-api/src/main/java/com/mathvisionkids/api/admin/AdminService.java - Accounts and classes → Audit records: records audit events
backend/business-api/src/main/java/com/mathvisionkids/api/admin/AdminService.java