Nandansai08's blog

By Nandansai08, 3 hours ago, In English

I Built a Ultimate Team-Style Card Generator for Codeforces Profiles

TL;DR: Codeforces Cards turns any CF handle into a collectible player card — OVR rating, six attributes, a rarity tier, playstyle badges, achievements and full rating history, all computed from your public Codeforces data. Nothing is random: the same handle always produces the same card. Open source, MIT licensed.


Why I made this

I'm a big fan of Ultimate Team-style card games — the OVR number, the attribute breakdown, the rarity tiers, the thrill of a pack opening. At the same time I spend a lot of my life staring at a Codeforces profile page that's just a rating number and a list of submissions.

So I built the thing that lives in the overlap: take your actual contest history and render it the way a football game renders a striker's pace and finishing.

What it does

Enter a handle, and the app pulls your public Codeforces stats and turns them into a card with:

  • OVR — an overall rating for the card (explicitly not an official Codeforces rating, just a fun derived metric).
  • Six attributes, each scaled 1-99:
  • PAS — Contest performance & consistency (30% of OVR)
  • SHO — High-rated problem solving (22% of OVR)
  • DEF — Difficult-problem performance (15% of OVR)
  • DRI — Versatility across tags/difficulty (13% of OVR)
  • PHY — Endurance & consistency over time (12% of OVR)
  • PAC — Improvement speed / rating growth (8% of OVR)
  • Rarity tier and a potential projection based on recent trajectory.

  • Badges & achievements, and a full rating history chart.

Cards can be flipped, restyled (frame/background/theme — visuals only, never the stats) and exported as PNG.

Beyond the card itself

  • /generate — Enter a handle, get a card
  • /player/:handle — Full profile: card, key stats, attributes, rating chart, form, achievements
  • /compare — Two handles head to head, attribute by attribute
  • /leaderboard — Ranks the cards you've generated, plus a live featured table
  • /squad — Build a 5-card lineup with a squad OVR and synergy score
  • /pack — Pack-opening reveal: rarity -> OVR -> card

Two players compared attribute by attribute

How it works

Everything comes from the public Codeforces API (user.info, user.rating, user.status) — no login, no private data, results cached in-browser for 30 minutes and requests spaced out to respect CF's rate limits. Every number is a deterministic function of the handle's public history, so nobody's card is randomized or "rolled" — same handle in, same card out, every time.

This is a fan project only: not affiliated with Codeforces or any football game publisher.

Try it

nandansai08.github.io/cf-cards

It's open source (MIT) — code and contributions welcome at the GitHub repo. Generate your own card, throw a friend's handle into Compare, or open a pack. I'd love feedback in the comments — bugs, attribute ideas, badge ideas, whatever you've got.

A player card on a phone

The card holds up on a phone too.

  • Vote: I like it
  • +3
  • Vote: I do not like it

»
3 hours ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

thats cool

  • »
    »
    2 hours ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Thanks!

»
3 hours ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

You should add a new attribute name contribution (that will be how I win my friends lol)

  • »
    »
    119 minutes ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Ha, that's actually a really fitting idea since contribution is already a real CF stat. Might add it as a 7th attribute or a badge — thanks for the suggestion!

»
3 hours ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Damn cool !

»
101 minute(s) ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

nice

»
83 minutes ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

This is lowk fire