-
Notifications
You must be signed in to change notification settings - Fork 0
Description
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
Type
Projects
Status