Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ All notable changes to the AlgoBuddy project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.7.0] - Unreleased

### Refactored
- **Architecture Modularity**: Successfully extracted the monolithic `src/app.rs` into specialized UI renderers within the `src/ui/` module (e.g., `canvas.rs`, `sidebar.rs`, `dashboard.rs`).
- **Engine Decoupling**: Isolated deterministic algorithm execution logic into a dedicated `src/engine.rs` module for better testability and contributor onboarding.

### Added
- **UI Quality-of-Life**: Added a clear ("x") button to the Roadmap search bar (from PR #19) and a reset confirmation dialog for the NeetCode Mastery Dashboard (from PR #25).

## [0.6.0] - 2026-07-30

### Added
Expand Down
6 changes: 4 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,13 @@ Contributions generally fall into three categories:

## Architecture & Engine

The AlgoBuddy codebase is structured into four primary component areas:
The AlgoBuddy codebase is structured into five primary component areas:

- `src/main.rs`: Application entry points for native execution (`eframe::run_native`) and WASM execution (`eframe::WebRunner`).
- `src/model/`: Problem definitions (`Problem`), category taxonomy (`Category`), difficulty levels (`Difficulty`), metadata specs (`ProblemDetails`), and visual state snapshots (`VisualState`).
- `src/app.rs`: Main GUI application state (`VisualizerApp`), navigation, playback controls, canvas renderers, and theme palettes.
- `src/app.rs`: Main GUI application state (`VisualizerApp`).
- `src/ui/`: UI submodules containing navigation panels, playback controls, canvas renderers, and theme palettes.
- `src/engine.rs`: Core deterministic algorithm execution engine handling snapshot timeline generation and problem selection.
- `src/algorithms/`: Step snapshot generator functions (`generate_*_steps`) for each algorithm.

### Deterministic State Engine
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ cargo test

## Architecture Overview

AlgoBuddy uses a deterministic snapshot model where generator functions in `src/algorithms/` execute synchronously upfront to produce a timeline vector of discrete state snapshots (`Vec<Step>`). The GUI renders snapshots based on the active timeline scrubber index.
AlgoBuddy uses a deterministic snapshot model where generator functions in `src/algorithms/` execute synchronously upfront to produce a timeline vector of discrete state snapshots (`Vec<Step>`). Execution logic is orchestrated in `src/engine.rs`, while the interactive GUI renders snapshots via cleanly decoupled `src/ui/` component modules based on the active timeline scrubber index.

For detailed architecture diagrams, model definitions, and problem auditing workflows, see [CONTRIBUTING.md](CONTRIBUTING.md).

Expand Down
Loading
Loading