ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
MathAI — Adaptive AI-Powered Math Learning Platform
MathAI is a full-stack TypeScript monorepo that combines adaptive AI tutoring, real-time learning intelligence, and gamification to help students (Grades 1-10) build genuine math mastery. Aligned to the Cambridge Mathematics Framework.README 전문 보기 ↗MathAI is a full-stack TypeScript monorepo that combines adaptive AI tutoring, real-time learning intelligence, and gamification to help students (Grades 1-10) build genuine math mastery. Aligned to the Cambridge Mathematics Framework.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router), React 18, Tailwind CSS, Framer Motion, React Query |
| Backend API | Node.js + Express (REST), Zod validation |
| AI | Vercel AI SDK + AI Gateway (Claude, Gemini), structured JSON responses |
| Auth | NextAuth.js (Email/password + Google OAuth), JWT |
| Database | PostgreSQL + Prisma ORM |
| Shared Types | @mathai/shared-types workspace package |
| Monorepo | Turborepo |
| Testing | Jest (149+ unit tests), Playwright (e2e) |
| Deploy | Vercel (web) + Render (API + DB) |
mathai/
├── apps/web/ # Next.js frontend
│ ├── app/ # Pages: dashboard, practice, ask, progress, profile, parent, admin
│ ├── components/mathai/ # UI components (visual renderers, cards, navigation)
│ ├── components/parent/ # Parent portal components
│ ├── components/admin/ # Admin panel components
│ ├── containers/ # State management containers
│ ├── hooks/ # React Query hooks
│ ├── lib/ # API client, mock data, utils
│ └── types/ # Frontend view contracts
├── api/ # Express REST API
│ ├── controllers/ # Request handlers
│ ├── routes/ # Route registration (16 route files)
│ ├── services/ # Business logic (18 service files)
│ │ └── learningBrain/ # Learning Brain Engine (signals, scorer, orchestrator)
│ ├── middlewares/ # Auth, admin, parent, error handling
│ ├── lib/ # Prisma client, response helpers
│ └── validators/ # Zod schemas
├── ai/ # AI intelligence layer
│ ├── services/ # AI services
│ │ ├── askMathAIService # Freeform question answering
│ │ ├── questionGenerator # AI-generated practice questions
│ │ ├── recommendationService # AI-enriched recommendations
│ │ ├── studentMemoryService # Learning memory system
│ │ ├── imageGenerationService # On-demand visual generation
│ │ └── visualExplanationEngine/ # Visual intelligence pipeline
│ │ ├── classifier # Heuristic + AI visual type classification
│ │ ├── planBuilder # mathData-driven + regex-fallback plan building
│ │ └── alignmentVerifier # Explanation-visual consistency checking
│ ├── tutor/ # Hint and explanation engines
│ └── ai_client.ts # Unified AI provider wrapper
├── curriculum/ # Cambridge-aligned topic tree + practice generator
├── services/ # Gamification engine, analytics
├── database/ # Prisma schema + migrations
├── packages/shared-types/ # Canonical API type contracts
├── types/ # Backend-internal types
└── tests/ # Unit (7 suites, 149 tests), integration, e2e
| Page | Path | Description |
|---|---|---|
| Landing | / | Hero page, redirects to dashboard if signed in |
| Dashboard | /dashboard | Student home: XP, streak, quests, Learning Brain card, practice menu |
| Practice | /practice | Practice hub + adaptive session with dynamic difficulty |
| Ask MathAI | /ask | Freeform AI tutor with visual explanations |
| Progress | /progress | Topic mastery, accuracy, weak areas |
| Profile | /profile | Learning preferences, explanation style, avatar |
| Leaderboard | /leaderboard | Student rankings |
| Parent Portal | /parent | Parent learning intelligence dashboard |
| Admin | /admin | Platform stats, user management |
Base URL: http://localhost:3001/api
All endpoints except /health require Bearer JWT auth.
| Method | Endpoint | Description |
|---|---|---|
| GET | /health | Health check (no auth) |
| GET | /dashboard/:studentId | Full student dashboard data |
| GET | /curriculum | Curriculum tree with mastery |
| GET | /curriculum/topic/:topicId | Topic detail with lessons |
| GET | /curriculum/weak-areas/:studentId | Student weak areas |
| Method | Endpoint | Description |
|---|---|---|
| POST | /practice/start | Start adaptive practice session |
| POST | /practice/submit | Submit answer (returns SessionNextStep + adaptive next question) |
| POST | /practice/hint | Get progressive AI hint |
| POST | /practice/explanation | Get full step-by-step explanation |
| GET | /practice/menu | AI-enriched personalised practice menu |
| Method | Endpoint | Description |
|---|---|---|
| GET | /learning/next | Learning Brain: next best learning action |
| POST | /tutor/ask | Ask MathAI: freeform question with visual explanation |
| POST | /tutor/generate-visual | On-demand concept image generation |
| Method | Endpoint | Description |
|---|---|---|
| GET | /progress/:studentId | Progress summary |
| GET | /daily-quests/:studentId | Active daily quests |
| GET | /gamification/dashboard | XP, level, badges, streak |
| GET | /profile | Student profile |
| PATCH | /profile | Update preferences |
| GET | /student/memory | Learning memory snapshot |
| POST | /student/memory/refresh | Force memory rebuild |
| PATCH | /student/interests | Update student interests |
| Method | Endpoint | Description |
|---|---|---|
| GET | /parent/dashboard/:childId | Parent learning intelligence dashboard |
| Method | Endpoint | Description |
|---|---|---|
| GET | /pet | Student's pet |
| POST | /pet/adopt | Adopt/rename pet |
| GET | /pet/catalog | Available pets |
| GET | /pet/insight | Parent-facing personality insight |
| Method | Endpoint | Description |
|---|---|---|
| GET | /admin/dashboard | Platform stats |
| GET | /admin/users | Paginated user list |
| GET | /admin/users/:id | User detail |
| PATCH | /admin/users/:id | Update user |
Evaluates topic mastery, misconceptions, confidence trends, hint dependency, and behavioral patterns to produce a single next-best-action recommendation.
Priority framework: Severe misconception > Confidence recovery > Revision due > Curriculum progression > Challenge opportunity
After every answer submission, evaluates in-session patterns and decides the next step: easier/harder questions, auto-hints, visual explanations, celebration, or positive session ending.
Sessions start with medium-difficulty questions. When the adaptation engine recommends difficulty changes, new questions are generated on-demand from easy/hard pools. Guardrails prevent oscillation (max 2 shifts in 3 questions, no level skipping).
Four-layer pipeline: (1) Heuristic + AI classifier picks the visual type, (2) mathData-driven plan builder creates precise renderer data, (3) Alignment verifier cross-checks explanation/mathData/plan consistency, (4) Deterministic SVG/component renderers display the result.
Two-layer system: raw learning events (DB) + cached MemorySnapshot (JSON blob, 2hr TTL). Tracks misconception patterns, confidence EWMA, hint dependency per topic, and suggested focus areas.
pnpm test:unit # 149 unit tests across 7 suites
pnpm test:integration # Integration tests (requires test DB)
pnpm test:e2e # Playwright e2e tests
| Test Suite | Tests | Coverage |
|---|---|---|
| learningBrain | 14 | Decision logic, priority framework, guardrails |
| sessionAdaptation | 13 | In-session patterns, fatigue, recovery |
| questionPoolManager | 25 | Difficulty pools, exhaustion, guardrails |
| visualExplanationEngine | 31 | Classification, plan building, Phase 1 enforcement |
| mathDataPlanBuilder | 19 | Structured math data, fallback, mapping |
| alignmentVerifier | 13 | Explanation-visual consistency, fallback |
| parentInsights | 34 | Learning score, personality, clustering, insights |
| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL connection string |
DIRECT_URL | Yes | Direct DB URL (for Prisma migrations) |
NEXTAUTH_SECRET | Yes | NextAuth session signing secret |
NEXTAUTH_URL | Yes | Web app URL |
AI_PROVIDER | Yes | anthropic, gateway, or mock |
ANTHROPIC_API_KEY | For anthropic | Anthropic API key |
AI_GATEWAY_API_KEY | For gateway | Vercel AI Gateway key |
GOOGLE_CLIENT_ID | No | Google OAuth |
GOOGLE_CLIENT_SECRET | No | Google OAuth |
NEXT_PUBLIC_API_BASE_URL | Yes | Express API base URL |
NEXT_PUBLIC_USE_MOCK_DATA | No | true to use mock data layer |
git clone <repo-url>
cd mathai
npm install
cp .env.example .env # Fill in required variables
npm run db:migrate # Run Prisma migrations
npm run dev # Start web (3000) + API (3001)
MIT