Spaces:
Running
Running
| # backend/scripts/ | |
| ## Responsibility | |
| Standalone operational scripts for Firestore curriculum/profile maintenance, Firebase Storage and vectorstore transfer, curriculum ingestion, and grade migration. | |
| ## Design | |
| - Scripts use direct `if __name__ == "__main__"` entry points rather than a shared CLI framework; Firebase Admin credentials and filesystem locations come from environment/config or script constants. | |
| - Long-form import jobs separate parsing/chunking/metadata construction from persistence; upload/download jobs can use Firebase SDK or `gcloud` fallbacks. | |
| - Main operations: `seed_curriculum`, `register_metadata`, `ingest_curriculum`, `ingest_from_firebase_storage`, `backfill_all_profiles`, `migrate_grade_12_to_grade_11`, vectorstore upload/download, PDF upload/index, and lesson-module merge/upload. | |
| ## Flow | |
| 1. Resolve local curriculum/vectorstore files and initialize Firebase/Firestore or Chroma as needed. | |
| 2. Parse and normalize documents, infer curriculum metadata, chunk text, or enumerate profile/migration records. | |
| 3. Persist records to Firestore (`curriculumDocuments`, `curriculumDocs`, `subjects`, `student_profiles`, and migration collections) or Chroma `curriculum_chunks`; upload/download vectorstore and PDFs under Firebase Storage prefixes. | |
| 4. Emit progress/logging and exit status from each standalone job. | |
| ## Integration | |
| Uses `rag.firebase_storage_loader`, `services.curriculum_service._STATIC_SUBJECTS`, Firebase Admin/Storage, Firestore, ChromaDB, `pypdf`, and optional `gcloud` CLI. `ingest_curriculum.py` reads curriculum sources and writes `datasets/vectorstore/` using `BAAI/bge-small-en-v1.5`; `ingest_from_storage.py` records source metadata in `curriculumDocuments` and indexes `teacher_materials`/curriculum content. Other affected Firestore collections include `managedStudents`, `student_profiles`, `users`, and `progress`. | |