Algorithm Visualizer is an interactive web application that demonstrates classic sorting algorithms and pathfinding algorithms through real-time visualizations designed to support teaching and learning core Computer Science concepts.
The project helps users understand how algorithms behave step by step by combining animated visual feedback with adjustable controls such as data size, speed, and grid obstacles.
✔ Interactive sorting algorithm visualizations
✔ Dijkstra pathfinding visualization on a grid
✔ Adjustable dataset size and animation speed
✔ Obstacle placement with configurable start and end nodes
✔ Real-time algorithm animation for learning and demonstration
✔ Responsive web interface
✔ Unit testing with Jest
✔ End-to-end testing with Cypress
- Next.js
- TypeScript
- Tailwind CSS
- Jest
- Cypress
- React-based UI architecture
The application is structured into separate components for UI rendering, algorithm logic, animation control, and testing.
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Heap Sort
- Quick Sort
- Dijkstra’s Algorithm
- Adjustable start and end points
- Grid obstacle placement
- Interactive control panel
- Jest for unit testing
- Cypress for end-to-end browser testing
Live Demo:
Algorithm Visualizer on Vercel
algorithm-visualizer
│
├── app/
├── components/
├── cypress/
├── public/
│ └── screenshots/
│ ├── home.png
│ ├── sorting.png
│ └── pathfinding.png
├── tests/
├── utils/
├── README.md
├── package.json
└── LICENSE
- Node.js 18+
- npm
Clone the repository:
git clone https://github.com/rosscyking1115/algorithm-visualizer.git
cd algorithm-visualizerInstall dependencies:
npm installRun the development server:
npm run devThen open:
http://localhost:3000
- Add more pathfinding algorithms such as A* and BFS
- Add algorithm complexity explanations directly in the interface
- Improve mobile responsiveness
- Add sound or step-by-step playback mode
- Support custom array input and maze generation
- TypeScript
- Next.js
- Frontend component architecture
- Algorithm visualization
- UI state management
- Web-based interactive design
- Unit testing
- End-to-end testing
This project was originally developed as part of undergraduate study in Computer Science at Queen’s University Belfast, and has been refined and presented here as a portfolio project focused on interactive algorithm education and frontend software engineering.
Cheng-Yuan King


