Skip to content

Add category completion ratios to NeetCode Mastery Dashboard #15

Description

@Rowrow620

First Timers Only

This issue is reserved for developers who are new to AlgoBuddy or open-source contributing. We know that submitting a first pull request can feel intimidating. The goal of this issue is to guide you step-by-step through making your first contribution to the AlgoBuddy repository.

Description of the Issue

On the NeetCode 150 Mastery Dashboard, category headers display the topic title (e.g. "Arrays & Hashing"), but do not show how many problems within that category have been completed.

Proposed Solution

Display completion ratios (e.g. Arrays & Hashing (9/9), Two Pointers (5/5)) inside each category header card on the dashboard.

Implementation Steps

  1. Open src/app.rs and locate render_dashboard.
  2. For each category card, calculate the completed problem count:
    let completed_count = category_problems
        .iter()
        .filter(|p| self.completed_problems.contains(&p.id()))
        .count();
    let total_count = category_problems.len();
    
    let title_text = format!("{} ({}/{})", category.name(), completed_count, total_count);
    ui.heading(RichText::new(title_text).color(p.cyan).strong());
    

Acceptance Criteria

To merge a pull request for this issue:

  • Code Formatting: cargo fmt --all -- --check completes without warnings.
  • All Tests Pass: cargo test passes 100% of unit tests.
  • Issue Solved: The implementation fully addresses the requirements described above.
  • Clean Git Branch: Changes are committed to a feature branch targeting dev.

Step-by-Step Contribution Guide

  1. Claim this issue: Comment below that you are working on this issue to receive assignment.
  2. Fork and Branch: Create a new branch off dev named issue-[id]-[feature-name].
  3. Make and Test Changes: Run cargo fmt --all and cargo test locally to verify build health.
  4. Submit PR: Push your branch to GitHub and create a Pull Request targeting the dev branch.

Additional Information

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions