Telegram bot that reminds students about deadlines, exams, and more for the NUS module CS1010S Programming Methodology Telegram Channel
- I intend to deploy this bot for all subsequent semesters of CS1010S for the foreseeable future
- Any new plans will be documented in Issues
- Everyday, reminders for the day and the next 2 days are compiled into a single message
- This message is nicely formatted with direct hyperlinks for assignments, emojis, font styles, and also uses Inline Keyboard Markup for links to the learning portal Coursemology and to subscribe to the Channel.
- This message is broadcast on the Telegram Channel and the Channel automatically pushes to the Telegram Supergroup for the semester
- Some tasks have multiple deadlines, only the relevant dates (and respective EXP values) are shown.
- The components of the reminder message are:
- Academic task reminders
- Level progress tracking
- Exam countdowns
- CI/CD pipeline: Pushing to the private repository sends a webhook to AWS CodeBuild which pulls from the public and private repositories and triggers a new AWS Lambda build
- GitHub Webhooks for triggering AWS CodeBuild
- AWS CodeBuild for building
- AWS Simple Notification Service to notify me about the AWS CodeBuild build state
- AWS Lambda for hosting
- AWS EventBridge for scheduling the AWS Lambda function
- Beautiful Soup 4 for the web scraping of Coursemology for deadline data
- Primarly Pandas for the generation of reminder messages
- Telegram Bot API for broadcasting reminders