A Telegram bot that automatically monitors and notifies you about ULAB (University of Liberal Arts Bangladesh) course result updates from the URMS system.
- Automatic Monitoring: Checks for result updates every 2 hours
- Smart Notifications: Only notifies you when results are actually updated (no spam!)
- Course Selection: Choose specific courses to monitor
- Instant Checks: Manual result checking with
/checknowcommand - Pagination: View all your courses in organized pages
- Secure: Personal bot with user authentication
- In-Memory Storage: No database required, all data stored in memory
- Python 3.8 or higher
- A Telegram account
- ULAB URMS credentials (Student ID and Password)
- Telegram Bot Token (from @BotFather)
-
Clone the repository
git clone https://github.com/zenjahid/ULAB-Result-Monitoring-Bot.git cd ULAB-Result-Monitoring-Bot -
Install required packages
pip install -r requirements.txt
-
Create a
.envfileCreate a
.envfile in the project root and add:BOT_TOKEN=your_telegram_bot_token_here AUTHORIZED_USER_ID=your_telegram_user_id_here
- BOT_TOKEN: Get this from @BotFather on Telegram
- AUTHORIZED_USER_ID: Your Telegram user ID (you can get it from @userinfobot)
-
Run the bot
python main.py
- Open Telegram and search for @BotFather
- Send
/newbotand follow the instructions - Copy the bot token provided by BotFather
- Paste it in your
.envfile
- Open Telegram and search for @userinfobot
- Start the bot and it will show your user ID
- Copy your ID and paste it in your
.envfile
- Start the bot on Telegram
- Send
/startto see the welcome message - Set your credentials:
/setcred 221014099|yourpassword - View your courses:
/showcourses - Set courses to monitor:
/setcourses ENG2821 CSE4099 - The bot will automatically check every 2 hours and notify you of updates!
| Command | Description |
|---|---|
/start |
Display welcome message and bot information |
/setcred student_id|password |
Set your ULAB URMS credentials |
/showcourses |
View all your courses with pagination |
/setcourses CODE1 CODE2 |
Set specific courses to monitor |
/checknow |
Manually check for result updates |
/status |
View bot status and monitored courses |
/stop |
Stop monitoring and clear all data |
1. /setcred 221014099|mypassword123
β
Credentials Verified!
π Found 45 courses in your record.
2. /showcourses
π Available Courses (Page 1/5)
1. CSE1102 - 3.0 credits - A
2. MAT1101 - 3.0 credits - A-
3. ENG2821 - 3.0 credits - β³ Pending
...
3. /setcourses ENG2821 CSE4099
β
Courses Set for Monitoring!
π Monitoring 2 courses:
β’ ENG2821 - 3.0 credits - β³ Pending
β’ CSE4099 - 3.0 credits - β³ Pending
π Monitoring Started!
4. [2 hours later, if results updated]
π AUTO-CHECK: RESULTS UPDATED!
β’ ENG2821 - 3.0 credits - A
β
Found 1 updated result(s).
python-telegram-bot- Telegram Bot API wrapperrequests- HTTP library for API requestsbeautifulsoup4- HTML parsingpython-dotenv- Environment variable management
See requirements.txt for specific versions.
- The bot uses in-memory storage only (no database)
- Credentials are stored only during runtime
- Only the authorized user (specified in
.env) can use the bot - Use
/stopto clear all stored data immediately - Never share your
.envfile or commit it to git
- Authentication: Uses ULAB URMS login system
- Web Scraping: Parses HTML tables from the URMS status page using BeautifulSoup
- Background Monitoring: Runs a daemon thread that checks every 2 hours
- Change Detection: Compares previous results with current results
- Notifications: Sends Telegram messages only when changes are detected
ula_bot/
βββ main.py # Main bot script
βββ requirements.txt # Python dependencies
βββ .env # Configuration (not in repo)
βββ README.md # This file
- Check if the bot is running
- Verify your
AUTHORIZED_USER_IDis correct - Ensure you're using the correct bot on Telegram
- Double-check your student ID and password
- Make sure you're using the format:
/setcred ID|password - Verify your URMS account is active
- Ensure monitoring is active (check with
/status) - Verify courses are set (use
/setcourses) - Check if results have actually changed
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is MIT licensed.
Zen Jahid
- GitHub: @zenjahid
- Telegram: Contact via the bot!
Give a βοΈ if this project helped you!
Disclaimer: This is an unofficial bot and is not affiliated with or endorsed by the University of Liberal Arts Bangladesh (ULAB). Use at your own discretion.