You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A self-maintaining FAQ + community Q&A portal. Combines semantic vector search, AI-powered ingestion, and an expert promotion layer so the right answer is in front of a user before they finish typing.
What it does
Four zero-touch pillars, in order of automation:
Ingest — Zoom recordings, manual uploads (PDF/DOCX/XLSX/images), and webhooks feed a knowledge base. No human scheduling or categorising.
Answer — Unanswered community posts are auto-matched against the knowledge base every 24h via semantic search. High-confidence matches are auto-posted; low-confidence escalate to admins.
Quality — Approved FAQs are re-evaluated every 6h for drift, contradictions, and staleness. Drift is auto-flagged.
Lifecycle — User deletion is anonymisation, not destruction. Reputation, attribution, and audit history persist.
Key features
Hybrid search — vector + keyword + Reciprocal Rank Fusion. Auto-falls-back to keyword when vector search is empty.
Public FAQ portal — no-auth browse path, batch-scoped, with popularity ranking and guest analytics.
Community Q&A — posts + threaded comments + upvotes + AI auto-answer; admin escalation flow.
Session Support — student issue tracker with 4-step troubleshooting checklists, evidence uploads, admin follow-ups.
Golden Tickets — admin-promoted high-priority support requests with Spurti Points (SP) economy and 48h cooldown.
Embedding model swap: Xenova/multi-qa-mpnet-base-dot-v1 (768-dim) → mixedbread-ai/mxbai-embed-large-v1 (1024-dim, SOTA MTEB 64.68). Now routed through the HuggingFace Inference API when HUGGINGFACE_API_KEY is set, with a fall-back to the in-process ONNX pipeline. The retrieval-tuned query prompt (Represent this sentence for searching relevant passages:) is auto-prepended for queries via generateQueryEmbedding().
Schema + data audit pass — 3 critical, 4 high, 7 medium, 6 low fixes across the 29 Mongoose models. See docs/schema-audit.md.
Race-condition sweep — all 8 findByIdAndUpdate + save() anti-patterns in user-facing controllers (comments, bookmarks, FAQ, posts, golden tickets) replaced with atomic $set / $addToSet / $pull.
Live-data seed — npm run seed:live populates 20 community posts, 8 support tickets, 2 zoom meetings, badge awards, search logs, and a populated leaderboard. Idempotent.