TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
A free Windows app for Codeforces and LeetCode: your weak topics, today's problems, sheets that tick themselves, and video lessons in English and Hindi for beginners.
EducationTypeScript · JavaScriptGitHub @26bma038-langOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Desktop app that tracks Codeforces + LeetCode, finds your weak topics, and keeps you consistent
Taken from the repository README
Loading the full README.
Read the full README ↗Website: 26bma038-lang.github.io/algocompass
Your competitive programming compass: one desktop app for Codeforces and LeetCode that finds your weak topics, tells you what to solve next, and keeps your streak alive. New to DSA? It teaches you step by step, with video lessons in English or Hindi. Following Striver's A2Z or NeetCode 150? It ticks your progress for you.
Download for Windows · Website · Windows 10/11 · free · no account needed
I practice on two sites. LeetCode is where I learn a topic (clean problems, good editorials), and Codeforces is where I sharpen it under contest pressure, which is where my rating lives. Neither site knows about the other, so there was no single answer to the questions I actually had every day:
AlgoCompass answers those in a two-second glance, from the tray, without logins or uploads. The Codeforces rating climb is the goal; LeetCode is the classroom.
New to DSA? Pick "Yes, I'm new" on the first screen and you're on Step 1 in under a minute. No handles are needed and there's nothing to decide.
Already practising? Pick "No" and AlgoCompass is the Codeforces + LeetCode tracker it always was, with the sheets in Practice and every video in Learn. Switch between the two modes any time in Settings.
In Beginner mode the sidebar is Today · Learn · Practice · Progress. Contests joins it, marked "New", once you finish the Recursion step: that's when you're ready for your first contest.
The sheets belong to their creators. AlgoCompass only links to them and tracks your progress:
Each sheet is built from its creator's own published list by npm run gen:sheets. Every LeetCode and Codeforces link is verified against the platforms, and every sheet in the app shows "Sheet by …" with a link to the original. Videos are embedded from YouTube and never downloaded or rehosted.
Five screens with plain names: Today, Practice, Learn, Progress, Contests, plus Settings. A short tip tour shows you around on first launch (beginners start with Learn).
Answers "what do I do today?" at a glance:
Practice has tabs: Today's mix and Sheets (and the Beginner Path first, in Beginner mode).
Feedback (Skip / Too easy / Too hard) moves a topic's difficulty window up or down. Quests are picked from the mix and check themselves off when a sync sees the accepted submission.
Three tabs:
Open any topic to see its strength and where it comes from (Codeforces vs LeetCode), hardest solve, struggle rate, what you've solved and what's still open. It also lists recommended problems (LeetCode to learn, Codeforces to sharpen) and curated resources (CP-Algorithms, USACO Guide, NeetCode, CSES and more).
Upcoming Codeforces rounds come first, with LeetCode weekly and biweekly contests below them. Each shows a countdown, local start time, duration and division, plus a Register button. Mark "I'll attend" to get Windows reminders 1 hour and 10 minutes before. Past rounds show your rank, problems solved and rating change.
A command palette to jump to any screen or topic, sync, or open today's mix or the next contest, all from the keyboard. Ctrl+1–5 switch screens (in sidebar order), Ctrl+R syncs and ? lists every shortcut.
System (the default) follows your Windows light/dark setting and switches with it; you can also pin Light or Dark. Both are contrast-checked to WCAG AA, including the Codeforces rank colours, which stay on the things they belong to: your rating, your rank and your progress to the next rank.
| Light | Dark |
|---|---|
Answer "New to DSA?" and pick the lesson video language (English or Hindi).
Codeforces API ─┐ ┌─ topic engine ─┐
├─ adapters ─ SQLite ───┤ ├─ recommender ─ screens
LeetCode GQL ───┘ (normalize) (cache)└─ quests / XP ──┘
src/adapters) are the only code that talks to the platforms. They turn Codeforces and LeetCode responses into shared domain types, so nothing else knows either site's response format.src/engine, pure TypeScript, unit-tested) maps 38 Codeforces tags and 75 LeetCode tags onto 33 unified topics and scores each one 0–100:
About LeetCode: LeetCode has no public API, so AlgoCompass uses its unofficial GraphQL endpoint (the same one leetcode.com uses). It's isolated behind a single adapter that validates every field and fails soft. If LeetCode changes or blocks it, LeetCode data goes stale and everything else keeps working. LeetCode also only exposes your 20 most recent accepted solves, so older ones can be marked solved by hand.
AlgoCompass_…_x64-setup.exe installer (or the .msi) from the latest release.Requires Windows 10 or 11 with the WebView2 runtime. It's already on Windows 11, and the installer fetches it on Windows 10 if needed.
Prerequisites
git clone https://github.com/26bma038-lang/algocompass.git
cd algocompass
npm install
npm run tauri dev # run the desktop app with hot reload
npm run tauri build # installers in src-tauri/target/release/bundle/{nsis,msi}
Use PowerShell (or cmd), not Git Bash, for the Tauri and Cargo commands. Git Bash's link shadows the MSVC linker.
npm run dev also serves the UI in a plain browser. It uses an in-memory SQLite (sql.js) there and proxies LeetCode through Vite, which is handy for UI work.
npm test # type-check + unit tests (Vitest)
$env:CF_HANDLE="tourist"; $env:LC_HANDLE="<username>"; npm run test:live # full sync against the real APIs
npm run check:links # verify every link: articles, sheet problems (LeetCode + Codeforces) and every video
npm run gen:sheets # rebuild src/data/sheets/*.json from the sheets' original sources
npm run fill:media # refill video titles, channels and lengths (and path problems) from the platforms
check:links checks every LeetCode slug with LeetCode's GraphQL and every Codeforces id with problemset.problems. Every video must pass YouTube oEmbed with its exact title and channel. --deep also opens every takeUforward practice link.
The unit tests cover the adapters (with stubbed fetch), sync against a real SQLite schema, and all of the engine: strength scoring, the recommender, quests, XP and levels, achievements, reminder scheduling, contests and the command palette ranking.
src/
adapters/ Codeforces + LeetCode clients (the only code that touches the network)
data/ SQLite schema access, sync, settings, TanStack Query hooks
sheets/ The five sheets (generated from the original sources, verified)
path/ The Beginner Path's 14 lessons
engine/ Pure analysis: topics, strength, recommender, quests, XP, achievements, reminders,
sheets (ticks, progress, smart next) and the Beginner Path (unlocking)
features/ One folder per screen (home, skill-tree, topic, practice, sheets, path, quests,
contests, achievements, settings, onboarding)
components/ Shell (title bar, sidebar, top bar, palette) and shadcn/ui primitives
src-tauri/
src/lib.rs Window, tray, plugins, reminder scheduler
migrations/ SQLite schema migrations
capabilities/ Permission scope (only codeforces.com/api and leetcode.com/graphql)
website/ The landing page (static HTML/CSS/JS, deployed to GitHub Pages)
docs/screenshots README images
DESIGN.md The visual system ("The Rank Aura")
Everything stays on your computer.
%APPDATA%\com.algocompass.app.codeforces.com/api and leetcode.com/graphql, to read your public profiles. The Tauri permission scope enforces that.youtube-nocookie.com). Nothing loads from YouTube until you press play, apart from the video's thumbnail (i.ytimg.com). The content security policy allows only those two YouTube hosts.Copyright (c) 2026 Sahil. All rights reserved. You may view the source code and download and use the released app for personal, non-commercial purposes. No part of the source code may be copied, modified, distributed, or used in other projects without prior written permission. See LICENSE. Contributions: see CONTRIBUTING.md.