Handwriting AI & Writing Development Platform
Every Student Receives A Personalized AI Writing Coach That Continuously Improves Writing Skills Throughout Their Educational Journey. Combines Gemini vision OCR/quality analysis with teacher-authoritative bulk assignment evaluation. Entirely Elite tier.
Implementation note: digital ink/stylus capture, animated stroke-by-stroke demonstrations, and interactive whiteboard integration are deferred — paper-photo upload is the shipped capture method, matching the precedent set by Storybook AI (Chapter 24) of deferring native-dependency/asset-heavy features. Bulk teacher uploads process sequentially in-process (no message-queue infrastructure exists in this codebase yet) with a polled session status, rather than a background worker queue.
Features
Handwriting Capture & AI Analysis
- Camera/file upload (JPG, PNG, PDF) analyzed via Gemini vision — OCR digitization plus 5 scored dimensions: legibility, formation, spacing, alignment, consistency
- Falls back gracefully with a queued-analysis message if Gemini is unavailable, matching Storybook AI's fallback pattern
- Supports English, Hindi, Telugu, Tamil, Kannada, and Malayalam scripts
- Web: /dashboard/student/handwriting/upload — Mobile: handwriting-upload.tsx (camera + gallery via expo-image-picker)
Rolling Writing Profile & Learning Plans
- HandwritingProfile recomputes a rolling average from the student's last 10 samples after every evaluation — no single bad session drastically moves the score
- Beginner / Intermediate / Advanced level and improving/stable/declining trend, derived automatically from scores
- AI-generated personalized learning plan (target areas, weak letters, exercises, daily practice minutes) — requires at least one evaluated sample first
- Web: /dashboard/student/handwriting, /handwriting/practice — Mobile: handwriting.tsx, handwriting-practice.tsx
AI Writing Copilot & Practice Sheets
- Conversational coach answers questions like "Why is my score low?" or "Give me practice exercises" using the student's live profile as context
- Personalized practice-sheet PDF generation targeting the student's specific weak letters (via pdfkit, reusing the existing document-generation utility)
- Web: /dashboard/student/handwriting/copilot — Mobile: handwriting-copilot.tsx
Teacher Bulk Assignment Evaluation
- Teacher uploads a batch of handwritten work (up to 40 images); each is OCR'd and AI-scored sequentially, session status (uploaded → processing → ready_for_review → completed) is polled by the client
- AI output is advisory only — the teacher reviews, edits, and finalizes every score/feedback before it becomes the official record
- Finalized evaluations create real HandwritingCapture records, feeding the exact same profile/badge/intervention pipeline as self-uploads
- Web: /dashboard/teacher/handwriting/evaluate — Mobile: handwriting-evaluate.tsx
Early Intervention Engine
- Flags a student only after 3+ consecutive weak evaluations (never a single session) — teacher and parent are both notified
- Nightly cron re-scans every active profile in case scores decayed without a fresh capture; auto-clears the flag once recovery is sustained
- No medical diagnosis is made — flags recommend a referral, not a diagnosis, per the BRD's business rule
- Web: /dashboard/teacher/handwriting/at-risk — Mobile: handwriting-at-risk.tsx
Writing Analytics, Badges & Growth Passport
- Student, class, and school-level analytics — score trends, common formation errors, level distribution, grade & language comparisons
- Milestone badges (level-up, excellence threshold) auto-issued via the existing DigitalBadge model (Chapter 23) and surfaced on the student's portfolio
- Parent Writing Dashboard: current score, trend, recent samples, and badges — weekly digest notification summarizes the week's activity
- Web: /dashboard/teacher/handwriting/analytics, /dashboard/admin/handwriting, /dashboard/parent/handwriting
API Reference — Chapter 25
Sample Upload, Profile & History (Elite)
/api/handwriting/uploadStudent uploads a handwriting sample for AI analysis
/api/handwriting/:captureIdGet a single evaluated capture
/api/handwriting/profile/:studentIdGet a student's rolling handwriting profile
/api/handwriting/history/:studentIdEvaluation history for a student
/api/handwriting/badges/:studentIdWriting milestone badges
Learning Plan, Practice Sheets & Copilot (Elite)
/api/handwriting/plan/:studentIdGet the student's current learning plan
/api/handwriting/plan/generateGenerate/refresh a personalized learning plan
/api/handwriting/practice-sheetGenerate a personalized practice-sheet PDF
/api/handwriting/copilotAI Writing Copilot conversational query
Teacher Bulk Evaluation & Intervention (Elite)
/api/handwriting/evaluation-sessionTeacher creates a bulk evaluation session
/api/handwriting/evaluation-session/:sessionId/uploadUpload up to 40 files for AI pre-scoring
/api/handwriting/evaluation-session/:sessionIdGet AI-scored results for teacher review
/api/handwriting/evaluation-session/:sessionId/finalizeTeacher finalizes scores — becomes the official record
/api/handwriting/at-riskStudents flagged for early intervention
Analytics & Parent Dashboard (Elite)
/api/handwriting/analytics/student/:studentIdStudent trend, weak dimensions
/api/handwriting/analytics/classTeacher: level distribution, common errors, at-risk count
/api/handwriting/analytics/schoolAdmin: grade-level trends, language-wise performance
/api/handwriting/parent/child/:studentIdParent Writing Dashboard overview (parentOf-checked)
Frontend Pages
| Path | Role | Description | Tier |
|---|---|---|---|
| /dashboard/student/handwriting | Student | Handwriting Home — profile score, quick links, recent samples | Elite |
| /dashboard/student/handwriting/upload | Student | Camera/file upload for AI analysis | Elite |
| /dashboard/student/handwriting/progress | Student | Score trends, dimension breakdown, badges | Elite |
| /dashboard/student/handwriting/practice | Student | Learning plan & practice sheet generation | Elite |
| /dashboard/student/handwriting/copilot | Student | Conversational AI Writing Copilot | Elite |
| /dashboard/student/handwriting/storybook | Student | Storybook Writing Mode — handwritten story responses | Elite |
| /dashboard/teacher/handwriting | Teacher | Handwriting AI home & quick stats | Elite |
| /dashboard/teacher/handwriting/evaluate | Teacher | Bulk handwritten assignment evaluation | Elite |
| /dashboard/teacher/handwriting/analytics | Teacher | Class writing performance analytics | Elite |
| /dashboard/teacher/handwriting/at-risk | Teacher | Early intervention flagged students | Elite |
| /dashboard/parent/handwriting | Parent | Child's writing dashboard, progress & badges | Elite |
| /dashboard/admin/handwriting | Admin / Super Admin | School-wide writing analytics & at-risk overview | Elite |
Mobile
Under app/(student)/:handwriting.tsx (profile & recent samples),handwriting-upload.tsx (camera capture via expo-image-picker),handwriting-progress.tsx,handwriting-practice.tsx, andhandwriting-copilot.tsx. Under app/(teacher)/:handwriting.tsx (entry point),handwriting-evaluate.tsx, andhandwriting-at-risk.tsx. Underapp/(parent)/:handwriting.tsx, built on the pre-existinguseChildSwitcher hook. Admin school-wide analytics is web-only, consistent with other chapters' moderation/analytics surfaces.