TELEGRAM / AUTOMATION
Not Takip
by Asil Türkmen

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


