TELEGRAM / AUTOMATION

Not Takip

by Asil Türkmen

Not Takip — automated grade tracking bot with Telegram notifications by Asil Türkmen, built with TypeScript and Playwright

Not Takip is an automation tool that watches the EMU (Eastern Mediterranean University) student portal and sends a Telegram message the moment a grade is posted or changed. No more refreshing the portal every hour during exam weeks.

The problem

Every exam season, students check the portal dozens of times a day. The information arrives eventually either way — the refreshing ritual adds nothing but anxiety. This is exactly the kind of repetitive task software should do for you.

Technical architecture

Not Takip is a Node.js application written in TypeScript. Playwright drives a real browser session to log into the student portal and read the grade tables on a schedule. Results are stored in SQLite; each run is compared against the last known state, and only genuine changes trigger a notification, delivered through the Telegram Bot API with Telegraf.

Because all state lives in the local database, the bot survives restarts without sending duplicate alerts — it always knows what you have already been told.

TypeScript pulls its weight in a project like this: the scraped rows, the stored state and the notification payloads share the same types, so when the portal changes shape the break surfaces as a compile error or a loud runtime failure instead of a quietly wrong message.

Challenges and what I learned

The two hard parts were resilience and truthfulness. A portal's login flow and markup can change without notice, so the scraping layer had to fail loudly instead of silently reporting nothing. And the diffing logic had to distinguish a real grade change from noise, because a notification bot that cries wolf gets muted within a week.

The project also made me comfortable with the operational side of software: logs you can actually read, state you can inspect with a single SQLite query, and behavior you can trust while you sleep.

Along the way I learned browser automation with Playwright, how to design a long-running unattended process, and how to handle credentials carefully in a tool that logs in on your behalf.

Technologies

  • TypeScript
  • Node.js
  • Playwright
  • SQLite
  • Telegraf

Other projects

All projects