Skip to content

hansmrtn/dsa-quest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dsa.quest

An experimental AI powered application for data structures and algorithm practice that adapts to how you learn.

The Problem

LeetCode has thousands of problems, but nothing about which problem you should do next or how to help when you're stuck. You either grind randomly or follow someone else's list. Hints are generic. Feedback is binary. Could there be something better?

The Approach

dsa.quest generates fresh problems on demand using Claude, calibrated to your current skill level. Instead of a static problem bank, every problem is created specifically for where you are in your learning journey.

Adaptive difficulty — The system tracks multiple signals (solve rate, hint usage, time performance, score trends) to select the right challenge level. Struggling? It backs off. Maybe offers a bit more structure here and there. Crushing it? It pushes harder.

Pattern-based progression — Problems are organized by algorithmic pattern (two pointers, sliding window, BFS/DFS, etc). Master the prerequisites and new patterns unlock. This creates a natural curriculum without rigid ordering. Largely inspired by tools like Keybr.

Phase-aware hints — Hints adapt to your mastery level for each pattern, based on how you use the hint.

Real feedback — Solutions are analyzed for correctness, time/space complexity, code quality, and approach. The system also tracks how you used hints (did you make progress after each one?) to give more accurate assessments.

How It Works

When you request a problem:

  1. Pattern selection — Picks the pattern you most need to practice (low confidence, not practiced recently, or newly unlocked)

  2. Difficulty calibration — Computes a difficulty score from your metrics:

    • Pattern confidence (35%)
    • Learner phase (20%)
    • Recent performance trend (15%)
    • Average score (10%)
    • Hint dependency (10%)
    • Speed and approach quality (10%)
  3. Problem generation — Claude generates a problem with the selected pattern and difficulty, avoiding duplicates of recent problems

  4. Validation — A second AI pass validates the solution compiles, handles the examples correctly, and the problem statement is unambiguous

When you submit:

  1. Analysis — Claude evaluates correctness, complexity, code quality, and compares your approach to the reference solution

  2. Hint impact assessment — If you used hints, the system analyzes your code state at each hint request to determine how much the hints contributed vs. your own reasoning

  3. Confidence update — Your pattern confidence adjusts based on the outcome, potentially unlocking new patterns

Tech

Go backend, Claude API (Sonnet for generation/analysis, Haiku for hints), Supabase for persistence, server-rendered HTML with HTMX for interactivity, CodeMirror editor with Vim bindings. Keep in mind there is no code-eval, only AI. It's fair to think that sounds wishy-washy. However coding problems typically have a reliable structure and solution -- so seems fine to me.

About

ai driven leetcode-like application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors