Overview

PickYourCourses is a Telegram bot for École Polytechnique students to share and read course reviews. It lets students browse courses, rate them, and vote on each other’s reviews, all from within Telegram. The bot is written in TypeScript, organised into webhook handlers, data models, business-logic services, and utilities.

The project is fully open-source and built to be adaptable: anyone who would like to deploy the same course-review system for their own university is free to take the code, swap in their own course catalogue, and stand it up on their own infrastructure.


Features
  • Course review system with ratings (overall, quality, difficulty)
  • Course categorization and browsing
  • Voting system for reviews
  • Administrative functions
  • Rate limiting and session management

Architecture

The bot is designed to run serverless on AWS Lambda, with:

  • DynamoDB for data persistence
  • API Gateway for webhook handling
  • CloudWatch for logging and monitoring

The codebase is built and deployed through npm scripts (build, dev, lint, deploy:dev, deploy:prod), compiling TypeScript down to the dist/ directory for deployment.