← Crafts
Math preview

Math

EdTech pilot Solo full-stack engineer

A classroom and assignment platform with Convex-backed collaboration — teachers author questions, students play games, and analytics surface struggling learners early.

Problem

Elementary math practice apps optimize for engagement but lose classroom context: who assigned what, which students are stuck, and whether content came from an algorithm or manual curation. Teachers need orchestration, not another isolated quiz app.

Math is a TanStack Router frontend with Convex as the realtime backend — roles, question schemas, game slots, notifications, and teacher analytics in one typed schema.

Domain model

  • Teacher and student roles with category validators for add/subtract, multiply, and divide tracks
  • Structured questions with choices, difficulty, and source type (algorithm, AI, manual)
  • Notification types for student activity, feedback loops, at-risk signals, and content gaps
  • Convex auth tables integrated with domain tables for sessions and progress
  • Game completion and high-score events wired into teacher-facing alerts
teacher UI Convex backend student games question bank notification stream at-risk + struggling signals
Classroom data flow
export const categoryValidator = literals("ADD_SUB", "MULT", "DIV");
export const roleValidator = literals("TEACHER", "STUDENT");
export const difficultyValidator = literals("easy", "medium", "hard");
export const sourceTypeValidator = literals("algorithm", "ai", "manual");

export const questionValidator = v.object({
    question: v.string(),
    choices: v.array(choiceValidator),
});
Math classroom dashboard placeholder
Screenshot placeholder — swap for the teacher analytics or student game view.