Skip to content

Telegram bot that reminds students about deadlines, exams, and more for the NUS module CS1010S Programming Methodology.

Notifications You must be signed in to change notification settings

pakshuang/CS1010S-reminder-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS1010S Reminder Bot

GitHub release (latest by date) AWS CodeBuild

Telegram bot that reminds students about deadlines, exams, and more for the NUS module CS1010S Programming Methodology Telegram Channel

Project Status

  • I intend to deploy this bot for all subsequent semesters of CS1010S for the foreseeable future
  • Any new plans will be documented in Issues

Sample

Impact

Sample

Bot Features

Frontend

  • 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

Backend

  • 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