Skip to content
Open
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
140 changes: 86 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,78 +1,110 @@
# Algo Viz 🔍📊
# Algo Viz 🌟

**Algo Viz** is an interactive Algorithm Visualizer built with **React.js** to help you understand and explore core algorithmic concepts in **pathfinding**, **searching**, and **sorting**. Perfect for students, educators, and curious developers who want to see algorithms in action!
![Algo Viz](https://img.shields.io/badge/Download%20Latest%20Release-blue?style=for-the-badge&logo=github)

## 🚀 Live Demo
Algo Viz is a web-based visualizer designed to illustrate pathfinding, searching, and sorting algorithms. Built using React.js, it provides users with an interactive experience to understand how these algorithms work through real-time animations and a clean, intuitive user interface.

👉 [Try it here](https://algo-viz-rohit.vercel.app/)
## Table of Contents

---
- [Features](#features)
- [Getting Started](#getting-started)
- [Usage](#usage)
- [Supported Algorithms](#supported-algorithms)
- [Technologies Used](#technologies-used)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

## 🧠 Features
## Features

### 🔷 Pathfinding Visualizer
Visualize classic graph traversal algorithms:
- ✅ Dijkstra's Algorithm
- ✅ Breadth-First Search (BFS)
- ✅ Depth-First Search (DFS)
- ✅ A* Search
- **Interactive UI**: Users can interact with the visualizer to better understand algorithm behavior.
- **Real-time Animations**: Watch algorithms in action as they process data.
- **Multiple Algorithms**: Supports various pathfinding, searching, and sorting algorithms.
- **User-friendly Design**: A clean interface makes navigation easy for everyone.
- **Web-based**: No installation required; run it directly in your browser.

Customize:
- Start and End Nodes
- Drag & Drop Walls (Obstacles)
- Real-time grid updates
## Getting Started

### 🔍 Searching Visualizer
Understand how search works in arrays:
- ✅ Binary Search
- ✅ Linear Search
To get started with Algo Viz, download the latest release from the [Releases section](https://github.com/threngthan/algo-viz/releases). After downloading, extract the files and open the `index.html` file in your web browser.

Interactive:
- Enter a **target value**
- Visual feedback on array traversal
- Generate new random arrays
### Prerequisites

### 🔢 Sorting Visualizer
Sorting algorithms coming soon!
- ✅ UI Ready
- 🚧 Algorithm animations in progress
- Random array generation button included
- A modern web browser (Chrome, Firefox, Safari, etc.)
- Basic understanding of algorithms (optional but helpful)

---
## Usage

## 🖼️ Screenshots
Once you have the application open, you can choose from various algorithms. Each algorithm has a brief description, and you can initiate the visualization by clicking the corresponding button.

### PathFinder
![image](https://github.com/user-attachments/assets/1c79a926-deec-4814-8ea5-261b1177af99)
### Steps to Use

### Searching
![image](https://github.com/user-attachments/assets/7d115390-237e-4e3c-9ed0-4eb44bf360d7)
1. **Select an Algorithm**: Choose from pathfinding, searching, or sorting algorithms.
2. **Input Data**: If required, input your data into the provided fields.
3. **Start Visualization**: Click the "Visualize" button to see the algorithm in action.
4. **Pause/Resume**: You can pause or resume the visualization at any time.
5. **Reset**: Click the reset button to start over.

### Sorting
![image](https://github.com/user-attachments/assets/6aa3ba6f-4ffa-41b2-af9d-169944399eb4)
## Supported Algorithms

---
Algo Viz currently supports the following algorithms:

## 🛠️ Tech Stack
### Pathfinding Algorithms

- ⚛️ React.js
- 💅 Tailwind CSS
- 📦 JavaScript (ES6+)
- 🌐 Hosted on Vercel
- **A* Search**: A popular algorithm for finding the shortest path.
- **Dijkstra's Algorithm**: An efficient method for finding the shortest paths in a graph.
- **Breadth-First Search (BFS)**: Explores all neighbors at the present depth prior to moving on to nodes at the next depth level.
- **Depth-First Search (DFS)**: Explores as far as possible along each branch before backtracking.

---
### Searching Algorithms

## 📁 Getting Started
- **Linear Search**: A simple search algorithm that checks every element.
- **Binary Search**: Efficiently finds an item in a sorted array.

### Prerequisites
### Sorting Algorithms

- **Bubble Sort**: A simple sorting algorithm that repeatedly steps through the list.
- **Quick Sort**: An efficient sorting algorithm that uses divide-and-conquer.
- **Merge Sort**: A stable sorting algorithm that divides the array into halves.

## Technologies Used

- **React.js**: A JavaScript library for building user interfaces.
- **HTML/CSS**: For structuring and styling the application.
- **JavaScript**: For implementing the algorithms and interactivity.
- **D3.js**: For creating dynamic, interactive data visualizations.

## Contributing

We welcome contributions to Algo Viz! If you have suggestions or improvements, please fork the repository and submit a pull request. Here’s how to contribute:

1. **Fork the Repository**: Click on the "Fork" button at the top right corner.
2. **Clone Your Fork**: Use `git clone <your-fork-url>` to clone your fork to your local machine.
3. **Create a New Branch**: Use `git checkout -b feature-branch` to create a new branch for your feature.
4. **Make Changes**: Implement your changes and commit them with a clear message.
5. **Push Changes**: Push your changes to your fork using `git push origin feature-branch`.
6. **Submit a Pull Request**: Go to the original repository and click on "New Pull Request."

## License

This project is licensed under the MIT License. Feel free to use, modify, and distribute it as you see fit.

## Contact

For any inquiries or feedback, please reach out to the maintainer:

- **Name**: Your Name
- **Email**: your.email@example.com
- **GitHub**: [your-github-profile](https://github.com/your-github-profile)

For the latest releases, visit the [Releases section](https://github.com/threngthan/algo-viz/releases) to download the latest version.

## Acknowledgments

- Thanks to the open-source community for their contributions and support.
- Special thanks to the developers of the libraries used in this project.

- Node.js (v14 or higher)
- npm or yarn
## Conclusion

### Installation
Algo Viz aims to make learning algorithms engaging and accessible. By providing a visual representation, users can grasp complex concepts more easily. We hope you enjoy using Algo Viz and find it helpful in your learning journey.

```bash
git clone https://github.com/am-i-groot/algo-viz.git
cd algo-viz
npm install
npm start
For the latest updates and releases, check the [Releases section](https://github.com/threngthan/algo-viz/releases).
1 change: 1 addition & 0 deletions src/Algorithms/Path.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ const Path = () => {
const WallChange = (grid, row, col) => {
const newGrid = [...grid];
const node = newGrid[row][col];
if (node.isStart || node.isFinish) return grid;
const newNode = {
...node,
isWall: !node.isWall,
Expand Down