Manage birthday submissions, shop products, printables, and orders.
Only authorized administrators can access this panel.
Access denied. Your account is not authorized.
Loading...
Loading...
All question types in one CSV: practice, quiz, content_bank, and mini-games.
Each row is one question. All go to the central question_bank collection.
Required columns: subchapter_id, chapter_id, type, difficulty, prompt, choices (pipe-separated), correct_answer, isPublished
Optional columns: id, image_id, emoji, question_number, strand, tier, challengeType, visual, game_config
Questions are pulled randomly — no need to number them!
or drag & drop a CSV file here
Questions for arcade mini-games (Sound Splash, Trace Lab, Pattern Play, etc.).
These use challengeType + strand + tier instead of chapters/subchapters.
Required: challengeType, strand, tier, promptText, options (pipe-separated), correctAnswer, isPublished
Optional: id, visual, imageKey, promptAudioText, emoji, isActive
All rows write to the central question_bank collection with type: "content_bank".
or drag & drop a CSV file here
The intro screen shown at the start of each sub-chapter. One row per sub-chapter.
CSV columns: subChapterId, introTitle, introText, introImageUrl, introAudioUrl
or drag & drop a CSV file here
The lesson for each sub-chapter. Each lesson is a short video (.mp4). One row per sub-chapter.
CSV columns: subChapterId, lessonTitle, videoUrl
Upload videos via the Media Upload tab first, then paste the URL here.
or drag & drop a CSV file here
Upload media files. Name files to match their IDs — the app automatically finds them.
Questions: name file = image_id value → upload to question_images
Arcade: name file = imageKey value → upload to content_images
Intros/Lessons: name file = subChapterId (e.g., counting-1-to-5.png) → upload to matching folder
or drag & drop files here (PNG, JPG, MP4, MP3)