I built a Codeforces coach that lives in Telegram

Revision en1, by Tedacodder, 2026-11-06 08:32:22

I built a Codeforces coach that lives in Telegram

Daily problems, contest alerts and class leaderboards. No app to install.


Every competitive programmer knows the routine. You open Codeforces, scroll for a problem near your level, pick one, and by the time you're finally in the zone, twenty minutes are gone.

I wanted something simpler: a problem should arrive where I already am, which is Telegram.

So I built @AlgoryvaBot.


What it does

Problems on demand

Send /random 1200-1600 dp graphs and get a problem in that rating band with those tags. Connect your handle once, and it skips everything you've already solved.

A daily problem

One challenge, chosen for you, every day. It's the same problem for everyone that day, so it's easy to talk about with friends.

Contests without the tab-switching

  • /contests shows what's coming up.
  • /next shows the one starting soonest.
  • You get a reminder when a round is posted, and another two hours before it starts.
  • Times show Ethiopian time first, then UTC, with a live countdown.

Ranklists, live or final

/ranklist shows the top of a contest and your class. - While the round runs: LIVE, with a Refresh button. - Afterwards: Final results.

After the contest

/summary gives each member a short quote: - their place - problems solved - rating change - one honest line of advice

A bad round gets a pep talk. A good one gets a nudge to keep the streak going.

Ratings on demand

/rating tourist shows a handle's current rating, best rating, rank and number of rated contests.

For teachers and study groups

  1. Add the bot to a group.
  2. An admin builds the class list with /roster add.
  3. The bot checks each handle against Codeforces. Real accounts count as registered, so students don't need to link anything separately.
  4. /report shows who solved the group's problem.
  5. /leaderboard ranks the class by week, month or all time.

The ranking gives points for problems solved and for days practised, so steady work counts more than one long session.


How it's built

The bot runs on Vercel, next to a small website, with a Postgres database on Neon.

The only Codeforces methods it uses are public ones: - problem sets - contest lists - standings - user information

Every response is cached, and requests go through a queue that respects Codeforces' limit of one request every two seconds.

That limit shapes the product. Checking fifty accounts takes a couple of minutes, and the bot says so, rather than pretending it's instant. Some lookups finish in the background, and a refresh picks up whatever is still waiting.

On privacy

  • Telegram user IDs are stored as keyed hashes, not in plain text.
  • Chat IDs are encrypted at rest.
  • The bot ignores everything except its own commands and buttons, and it doesn't store the rest of a group's conversation.

Who it's for

  • Students practising daily, who want something to open in the morning.
  • Friends who want a little friendly competition.
  • Teachers and clubs who want to see how a class is doing without chasing each student.

Try it

  1. Open @AlgoryvaBot and send /start.
  2. Connect your handle: /connect yourhandle.
  3. Send /random and see what you get.

For groups: add the bot and send /enable as an admin.


Full command guide: algoryva.vercel.app/bot Questions or bugs: [email protected]


Algoryva is an independent project. It is not affiliated with Codeforces.

Tags codeforces, algorithms, telegram bot, competitive programming

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English Tedacodder 2026-11-06 08:32:22 3887 Initial revision (published)