Reminders¶
Students get the recap of their latest summarized lesson before their next lesson.
How scheduling works¶
- Each student has an optional
next_lesson_at, set by the teacher on the dashboard. - Every
REMINDER_INTERVAL_MINUTES(default 15), the API checks for students whose next lesson starts withinREMINDER_LEAD_HOURS(default 24). - Each enabled channel is tried once and logged in
reminders. The(student, next_lesson_at)pair is the dedup key, so restarts and repeated ticks never send twice. - Teachers can also press Send last recap now on a student card
(
POST /api/students/{id}/remind).
Telegram¶
- Create a bot with @BotFather and copy the token into
TELEGRAM_BOT_TOKEN. - The student opens the bot and presses Start.
- Find the student's chat ID. For example, open
https://api.telegram.org/bot<TOKEN>/getUpdatesafter they message the bot and readmessage.chat.id. - Enter the chat ID on the student's card and enable Telegram reminders.
Note
A /start <code> deep-link that links students automatically is on the roadmap.
Email (Resend)¶
- Create an API key at resend.com and set
RESEND_API_KEY. - Verify your sending domain in Resend and set
EMAIL_FROM, e.g.Chalkback <[email protected]>. - Email reminders are on by default for every student.
Emails include an HTML version (headline, recap, key points, practice, "Open the board" button)
and a plain-text fallback. Delivery code is in api/app/notify.py.