Skip to content

Telegram Bot that notifies students about schedule changesΒ #1

@rTexty

Description

@rTexty

Issue: Schedule Change Notification Bot for BMP Specialists

Title

Build Telegram Bot for Broadcasting Schedule Change Notifications to Student Groups

Description

Background

The university regularly changes class schedules, requiring quick and reliable communication with affected students. Currently, there is no automated system to notify students about these changes. We need to create a Telegram bot that allows BMP specialists to send schedule change notifications to specific student groups efficiently.

Objective

Develop a Telegram bot that enables BMP specialists to select target student groups (filtered by education level, year, and course type) and send schedule change notifications to all users in those groups through direct Telegram messages.

Requirements

Functional Requirements

1. User Authentication & Authorization

  • BMP specs will be specified
  • Only BMP specs have access to functionality

2. Main Menu Navigation

The bot displays two main buttons on startup:

  • Main Courses - for notifications about core/mandatory courses
  • Electives - for notifications about elective courses

From this BMP SPECIALIST = User

3.Workflow (Main Courses path)

User follow this step-by-step selection process:

Step 1: Education Level

  • Display available education levels (e.g., Bachelor, Master, PhD)
  • User selects one level

Step 2: Academic Year

  • Display available years based on selected education level (e.g., 1st year, 2nd year, 3rd year, 4th year)
  • User selects one year

Step 3: Student Groups

  • Display all student groups for the selected education level and year
  • Support multiple group selection (checkboxes or multi-select buttons)
  • User can select one or more groups

Step 4: Message Composition

  • After group selection, prompt user to enter the notification message
  • Display a preview before sending
  • Request confirmation before broadcasting

4. Message Broadcasting

  • Retrieve Telegram usernames from the student database for selected groups
  • Send the notification message to all selected users
  • Log all sent messages (message content, recipient groups, timestamp, sender) (optional)

5. Similar Workflow for Electives

  • The "Electives" path should follow the same structure but filter groups by elective courses
  • Reuse the filtering logic where applicable

Non-Functional Requirements

1. Data Management

  • Input: Student lists with group assignments and Telegram usernames (CSV, JSON, or database)
  • Database: Use PostgreSQL or similar to store student data and message logs
  • Ensure data consistency and referential integrity

2. Performance & Reliability

  • Bot should handle multiple concurrent BMP specialists without conflicts
  • Message broadcasting should complete within reasonable time (e.g., 100 messages/minute)
  • Implement error handling for network failures and invalid Telegram usernames

3. User Experience

  • Navigation should be intuitive with clear button labels
  • Allow users to go back or cancel at any step
  • Error messages should be clear and actionable

4. Security & Privacy

  • Do not store sensitive personal data unnecessarily
  • Use environment variables for API keys and secrets
  • Implement rate limiting to prevent abuse

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

Status

πŸ“‹ Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions