Skip to content

shrav784/vizit

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

52 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 Vizit - Interactive Algorithm Visualizer

Vizit Banner

Learn algorithms visually through real-time, interactive animations

Next.js React TypeScript TailwindCSS License Hacktoberfest

πŸš€ Live Demo β€’ πŸ“– Documentation β€’ πŸ› Report Bug β€’ ✨ Request Feature


πŸ“š Table of Contents

  1. 🌟 About Vizit
  2. ✨ Why Vizit?
  3. πŸŽ₯ Demo
  4. πŸš€ Features
  5. πŸ› οΈ Tech Stack
  6. πŸ“¦ Installation
  7. 🎯 Usage
  8. 🀝 Contributing
  9. 🧩 GitHub Actions Setup
  10. πŸ—ΊοΈ Roadmap
  11. πŸ“– Documentation
  12. πŸ† Contributors
  13. πŸ“„ License
  14. πŸ’¬ Community & Support
  15. πŸ™ Acknowledgments
  16. ⭐ Show Your Support

🌟 About Vizit

Vizit (Visualize It) is an educational platform that brings algorithms to life through smooth, GPU-accelerated animations and interactive visualizations. Perfect for students, educators, and anyone curious about how algorithms work under the hood.

✨ Why Vizit?

  • 🎯 Real-time visualization - Watch algorithms execute step-by-step with beautiful animations
  • 🎨 Interactive controls - Pause, play, adjust speed, and navigate through each step
  • πŸŒ“ Dark/Light themes - Beautiful UI that adapts to your preference
  • πŸ“Š Performance metrics - Track comparisons, swaps, and complexity in real-time
  • 🧩 Multiple data structures - From sorting algorithms to trees and graphs
  • πŸŽ“ Educational focus - Clear explanations and pseudocode for every algorithm

πŸŽ₯ Demo

Coming Soon: Screenshots and GIFs showcasing Vizit in action!

Bubble Sort Merge Sort B-Tree Stack Queue
Bubble Sort Demo Merge Sort Demo B-Tree Demo Stack Demo Queue Demo

πŸš€ Features

πŸ”₯ Currently Implemented

Sorting Algorithms

  • βœ… Bubble Sort - Classic comparison-based sorting with step-by-step visualization
  • βœ… Merge Sort - Efficient divide-and-conquer sorting algorithm with interactive demo
  • 🚧 Quick Sort (Coming Soon)

Data Structures

  • βœ… Stack - LIFO operations with push, pop, and peek animations
  • βœ… Queue - FIFO operations with enqueue, dequeue, and peek animations
  • βœ… B-Tree - Self-balancing tree with configurable minimum degree
  • 🚧 Binary Search Tree (Coming Soon)
  • 🚧 Hash Table (Coming Soon)
  • 🚧 Queue (Coming Soon)
  • 🚧 Linked List (Coming Soon)

Graph

  • βœ… Breadth-First Search (BFS) - Explore Graphs Level-by-Level to Find Shortest Paths
  • 🚧 Depth-first Search (DFS) (Coming Soon)
  • 🚧 Kruskal's MST (Coming Soon)
  • 🚧 Prim's MST (Coming Soon)
  • 🚧 Topological Sort (Coming Soon)

🎨 Visualization Features

  • Step-by-step execution with pause/play controls
  • Variable speed control (100ms - 2000ms delay)
  • Code highlighting synchronized with visualization
  • Performance statistics (comparisons, swaps, time/space complexity)
  • Custom input - Test with your own data
  • Responsive design - Works on desktop and tablet

πŸ› οΈ Tech Stack

Vizit is built with modern web technologies for optimal performance:

Technology Purpose
Next.js 15.5 React framework with App Router and Turbopack
React 19.1 UI components with hooks and context
TypeScript 5.x Type-safe code for better DX
Tailwind CSS 4.x Utility-first styling with custom animations
IBM Plex Sans/Mono Beautiful, accessible typography

Architecture Highlights

  • Component-based architecture with reusable visualization components
  • Registry pattern for algorithm configurations
  • Context API for theme management
  • Custom hooks for animation control
  • Modular algorithm implementations - Easy to extend!

πŸ“¦ Installation

Prerequisites

  • Node.js 20.x or higher
  • npm, yarn, pnpm, or bun package manager

Quick Start

  1. Clone the repository

    git clone https://github.com/masabinhok/vizit.git
    cd vizit
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Run the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
  4. Open your browser

    Navigate to http://localhost:3000 to see Vizit in action!

Build for Production

npm run build
npm run start

🎯 Usage

Using Vizit

  1. Select an algorithm from the sidebar
  2. Enter custom input or use the default values
  3. Click "Initialize" to generate the visualization steps
  4. Control playback with play/pause, speed adjustment, or manual stepping
  5. Learn by reading the synchronized code and explanations

Project Structure

vizit/
β”œβ”€β”€ app/                        # Next.js App Router
β”‚   β”œβ”€β”€ algorithm/             # Algorithm routes (each has own page)
β”‚   β”‚   β”œβ”€β”€ bubble-sort/       # Bubble Sort visualization
β”‚   β”‚   β”œβ”€β”€ btree/             # B-Tree visualization
β”‚   β”‚   β”œβ”€β”€ stack/             # Stack visualization
β”‚   β”‚   └── layout.tsx         # Shared algorithm layout
β”‚   β”œβ”€β”€ algorithms/            # Algorithm implementations
β”‚   β”‚   └── bubble-sort.ts     # Bubble sort logic & config
β”‚   β”œβ”€β”€ layout.tsx             # Root layout
β”‚   └── page.tsx               # Landing page
β”œβ”€β”€ components/                 # React components
β”‚   β”œβ”€β”€ BTreeVisualization.tsx
β”‚   β”œβ”€β”€ ControlBar.tsx
β”‚   β”œβ”€β”€ InfoPanel.tsx
β”‚   β”œβ”€β”€ Sidebar.tsx
β”‚   β”œβ”€β”€ StackVisualization.tsx
β”‚   β”œβ”€β”€ ThemeToggle.tsx
β”‚   └── VisualizationCanvas.tsx
β”œβ”€β”€ constants/                  # Configuration files
β”‚   β”œβ”€β”€ algorithms.ts          # Algorithm metadata & categories
β”‚   └── registry.ts            # Algorithm registry (reference)
β”œβ”€β”€ contexts/                   # React contexts
β”‚   └── ThemeContext.tsx       # Theme management
β”œβ”€β”€ types/                      # TypeScript definitions
β”‚   └── index.ts
β”œβ”€β”€ docs/                       # Documentation
β”‚   └── ADDING_ALGORITHMS.md   # Guide for adding algorithms
└── public/                     # Static assets

Architecture Highlights:

  • ✨ Dedicated pages - Each algorithm has its own route (no dynamic routing)
  • 🧩 Component-based - Reusable visualization components
  • πŸ“ Type-safe - Full TypeScript support
  • 🎨 Modular - Easy to add new algorithms (see guide)

🀝 Contributing

We love contributions! Vizit is open-source and welcoming to developers of all skill levels.

πŸŽƒ Hacktoberfest 2025

Vizit is Hacktoberfest-friendly! We've tagged issues with hacktoberfest, good-first-issue, and help-wanted to help you get started.

How to Contribute

  1. Read our Contributing Guide
  2. Find an issue or propose a new feature
  3. Fork the repository
  4. Create a feature branch (git checkout -b feature/amazing-algorithm)
  5. Commit your changes (git commit -m 'Add QuickSort visualization')
  6. Push to your branch (git push origin feature/amazing-algorithm)
  7. Open a Pull Request

🌱 Good First Issues

Looking to contribute but not sure where to start? Check out these beginner-friendly areas:

  • 🎨 Add new algorithm visualizations (Merge Sort, Quick Sort, etc.) - See guide
  • πŸ“š Improve documentation and code comments
  • πŸ› Fix bugs or improve existing visualizations
  • ✨ Enhance UI/UX (animations, transitions, accessibility)
  • πŸ§ͺ Add tests for algorithm implementations
  • 🌐 Add internationalization support

See our Contributing Guide for detailed instructions!


🧩 GitHub Actions Setup

Vizit uses GitHub Actions for continuous integration, automated testing, security scanning, and deployment. Our CI/CD pipeline ensures code quality, security, and smooth releases.

πŸ€– Automated Workflows

πŸ§ͺ CI (Continuous Integration) - ci.yml

Runs comprehensive checks on all pull requests and pushes to main:

  • Lint - ESLint checks for code quality and style consistency
  • Type Check - TypeScript compiler validation
  • Build - Next.js production build verification
  • Caching - npm dependencies cached for faster runs

Triggers: PRs and pushes to main

🎨 Format Check - format.yml

Enforces consistent code formatting across the codebase:

  • Validates ESLint rules on all TypeScript/JavaScript files
  • Automatically comments on PRs with formatting issues
  • Helps maintain clean, readable code

