بنقرة واحدة
file-upload
File upload, parsing (PDF, PPTX, DOCX, ODT, HTML, MD), and Convex storage for lesson materials
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
File upload, parsing (PDF, PPTX, DOCX, ODT, HTML, MD), and Convex storage for lesson materials
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Convex database schema, queries, mutations, actions, and real-time subscriptions for LessonPlay
Game state machine, lobby system, question flow, scoring, and real-time game coordination
Gemini API integration for generating pedagogically-grounded game questions from lesson content
shadcn/ui patterns, game UI components, responsive layouts for classroom use
| name | file-upload |
| description | File upload, parsing (PDF, PPTX, DOCX, ODT, HTML, MD), and Convex storage for lesson materials |
Handles uploading lesson materials and extracting text content for AI processing. Supports multiple file formats via drag-and-drop, plus direct text paste as a fallback.
| Format | Extension | Parsing Library | Notes |
|---|---|---|---|
pdf-parse | Text extraction | ||
| Word | .docx | mammoth | HTML + images as base64 |
| PowerPoint | .pptx | jszip | XML text extraction |
| OpenDocument | .odt | officeparser | Full AST parsing |
| HTML | .html, .htm | Built-in | Sanitized, scripts removed |
| Markdown | .md | Built-in | Converted to HTML |
| Plain text | .txt | N/A | Direct read |
| RTF | .rtf | Built-in | Formatting stripped |
generateUploadUrl mutation → gets short-lived presigned URLContent-Type header → gets { storageId } in responsestorageId to a Convex action for parsing, or stores it in a documentFrom Convex docs: ctx.storage.generateUploadUrl() returns a Promise<string>. The POST response JSON contains { storageId: Id<"_storage"> }.
ctx.storage.get(storageId) returns Blob | null in actionsctx.storage.getUrl(storageId) returns string | null in queries/mutations (public URL)import() (not require()) for parsing libraries in Convex actionsconvex/files.ts — Upload URL generation, file parsing action