Skip to content

A full-stack web application designed to bring algorithms to life through real-time, interactive visualizations. Built with a React (TypeScript) frontend and a Python (FastAPI) backend, this tool provides an engaging way to understand how different algorithms operate step by step.

License

Notifications You must be signed in to change notification settings

qtremors/algorithm-visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AlgoVisualizer Logo

A high-performance, interactive educational platform that demystifies complex algorithms through real-time visualization.

React FastAPI TypeScript WebSocket License

Note

Personal Project 🎯 I built this to deeply understand sorting and pathfinding algorithms by implementing them from scratch with real-time visual feedback. Feel free to explore and learn from it!

Live Website

➡️ tremors-algoviz.netlify.app

Live Demo Limitations: The backend may take a few seconds to wake up on first visit (cold start).

Warning

Desktop Optimized: This application features complex grid layouts and interactive controls that require a mouse and larger screen. Mobile support is limited.


✨ Features

Feature Description
Real-Time Execution Algorithms run live on the backend, streaming steps via WebSocket
🎮 VCR-Style Controls Play, Pause, Step Forward/Back, Reset, and variable speed (10ms-500ms)
📊 Sorting Algorithms Bubble Sort, Selection Sort, Insertion Sort with color-coded comparisons
🕸️ Pathfinding Algorithms Dijkstra, BFS, DFS on both 2D Grids and Network Graphs
💻 Pseudocode Tracking Live highlighting of the current execution line
📝 Execution Log Scrollable history of every operation
🎓 Educational Modals Time/Space complexity, pros, cons for each algorithm

📸 Screenshots

Sorting Visualization Sorted Result

Pathfinding in Progress Path Found


🚀 Quick Start

# Clone and navigate
git clone https://github.com/qtremors/algorithm-visualizer.git
cd algorithm-visualizer

# Start Backend (Terminal 1)
cd backend
uv sync
uv run uvicorn app.main:api --reload

# Start Frontend (Terminal 2)
cd frontend
npm install
npm run dev

Visit http://localhost:5173 🎉


🛠️ Tech Stack

Layer Technology
Frontend React 19, TypeScript, Vite, TailwindCSS
Backend Python 3.11+, FastAPI, WebSockets
Protocol Real-time WebSocket streaming
Package Managers npm (frontend), uv (backend)

📁 Project Structure

algorithm-visualizer/
├── backend/              # FastAPI Python backend
│   ├── app/
│   │   ├── main.py       # Entry point, WebSocket handler
│   │   ├── base_algorithm.py
│   │   └── algorithms/   # Sorting & Pathfinding implementations
│   └── pyproject.toml
├── frontend/             # React TypeScript frontend
│   ├── src/
│   │   ├── components/   # UI components
│   │   ├── hooks/        # Custom React hooks
│   │   ├── pages/        # HomePage, AlgorithmWorkspace
│   │   └── types/        # TypeScript definitions
│   └── package.json
├── assets/               # Screenshot images
├── DEVELOPMENT.md        # Developer documentation
├── CHANGELOG.md          # Version history
├── LICENSE.md            # License terms
└── README.md

📚 Documentation

Document Description
DEVELOPMENT.md Architecture, API, Troubleshooting
CHANGELOG.md Version history and release notes
LICENSE.md License terms and attribution
TASKS.md Project tasks and roadmap

📄 License

Tremors Source License (TSL) - Source-available license allowing viewing, forking, and derivative works with mandatory attribution. Commercial use requires written permission.

See LICENSE.md for full terms.


Made with ❤️ by Tremors

About

A full-stack web application designed to bring algorithms to life through real-time, interactive visualizations. Built with a React (TypeScript) frontend and a Python (FastAPI) backend, this tool provides an engaging way to understand how different algorithms operate step by step.

Topics

Resources

License

Stars

Watchers

Forks