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

HSE Portalв Telegram

Привет, Сергей

вторник, 16 сентября · МСК+2

Просрочено 2

11.09📋Заполнить анкету курса
09.09⚖️Прислать согласие на опрос
Ближайшая пара

📊Статистика

семинар · 15:00–16:20

1 ч 40 м

до начала

Сегодня
15:00📊СтатистикаСеминар
16:40📈МикроэкономикаЛекция

Ближайшие дедлайны

18.09📊Домашняя работа 2
20.09📈Контрольная, первая часть
ГлавнаяКалендарьПредметыНовостиЕщё

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

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

HSE Portalпанель

На подтверждении

Агент нашёл эти дедлайны, но не уверен в них. Пока вы не подтвердите, на портале их нет.

чат курсауверенность 62 %

Вторая часть проекта

Предмет

Статистика

Дата

— не указана —

Время

23:59

Тип

Проект

Почему не уверен

Срок назван словами «на следующей неделе», точной даты в сообщении нет.

«…вторую часть сдаём на следующей неделе, файл пришлю позже»

Подтвердить и опубликоватьОтклонить
учебная почтауверенность 48 %

Пересдача, запись до конца недели

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

HSE Portalв Telegram
лекция16.09

Занятие 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.