mathpulse-api-v3test / codemap.md
github-actions[bot]
deploy: backend from f3c9d94
cfdd165
|
Raw History Blame Contribute Delete
2.47 kB

backend/

Responsibility

FastAPI backend entry point: initializes Firebase/Firestore, authentication, middleware, model clients, and API routes; implements core AI, import, analytics, admin, and automation endpoints in main.py.

Design

  • main.py combines application bootstrap and legacy/core endpoints; domain routers are included as separate routes.* modules.
  • app_lifespan manages startup/shutdown; Firebase Admin initialization is lazy and supports service-account JSON/file and application-default credentials.
  • AuthenticatedUser, get_current_user, resolve_required_roles, and role policies centralize bearer-token verification and authorization; environment variables tune model, upload, cache, and async-task behavior.
  • Firestore is accessed through get_firestore_client; the schema is code-defined through collection/document paths rather than a standalone schema module.

Flow

  1. Import creates FastAPI app; startup validates config and initializes runtime clients.
  2. AuthMiddleware and RequestMiddleware process requests; optional SlowAPI setup installs rate-limit handling.
  3. include_router mounts domain routers; core routes authenticate/authorize, invoke inference/RAG/analytics helpers, then return typed responses or stream results.
  4. Data paths read/write Firestore and model/RAG providers; async generation stores task state for /api/tasks/{task_id} polling.

Integration

  • Router modules: rag, admin_model, admin, curriculum, diagnostic, video, quiz_battle, teacher_materials, class_records, risk, tutor_checkin, practice, try_it_yourself, ai_monitoring, class_analytics, intervention, pipeline, deepseek_rag, at_risk_resolution, fun_modules, jev.
  • Core routes include /api/chat, /api/chat/stream, /api/verify-solution, /api/predict-risk, /api/learning-path, /api/lesson/generate, /api/quiz/generate, account import, class-record upload, admin users, analytics, and /api/automation/*.
  • Firebase Auth token claims/Firestore users provide identity and role data. Other directly used collections include diagnosticResults, classRecordImports, normalizedClassRecords, classrooms, managedStudents, riskRefreshEvents, riskRefreshJobs, riskRefreshStats, and classSectionOwnership.
  • Uses middleware.rate_limiter, config.models.yaml/config.ai_pricing.py, services.*, rag.*, and top-level analytics.py/automation_engine.py.