Triggers: Pull requests modifying .ts, .tsx, .js, .jsx, .mjs, or .css files

πŸš€ Deploy - deploy.yml

Automatically deploys to Vercel after successful CI:

  • Builds production-ready Next.js application
  • Deploys to Vercel hosting platform
  • Creates deployment summary with commit details
  • Only runs when CI passes successfully

Triggers: Pushes to main after CI completion
Requirements: Vercel secrets (VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID)

πŸ’¬ Greetings - greetings.yml

Welcomes first-time contributors to the project:

  • Greets users opening their first issue
  • Welcomes first-time PR contributors
  • Provides helpful links to contributing guides
  • Highlights good first issues and Hacktoberfest opportunities

Triggers: New issues and pull requests from first-time contributors

🏷️ Auto Label - label.yml

Intelligently categorizes issues and pull requests:

  • Content-based labeling - Analyzes title and body text
  • File-based labeling - Detects changes in specific directories
  • Labels: algorithm, bug, documentation, enhancement, ui/ux, security, dependencies, and more
  • Helps maintainers prioritize and organize contributions

Triggers: New or edited issues and pull requests

πŸ”’ CodeQL Security Analysis - codeql.yml

Scans for security vulnerabilities and code quality issues:

  • GitHub's advanced semantic code analysis engine
  • Detects common security vulnerabilities (SQL injection, XSS, etc.)
  • Runs on TypeScript/JavaScript codebase
  • Weekly scheduled scans every Monday
  • Results visible in Security tab

Triggers: PRs, pushes to main, and weekly on Mondays at 6:00 AM UTC

πŸ“¦ Dependabot - dependabot.yml

Keeps dependencies up-to-date automatically:

  • npm dependencies - Weekly updates for all packages
  • GitHub Actions - Weekly updates for workflow actions
  • Groups related updates (Next.js, React, TypeScript, Tailwind, ESLint)
  • Auto-labels PRs as dependencies and automated
  • Conventional commit messages (chore(deps), chore(ci))

Schedule: Every Monday at 6:00 AM UTC

🎯 Workflow Status Badges

Add these badges to show workflow status:

![CI](https://github.com/masabinhok/vizit/actions/workflows/ci.yml/badge.svg)
![CodeQL](https://github.com/masabinhok/vizit/actions/workflows/codeql.yml/badge.svg)

πŸ› οΈ Setting Up for Your Fork

If you fork this repository, you'll need to configure:

  1. Vercel Deployment (optional):

    • Add repository secrets: VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID
    • Get these from your Vercel account settings
  2. GitHub Actions:

    • Automatically enabled for public repositories
    • Check the "Actions" tab to see workflow runs
  3. Dependabot:

    • Enabled by default with the configuration file
    • Review and merge dependency update PRs regularly

πŸ“Š Benefits

βœ… Quality Assurance - Catch bugs and issues before merging
βœ… Security - Automated vulnerability scanning with CodeQL
βœ… Consistency - Enforced code style and formatting
βœ… Automation - Less manual work, more coding time
βœ… Contributor-Friendly - Clear feedback and welcoming messages
βœ… Up-to-Date - Automated dependency updates


πŸ—ΊοΈ Roadmap

🎯 Upcoming Features

Q1 2025

  • Quick Sort visualization
  • Merge Sort visualization
  • Binary Search visualization
  • Improved mobile responsiveness
  • Algorithm comparison mode

Q2 2025

  • Graph algorithms (BFS, DFS, Dijkstra)
  • Dynamic programming visualizations
  • Custom algorithm builder
  • Save/share visualizations
  • Tutorial mode for beginners

Future

  • WebAssembly for performance-critical algorithms
  • Collaborative learning features
  • Algorithm challenges and quizzes
  • AI-powered explanations

πŸ“– Documentation


πŸ† Contributors

Thank you to all our amazing contributors! πŸŽ‰

Want to see your name here? Check out our Contributing Guide!


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ’¬ Community & Support


πŸ™ Acknowledgments


⭐ Show Your Support

If you find Vizit helpful, please consider:

  • ⭐ Starring this repository
  • πŸ”€ Forking and contributing
  • πŸ“’ Sharing with friends and classmates
  • πŸ’¬ Providing feedback through issues

Made with πŸ’™ by the Vizit Community

⬆ Back to Top

About

Experience the beauty of algorithms through interactive visualizations, step-by-step breakdowns, and real-time animations.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 98.8%
  • CSS 1.1%
  • JavaScript 0.1%