Overview
Each lesson has its own Q&A thread. Anyone enrolled in the lesson's parent course can post a question; anyone enrolled — including the course tutor — can answer.
Q&A is modelled as two entities: LessonQuestion and LessonAnswer. Questions can have multiple answers; one answer per question can be marked accepted by the question owner or the tutor.
Asking a question
- Open any lesson you have access to.
- Scroll to the Q&A tab below the video.
- Click Ask a question.
- Title your question clearly, then add a body explaining what you're stuck on. LaTeX is supported (
$x^2$). - Optionally attach a timestamp from the lesson — answers will link back to that point in the video.
- Click Post.
Answering a question
- Click any question in the thread to expand it.
- Type your answer in the reply box. LaTeX and inline images are supported.
- Click Post answer.
Tutor answers get a "Tutor" badge automatically. Student answers can still be just as helpful — the upvote and accept mechanics surface the best regardless of who wrote it.
Accepting the best answer
The original poster (or the course tutor) can mark one answer as accepted. Accepted answers:
- Show a green checkmark.
- Pin to the top of the answers list.
- Award the answerer some XP (see Streak & XP).
You can change the accepted answer at any time if a better one comes in later.
Upvotes
Any enrolled student can upvote questions and answers via POST /api/lesson-qa/[type]/[id]/upvote. Each user gets one vote per item (toggling un-votes). Upvote counts determine the sort order on the thread by default.
Upvoting a question signals "I have the same question"; upvoting an answer signals "this answer helped me too".
Moderation
- Tutors can edit or delete any post in their own lessons.
- Authors can edit their own post for 15 minutes after posting (typo fixes), or delete it.
- Flagged posts are reviewed by the platform admin queue. Repeated spam triggers an automatic mute for the offending account.