Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
翻訳待ち
Team tracker for competitive programming: one matrix of who solved what (live, virtual or upsolved) across Codeforces incl. gyms and team virtuals, AtCoder, Kilonova and CSES. FastAPI + SQLAlchemy, in
翻訳待ち
教育Python · HTMLGitHub @amcbn06接続状況の再確認が必要です所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Team tracker for competitive programming: one matrix of who solved what (live, virtual or upsolved) across Codeforces incl. gyms and team virtuals, AtCoder, Kilonova and CSES. FastAPI + SQLAlchemy, incremental submission store, one module per judge.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Squadforces
See what your whole competitive-programming team has solved — across Codeforces, AtCoder, Kilonova and CSES — and how: live, virtually, or upsolved.
One assignment, four members. A gym contest solved as a team (7/11 for each member), Codeforces rounds split into live ✓, virtual ✓ and upsolved ▲, rating changes, and an AtCoder round. Demo data.Read the full README ↗Coaches and ICPC-style teams practise across several judges, and no single site shows the picture: who has solved this week's problems, who only did it after the editorial, who virtual-participated as a team. Squadforces watches the judges for you. You assign contests and problems, and it shows one matrix of members × problems with how each was solved.
It never runs code or hosts problems. It is an observer of Codeforces, AtCoder, Kilonova and CSES, so it works with the practice people already do on those sites.
graph LR
subgraph Judges
CF["Codeforces API"]
AC["AtCoder Problems + history"]
KN["Kilonova API"]
end
Store[("Submission store<br/>every submission, per user")]
Results["Results per item<br/>(what the matrix shows)"]
UI["Server-rendered UI<br/>FastAPI + Jinja2"]
CF -->|"only what's new"| Store
AC --> Store
KN --> Store
Store -->|"platform module<br/>derives results"| Results
Results --> UI
Store --> UI
A local copy of every submission. Judges are only asked for a user's submissions, once. They are mirrored into a table and afterwards refreshed incrementally: everything newer than the newest stored submission, plus anything still being judged. Every contest and problem status is then a database query, so adding the tenth assignment that mentions a contest costs no judge calls. A 15,000-submission history loads in seconds and refreshes in about one.
One module per judge. Everything specific to a judge (its links, how to fetch, how to display, how to derive results) lives in app/platforms/<judge>.py behind one Platform interface. Recognising where a link comes from is a single switch in app/problems.py. Supporting a new judge means one new file, one registry line and one if; templates never branch on the platform.
This is the beginning of the README. Read the rest at the original. Read the full README ↗