Áleran Vocals
Piano, entrenamiento con micrófono y juegos de oído para alumnos de canto: notas, escalas, afinación, rango vocal, resistencia e intervalos.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Desktop app that tracks Codeforces + LeetCode, finds your weak topics, and keeps you consistent
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 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.