Personal project · a real case · 2026
A study group portal that collects the schedule, the deadlines and the class recordings by itself
My own project: a portal for the study group I am part of. The schedule, the deadlines, subject materials, class recordings and notes in one place — as a website in a browser and as an app inside Telegram. The content is pulled in automatically: the schedule from the academic office’s file, the deadlines and announcements from the study mailbox and the chats, the notes from class recordings. A human confirms only the doubtful ones. The year group is about 80 students: 43 of them have an account, and over eight days of watching, 34 opened the portal.
- Client
- My own project, a study group of about 80
- Format
- Website, Telegram app, bot, scheduled agents
- Languages
- Russian
- Status
- Running since May 2026, used every day
The case study has no public link: the portal is closed behind the roster of the year group. The screens on this page were rebuilt from scratch with made-up data — the real ones can’t be shown.
What the portal does without a human
Nobody retypes the schedule into a chat, nobody rebuilds the deadline list before exams, nobody asks the group for notes after a class.
- 296
- classes in the schedule: the portal re-reads the academic office’s file once a day
- 181
- class transcripts: a rented server recognises the speech, and there is nothing extra to pay for it
- 264
- class reminders and morning digests the bot sent by itself, to the people who turned them on
the portal does not publish doubtful ones itself: 40 candidate deadlines went into the review queue, a human confirmed 22 and rejected 18
Привет, Сергей
вторник, 16 сентября · МСК+2
Статистика
семинар · сегодня · 15:00–16:20 · МСК 13:00
до начала
Привет, Сергей
вторник, 16 сентября · МСК+2
Просрочено 2
📊Статистика
семинар · 15:00–16:20
до начала
Ближайшие дедлайны
01 / Background
Course information lived in five places at once
Telegram group chats, the study mailbox, a schedule folder on a cloud drive and two university sites — five sources, and none of them knew about the others. The schedule in the university app disagreed with the academic office’s file, a deadline named once in a chat stayed there, and putting together the whole picture meant walking all five and cross-checking them. Nobody has that much time: by the time you have walked all five, part of it is already stale. And going through the whole stream to work out what matters takes time nobody has either.
So I built the portal: one place where everything is pulled in automatically and updates without being asked. Class recordings were their own story — lecturers lost them or uploaded them late, so a recording stopped being something you could count on. That is where the bot came from: it joins the class and records it itself. The recording then goes to speech recognition — GigaAM, Sber’s model, running locally on a rented server with no outside services — and every five hours Claude turns the transcripts into notes.
Subjects, lecturers, the schedule, the deadlines and the class recordings now live in one place and update themselves — the year group no longer spends time collecting them.
02 / How the portal fills up
Content is pulled in automatically, and a human confirms only the doubtful ones
The schedule, the deadlines and the class recordings each have their own way onto the portal. A human appears in that path once — where a decision is needed.
Schedule
Once a day, in full
- 01
The academic office’s Excel file
It sits in a public folder on a cloud drive. The office edits it whenever it likes: moves classes, changes times, posts a new file for the next module.
- 02
A script reads the file
It runs once a day from a home computer. It opens the Excel workbook, takes every second-year file, reads both groups column by column, and tells stream lectures from per-group seminars.
- 03
35 days of schedule on the portal
The window is rewritten in full; history is left alone. Manual edits inside the window are wiped: the schedule has one source — the file.
Deadlines
Once a day, with a human check
- 01
The study mailbox and the study chats
The agent reads the last 48 hours and, separately, searches for phrases like “due by” with no time limit: a test is often mentioned once, weeks before it happens.
- 02
Claude works through what it found
It runs on a schedule on a home computer. First it pulls what the portal already has, so it does not create the same deadline twice; then it fills in the details: what to hand in, where, by what hour, and which materials are allowed.
- 03
Sure — straight to the portal
The deadline shows up on the home screen, in the calendar, on the subject page, in the task list and in the phone calendar feed. A second run updates the same record instead of creating another.
- 04
Unsure — hands it to a human
The candidate goes into a queue with the source quote, the reason for the doubt and a confidence percentage — on average it was 57 out of 100. A person fixes the fields and publishes or rejects. 40 records went through this way: 22 published, 18 rejected.
Classes
Every class, with nobody involved
- 01
12 minutes before class
The scheduler on the rented server keeps a day-ahead plan and checks it every minute without waking the portal. Just before class it refreshes the plan: the room link may have changed that morning.
- 02
A bot joins the room
A separate container per class: its own virtual screen, its own sound card and a real Chrome — a headless browser has no audio output. Its microphone is silent, so nothing goes from the bot into the room. It records 1080p and keeps going for 15 minutes after the bell.
- 03
GigaAM by Sber recognises the speech
The model runs locally on the same server, on the CPU, with no GPU and no outside services: the recording never leaves. If the file is silent, it means the bot was not let in, and it is not sent for recognition.
- 04
Claude writes the notes
Every five hours it takes the classes with no notes yet and writes four things: a title, a short summary, a plain-language explanation and the full notes. Re-uploading a recording leaves all of that alone.
- 05
The class page
The recording with a player, the notes and the transcript sit together. Two classes in a row on one subject become one recording and one page.
A human stands in one place in this diagram — where the agent is unsure. Everything else runs on a schedule: on a home computer, on the rented server and on the portal itself.
На подтверждении
Агент нашёл эти дедлайны, но не уверен в них. Пока вы не подтвердите, на портале их нет.
Вторая часть проекта
Статистика
— не указана —
23:59
Проект
Срок назван словами «на следующей неделе», точной даты в сообщении нет.
цитата источника: «…вторую часть сдаём на следующей неделе, файл пришлю позже»
Пересдача, запись до конца недели
На подтверждении
Агент нашёл эти дедлайны, но не уверен в них. Пока вы не подтвердите, на портале их нет.
Вторая часть проекта
Статистика
— не указана —
23:59
Проект
Срок назван словами «на следующей неделе», точной даты в сообщении нет.
«…вторую часть сдаём на следующей неделе, файл пришлю позже»
Пересдача, запись до конца недели
03 / What a student sees
Sign-in without a password, your own classes and your own dates in your own time zone
The portal opens two ways — as a website in a browser and as an app inside Telegram — and both sign you in through Telegram. After that the path is the same: a home screen with the next class, a deadline card with a “handed in” mark, a phone calendar and reminders.
- 01
No password: both the website and the app sign you in through Telegram
On the website a student presses a button, a chat with the bot opens, they press “Start” — and they are in. The link lives for 10 minutes and works once: two tabs cannot sign in with the same one. Inside the Telegram app there is nothing to sign into at all — the messenger already knows who opened it. Only someone already on the roster can get in; everyone else gets a reply from the bot saying access is closed. A student account has no password, so there is nothing to create, hand out or reset.
- 02
The home screen shows what is overdue, what can be handed in now and when the next class is
At the top a greeting by name, below it anything overdue in a red frame and anything that can be handed in right now in a green one. Then a card for the next class with a ticking counter to the start, the “Today” and “Tomorrow” columns, the nearest deadlines and the news. Nothing has to be looked for: what is burning sits above what is not.
- 03
Times are shown in the student’s zone, with Moscow time next to them
A person sets their own zone on first sign-in, as an offset in hours from Moscow. After that, class and deadline times are shown in their zone, with Moscow time beside them. This is not decoration: 28 of the 43 people with accounts live outside the Moscow zone. Nobody has to convert hours in their head.
- 04
A deadline card holds everything needed to hand the work in
The task type spelled out in full, a “blocking” label, the “Open from”, “Date”, “Time” and “Left” tiles — with a counter if the date is today or tomorrow. Below that, the description and a “Probably in this class” block with a link to the class from the same day: the portal finds it itself. The student marks it as handed in and can leave a note only they can see. A personal date can be added too, and nobody else sees it. In all, 226 marks from 19 people across 71 deadlines.
- 05
The schedule subscribes to the phone calendar, and the bot gives a heads-up before class
The schedule and the deadlines subscribe to a phone calendar as two separate feeds — the deadlines can be switched off without losing the schedule. The bot writes 5 minutes before a class with its name and the joining link, and in the morning it sends the whole day. Reminders are off by default: 15 people turned them on, and the bot has sent 264 messages.
Занятие 4. Как читать отчёт о движении денег
📊Статистика
- Разобрали, из чего складывается отчёт и чем он отличается от прибыли.
- К следующему занятию — разбор одного отчёта на выбор, сдавать файлом.
Прибыль считают на бумаге, а этот отчёт показывает живые деньги на счёте…
04 / What it gives
What nobody does by hand any more
The schedule updates itself, and versions do not have to be compared
Once a day a script parses the academic office’s file and puts the classes into the portal’s database. The schedule now holds 296 classes over 67 study days, 252 of them with a joining link. Nobody hunts for where the current version is or forwards it to the chat.
A date named once in a chat is not lost
The agent re-reads mail and chats for the last two days, and by keyword it also finds what was written about once, weeks earlier. A date it finds becomes a deadline and shows on the home screen, in the calendar, on the subject page, in the task list and in the calendar subscription. There are 82 of them now, and nobody has to rebuild the list before exams.
Doubtful ones do not reach the shared list on their own
If the agent is unsure of something, the deadline goes to the queue instead of the portal’s pages. The card shows where it came from, the source quote, the reason for the doubt and the confidence in percent; a human edits it and publishes it. 40 candidates have gone through the queue: 22 confirmed, 18 rejected — and those 18 never reached the portal.
Classes record themselves, on schedule
Twelve minutes before a class the server starts the recording: the bot joins the video meeting service as a participant and records the screen and the sound. A double class stays one recording. 81 recordings are attached to 70 classes, and nobody has to ask around for a recording and an access code.
Notes appear whether or not anyone took them
A class transcript reaches the portal by itself, and every five hours a second agent takes the classes with no notes and writes a short summary, a plain-language explanation and the full text. All 70 classes are filled in this way — 830,689 characters, each with a transcript and a link to the recording.
Lists are built for each person, and private things stay with their author
Classes and dates are picked by group, by the chosen minor and by the subjects a person has unsubscribed from: 27 people have done that, 11 have chosen a minor. A personal deadline is not visible even to an administrator. The same selection rules run on the site, in the calendar subscription and in the bot’s messages, so the lists never disagree anywhere.
05 / Reliability
The system works when nobody is watching it
The portal, the agents and the recording server run on a schedule with nobody watching. Hence three rules.
A repeat upload updates a record instead of creating a second one: same subject, date and title means an update in place. The schedule, the notes and the news work the same way, so the agent can run every day and nobody cleans duplicates after it.
The server’s alarms keep a day-ahead plan and work off it minute by minute. They used to poll the portal every minute, and the database never fell asleep — it ran for weeks, burning paid hours. Now the plan refreshes every four hours, and both services do it in the same minute, so the database wakes once instead of twice.
A recording with no sound is never sent for recognition. A stalled recogniser is killed by a watchdog after 15 minutes and is not retried. No more than three recordings run at once: the server has already run out of memory, and then forty minutes of an error page were recorded instead of a class.
Empty notes would look like a processed class and hide the gap, so a silent recording stops earlier.
06 / Design
A tree of four branches: data meets where people look for it
The portal opens on the home screen, and from there you can see what is burning today. Four branches lead deeper, and in each of them data from different sources comes together in one place.
Sign in through Telegram
A website in a browser or an app inside the messenger — everything after that is the same
Home
What is burning right now
Overdue
In a red frame, with a “handed in” mark
Can be handed in right now
In a green frame
The next class
With a counter to the start
Today and tomorrow
Two columns of classes
Upcoming deadlines and news
Calendar → Day
Everything happening on one day meets here
Week or month
On a phone, a list of day cards
That day’s classes
As tiles, in the subject’s colour
That day’s deadlines
As a line at the bottom of the cell
The class page
Topic, lecturer, joining link, time in your own zone
Subjects → Subject → Class
Everything there is on a subject meets here
Notes with the materials
On the left, in tabs if there are several
Upcoming classes and the next deadline
Lecturers, the grade sheet, links
As cards on the right
A class
Recording, “one minute on it”, plain-language explanation, full notes
The transcript
Behind a disclosure, with “Copy” and “Download”
My tasks and profile
What concerns only me
Upcoming, past, handed in
With a progress bar over what has come due
A personal deadline
Visible only to its author
Group, time zone, minor, optional subjects
Phone calendar subscription and bot reminders
The same deadline shows up in four places — the home screen, the calendar, the subject page and the task list — but there is only one record of it. The rules about who sees what are single too: the same ones for the site, the calendar feed and the bot’s messages, so the lists never disagree.
Every subject has its own colour, on its classes in the calendar and on the edge of its deadline card, so a subject is recognised before its name is read.
Anything long hides behind a disclosure: past deadlines, the full notes, the transcript. The screen does not press, and nothing is lost.
There are two themes. The dark one is warm, nearly black-brown; the choice is remembered and applied before the page paints, so the light theme never flashes first.
07 / Scope
What the project includes
The portal
- Home screen: what is overdue, what can be handed in right now, the next class with a counter, today’s and tomorrow’s classes, deadlines and news
- Calendar: week and month on a wide screen, a list of days on a phone; the chosen view is remembered
- Subject page: notes, upcoming classes, the next deadline, teachers and links
- Class page: the recording with a player, a short summary, a plain-language explanation, the full notes and the transcript with “Copy” and “Download” buttons
- Deadline card: type, date, a “Left” counter, a “handed in” mark and a note only its author sees
- “My tasks”: upcoming, past and unmarked, and a history of what has been handed in
- Your own deadline: a student adds a personal date and nobody else sees it
- First sign-in in three steps: group, time zone and chosen subjects
- Times in the student’s time zone, with Moscow time beside them
- Subscription to the phone calendar: two feeds, schedule and deadlines, so the second one can be turned off
- Sign-in through Telegram against the roster: no registration, no passwords
- Inside Telegram the portal opens as an app
Filling up without a human
- Once a day the agent reads the study mailbox and the study chats for the last two days, and by keyword it also finds what was written about once, weeks earlier
- It fills a deadline it finds with the details: what to hand in, where to hand it in, by what hour, which materials are allowed
- A deadline with the same subject, date and meaning of the title is updated, not created a second time
- Doubtful ones are not published: they go into a queue, where a human edits the text and presses “Confirm and publish”
- The same agent updates the schedule, the news and the useful links
- A separate agent keeps a chosen subject’s page: notes, links and dates
- Every five hours a second agent takes the classes with no notes and writes a title, a short summary, a plain-language explanation and the full notes
- 12 minutes before a class the server starts a bot: it joins the video meeting service and records the class and 15 minutes past the bell
- A double class becomes one recording and one set of notes: a gap of up to 45 minutes counts as a break
- A recording with no sound is not sent for transcription, so that empty notes do not look finished
- Speech is recognised on a rented server, with no GPU
- The bot sends the name, the time and the link 5 minutes before a class, and at 10:00 Moscow time it sends the day’s schedule; reminders are off by default
Foundation
- Next.js on a cloud deployment platform
- Managed Postgres, 22 tables; the transcripts sit in a separate database on the rented server
- The rented server: class recording and speech recognition by GigaAM, Sber’s model, running locally with no outside services
- Scheduled agents on Claude: deadline collection once a day, notes every five hours
- 32,926 lines of code, 273 commits, one author
Need automation that pulls your data into one place?
I built this portal for my own study group, but it is put together the same way as the work we do for companies. Data arrives in pieces in correspondence: enquiries, orders, documents, project deadlines. A scheduled agent reads the mail and the work chats, checks against what is already there, and updates a record instead of creating a second one. Anything doubtful goes not into the database but into a queue: a person sees where the record came from and why the agent hesitated, fixes the fields and confirms in one click. Where the line runs between “publish at once” and “show it to a human” is something we decide with you. The first conversation is free: we look at where your data comes from and what is worth collecting automatically.