Backend (src/routes/learningAI.js): - POST /api/admin/learning/ai-generate * Accepts: topic text, uploaded file (PDF/TXT/MD/HTML), or Nextcloud WebDAV path * Extracts text from PDFs via pdf-parse; plain text read directly * Fetches WebDAV files using stored Nextcloud credentials * Prompts AI to return structured JSON: title, subject, body (HTML), questions[] * Strips code fences, falls back to regex JSON extraction if needed - POST /api/admin/learning/ai-refine — refine existing body with instructions - GET /api/admin/learning/webdav-browse — PROPFIND-based Nextcloud file browser - POST /api/admin/learning/webdav-path — save user's default browse path Frontend: - AI Generate button in CMS editor header (gradient purple→blue) - Panel with 3 source tabs: By Topic / Upload File / Nextcloud - Drag-and-drop file dropzone with DataTransfer API support - WebDAV file browser: navigate folders, select files, breadcrumb path - Options: question count, content type (article/quiz/pearl), model selector, instructions - Refine Current Body: prompt-driven AI rewrite of existing content - Generated content auto-fills title, subject, type, Tiptap body, quiz questions Settings: - Nextcloud section: "Learning Hub Default Browse Path" field (shown when connected) - Saves to webdav_learning_path column via /api/admin/learning/webdav-path DB: ALTER TABLE users ADD COLUMN IF NOT EXISTS webdav_learning_path TEXT
37 lines
1 KiB
JSON
37 lines
1 KiB
JSON
{
|
|
"name": "pediatric-ai-scribe",
|
|
"version": "3.1.0",
|
|
"description": "AI-powered pediatric clinical documentation platform",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"start": "node server.js"
|
|
},
|
|
"dependencies": {
|
|
"@tiptap/core": "^3.20.4",
|
|
"@tiptap/extension-color": "^3.20.4",
|
|
"@tiptap/extension-link": "^3.20.4",
|
|
"@tiptap/extension-text-align": "^3.20.4",
|
|
"@tiptap/extension-text-style": "^3.20.4",
|
|
"@tiptap/extension-underline": "^3.20.4",
|
|
"@tiptap/starter-kit": "^3.20.4",
|
|
"axios": "^1.7.7",
|
|
"bcryptjs": "^2.4.3",
|
|
"cookie-parser": "^1.4.7",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.4.5",
|
|
"express": "^4.21.0",
|
|
"express-rate-limit": "^7.4.0",
|
|
"helmet": "^8.0.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"multer": "^1.4.5-lts.1",
|
|
"nodemailer": "^6.9.16",
|
|
"openai": "^4.73.0",
|
|
"pdf-parse": "^2.4.5",
|
|
"pg": "^8.13.0",
|
|
"qrcode": "^1.5.4",
|
|
"speakeasy": "^2.0.0"
|
|
},
|
|
"optionalDependencies": {
|
|
"@aws-sdk/client-bedrock-runtime": "^3.700.0"
|
|
}
|
|
}
|