Skip to content

alienx5499/SortVision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1,381 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐ŸŒŸ SortVision ๐ŸŒŸ

Interactive Sorting Algorithm Visualizer

Build Passing Node.js Contributions Welcome License: MIT Platform Views โญ GitHub stars ๐Ÿด GitHub forks Commits ๐Ÿ› GitHub issues ๐Ÿ“‚ GitHub pull requests ๐Ÿ’พ GitHub code size


๐ŸŽฏ What is SortVision?

SortVision is an interactive web application that brings sorting algorithms to life through real-time visualization. Built with modern web technologies, it provides an engaging platform for learning and understanding various sorting algorithms.

๐ŸŒŸ Key Features

  • Interactive Visualizations: Watch sorting algorithms in action with real-time animations
  • Multiple Algorithms: Explore 8 different sorting algorithms
  • Customizable Parameters: Adjust speed, array size, and more
  • Performance Metrics: Track comparisons, swaps, and time complexity
  • Educational Insights: Learn about algorithm behavior and efficiency
  • Responsive Design: Works seamlessly on desktop and mobile devices

"Visualize your data, understand sorting better!"

๐Ÿš€ Help Us Build Something Amazing Together!

Made algorithms click for you? You're exactly who we built this for! โœจ Help other developers discover what you just experienced ๐Ÿ’

Star this repo Tweet about SortVision Try SortVision Live View Contributors

๐Ÿ’ญ "Every star motivates us to add more algorithms and features!" - The SortVision Team


๐Ÿ“š Table of Contents

  1. โœจ Features
  2. ๐Ÿฆพ Tech Stack
  3. ๐Ÿ“‚ Project Structure
  4. ๐Ÿ“ธ Screenshots
  5. ๐Ÿš€ Quick Start
  6. ๐Ÿ‘จโ€๐Ÿ”ง Detailed Setup
  7. ๐Ÿ› ๏ธ Developer Tools
  8. ๐ŸŽฏ Target Audience
  9. ๐Ÿค Contributing
  10. ๐ŸŒŸ Awesome Contributors
  11. ๐Ÿ“œ License
  12. ๐Ÿ“ฌ Feedback & Suggestions

โœจ Features

๐ŸŽฎ Interactive Visualization

  • Real-time visual representation of sorting steps
  • Adjustable animation speed
  • Pause and resume functionality
  • Array size customization
  • Random array generation

๐Ÿ“Š Supported Algorithms

  • Bubble Sort: Simple comparison-based algorithm
  • Selection Sort: In-place comparison sorting
  • Insertion Sort: Adaptive sorting algorithm
  • Merge Sort: Divide-and-conquer algorithm
  • Quick Sort: Efficient, in-place sorting
  • Heap Sort: Comparison-based sorting using binary heap data structure
  • Radix Sort: Non-comparative integer sorting
  • Bucket Sort: Distribution sort that groups elements into buckets

๐Ÿ“ˆ Performance Tracking

  • Real-time comparison count
  • Swap operation tracking
  • Time complexity visualization
  • Algorithm efficiency metrics

๐ŸŽจ User Interface

  • Modern, responsive design
  • Dark mode support
  • Mobile-friendly interface
  • Intuitive controls

๐Ÿฆพ Tech Stack

๐ŸŒ Frontend Technologies

  • Framework: React.js with Next.js
  • Styling: Tailwind CSS v4 with custom animations
  • Icons: Lucide React
  • Audio: Web Audio API
  • Analytics: Vercel Analytics & Speed Insights
  • Routing: React Router DOM (client-side) with Next.js App Router
  • Build Tool: Next.js

๐Ÿ› ๏ธ Development Tools

  • Build Tool: Vite
  • Package Manager: npm/pnpm
  • Code Quality: ESLint
  • Version Control: Git
  • Deployment: Vercel

๐Ÿ”ง Future Enhancements

  • Backend integration with Node.js
  • User preferences storage
  • Algorithm performance history
  • Custom algorithm support

๐Ÿ“‚ Project Structure

SortVision/
โ”œโ”€ .github/                    # GitHub specific configurations
โ”‚  โ”œโ”€ ISSUE_TEMPLATE/          # Templates for GitHub issues
โ”‚  โ”‚  โ”œโ”€ bug_report.md         # Bug report template
โ”‚  โ”‚  โ”œโ”€ config.yml            # Issue template configuration
โ”‚  โ”‚  โ”œโ”€ documentation.md      # Documentation request template
โ”‚  โ”‚  โ”œโ”€ feature_request.md    # Feature request template
โ”‚  โ”‚  โ””โ”€ performance.md        # Performance issue template
โ”‚  โ”œโ”€ dependabot.yml           # Dependabot configuration
โ”‚  โ””โ”€ pull_request_template.md # PR template
โ”œโ”€ .gitignore                  # Git ignore configuration
โ”œโ”€ CODE_OF_CONDUCT.md          # Community code of conduct
โ”œโ”€ CONTRIBUTING.md             # Contribution guidelines
โ”œโ”€ LICENSE                     # MIT license file
โ”œโ”€ README.md                   # Project documentation (this file)
โ”œโ”€ SECURITY.md                 # Security policy and reporting
โ””โ”€ SortVision/                 # Main application directory
   โ”œโ”€ .env.example             # Environment variables template
   โ”œโ”€ Dockerfile               # Docker containerization config
   โ”œโ”€ api/                     # API endpoints
   โ”‚  โ””โ”€ gemini.js             # Gemini AI API integration
   โ”œโ”€ components.json          # Component configuration
   โ”œโ”€ docker-compose.yml       # Docker Compose configuration
   โ”œโ”€ eslint.config.js         # ESLint configuration
   โ”œโ”€ jsconfig.json            # JavaScript configuration
   โ”œโ”€ next.config.mjs          # Next.js configuration
   โ”œโ”€ nginx.conf               # Nginx configuration
   โ”œโ”€ package-lock.json        # NPM package lock
   โ”œโ”€ package.json             # NPM package definition
   โ”œโ”€ pnpm-lock.yaml           # PNPM package lock
   โ”œโ”€ postcss.config.mjs       # PostCSS configuration
   โ”œโ”€ public/                  # Public static assets
   โ”‚  โ”œโ”€ code/                 # Algorithm implementations in multiple languages
   โ”‚  โ”‚  โ”œโ”€ bubble/            # Bubble Sort implementations
   โ”‚  โ”‚  โ”‚  โ”œโ”€ c/              # C implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.c
   โ”‚  โ”‚  โ”‚  โ”œโ”€ cpp/            # C++ implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.cpp
   โ”‚  โ”‚  โ”‚  โ”œโ”€ csharp/         # C# implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.cs
   โ”‚  โ”‚  โ”‚  โ”œโ”€ dart/           # Dart implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.dart
   โ”‚  โ”‚  โ”‚  โ”œโ”€ golang/         # Go implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.go
   โ”‚  โ”‚  โ”‚  โ”œโ”€ haskell/        # Haskell implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.hs
   โ”‚  โ”‚  โ”‚  โ”œโ”€ java/           # Java implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.java
   โ”‚  โ”‚  โ”‚  โ”œโ”€ javascript/     # JavaScript implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.js
   โ”‚  โ”‚  โ”‚  โ”œโ”€ julia/          # Julia implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.jl
   โ”‚  โ”‚  โ”‚  โ”œโ”€ kotlin/         # Kotlin implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.kt
   โ”‚  โ”‚  โ”‚  โ”œโ”€ lua/            # Lua implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.lua
   โ”‚  โ”‚  โ”‚  โ”œโ”€ php/            # PHP implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.php
   โ”‚  โ”‚  โ”‚  โ”œโ”€ pseudocode/     # Pseudocode representation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.txt
   โ”‚  โ”‚  โ”‚  โ”œโ”€ python/         # Python implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.py
   โ”‚  โ”‚  โ”‚  โ”œโ”€ r/              # R implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.r
   โ”‚  โ”‚  โ”‚  โ”œโ”€ ruby/           # Ruby implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.rb
   โ”‚  โ”‚  โ”‚  โ”œโ”€ rust/           # Rust implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.rs
   โ”‚  โ”‚  โ”‚  โ”œโ”€ scala/          # Scala implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.scala
   โ”‚  โ”‚  โ”‚  โ”œโ”€ swift/          # Swift implementation
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ bubbleSort.swift
   โ”‚  โ”‚  โ”‚  โ””โ”€ typescript/     # TypeScript implementation
   โ”‚  โ”‚  โ”‚     โ””โ”€ bubbleSort.ts
   โ”‚  โ”‚  โ”œโ”€ bucket/            # Bucket Sort implementations (same structure)
   โ”‚  โ”‚  โ”œโ”€ heap/              # Heap Sort implementations (same structure)
   โ”‚  โ”‚  โ”œโ”€ insertion/         # Insertion Sort implementations (same structure)
   โ”‚  โ”‚  โ”œโ”€ merge/             # Merge Sort implementations (same structure)
   โ”‚  โ”‚  โ”œโ”€ quick/             # Quick Sort implementations (same structure)
   โ”‚  โ”‚  โ”œโ”€ radix/             # Radix Sort implementations (same structure)
   โ”‚  โ”‚  โ””โ”€ selection/         # Selection Sort implementations (same structure)
   โ”‚  โ”œโ”€ devTools/             # Developer tools directory
   โ”‚  โ”‚  โ”œโ”€ core.js            # Core utilities and initialization
   โ”‚  โ”‚  โ”œโ”€ device-info.js     # Device detection and information
   โ”‚  โ”‚  โ”œโ”€ index.js           # Main entry point for debug tools
   โ”‚  โ”‚  โ”œโ”€ monitoring.js      # Performance monitoring utilities
   โ”‚  โ”‚  โ”œโ”€ performance.js     # Performance metrics tracking
   โ”‚  โ”‚  โ””โ”€ ui.js              # Debug UI components and panel
   โ”‚  โ”œโ”€ favicon.svg           # Site favicon
   โ”‚  โ”œโ”€ google12e2679e2ea95334.html # Google site verification
   โ”‚  โ”œโ”€ manifest.json         # PWA manifest
   โ”‚  โ”œโ”€ mobile.css            # Mobile-specific styles
   โ”‚  โ”œโ”€ og-image.png          # Open Graph image for sharing
   โ”‚  โ”œโ”€ robots.txt            # Search engine crawling instructions
   โ”‚  โ”œโ”€ sitemap.xml           # Site map for search engines
   โ”‚  โ”œโ”€ splash.svg            # App splash screen
   โ”‚  โ”œโ”€ sw.js                 # Service worker for offline support
   โ”‚  โ””โ”€ twitter-image.png     # Twitter card image
   โ”œโ”€ scripts/                 # Build and utility scripts
   โ”‚  โ””โ”€ generate-sitemap.js   # Sitemap generator
   โ”œโ”€ server/                  # Backend server directory
   โ”‚  โ””โ”€ index.js              # Express server for API proxy
   โ”œโ”€ src/                     # Source code directory
   โ”‚  โ”œโ”€ App.css               # App-level styles
   โ”‚  โ”œโ”€ App.jsx               # Main App component
   โ”‚  โ”œโ”€ algorithms/           # Sorting algorithm implementations
   โ”‚  โ”‚  โ”œโ”€ bubbleSort.jsx     # Bubble sort implementation
   โ”‚  โ”‚  โ”œโ”€ bucketSort.jsx     # Bucket sort implementation
   โ”‚  โ”‚  โ”œโ”€ heapSort.jsx       # Heap sort implementation
   โ”‚  โ”‚  โ”œโ”€ index.js           # Algorithm exports
   โ”‚  โ”‚  โ”œโ”€ insertionSort.jsx  # Insertion sort implementation
   โ”‚  โ”‚  โ”œโ”€ mergeSort.jsx      # Merge sort implementation
   โ”‚  โ”‚  โ”œโ”€ quickSort.jsx      # Quick sort implementation
   โ”‚  โ”‚  โ”œโ”€ radixSort.jsx      # Radix sort implementation
   โ”‚  โ”‚  โ””โ”€ selectionSort.jsx  # Selection sort implementation
   โ”‚  โ”œโ”€ app/                  # Next.js App Router directory
   โ”‚  โ”‚  โ”œโ”€ [[...slug]]/       # Dynamic catch-all route
   โ”‚  โ”‚  โ”‚  โ”œโ”€ client.jsx      # Client-side component
   โ”‚  โ”‚  โ”‚  โ””โ”€ page.jsx        # Page component
   โ”‚  โ”‚  โ”œโ”€ favicon.svg        # App favicon
   โ”‚  โ”‚  โ”œโ”€ globals.css        # Global CSS styles
   โ”‚  โ”‚  โ””โ”€ layout.jsx         # Root layout component
   โ”‚  โ”œโ”€ components/           # UI components
   โ”‚  โ”‚  โ”œโ”€ MobileOverlay.jsx  # Mobile device support
   โ”‚  โ”‚  โ”œโ”€ SEOContent.jsx     # SEO content component
   โ”‚  โ”‚  โ”œโ”€ SortingVisualizer.jsx # Main visualization component
   โ”‚  โ”‚  โ”œโ”€ chatbot/           # AI Chatbot components
   โ”‚  โ”‚  โ”‚  โ”œโ”€ ChatAssistant.jsx # Main chatbot component
   โ”‚  โ”‚  โ”‚  โ”œโ”€ ChatButton.jsx  # Chat button trigger
   โ”‚  โ”‚  โ”‚  โ”œโ”€ ChatModal.jsx   # Chat modal dialog
   โ”‚  โ”‚  โ”‚  โ”œโ”€ assistantEngine.js # AI engine logic
   โ”‚  โ”‚  โ”‚  โ””โ”€ index.js        # Chatbot exports
   โ”‚  โ”‚  โ”œโ”€ feedback/          # User feedback system
   โ”‚  โ”‚  โ”‚  โ”œโ”€ FeedbackButton.jsx # Feedback button
   โ”‚  โ”‚  โ”‚  โ”œโ”€ FeedbackForm.jsx # Feedback form
   โ”‚  โ”‚  โ”‚  โ”œโ”€ FeedbackModal.jsx # Feedback modal
   โ”‚  โ”‚  โ”‚  โ”œโ”€ githubService.js # GitHub integration
   โ”‚  โ”‚  โ”‚  โ”œโ”€ index.js        # Feedback exports
   โ”‚  โ”‚  โ”‚  โ””โ”€ locationService.js # Location detection
   โ”‚  โ”‚  โ”œโ”€ panels/            # UI panels directory
   โ”‚  โ”‚  โ”‚  โ”œโ”€ ConfigPanel.jsx # Configuration panel
   โ”‚  โ”‚  โ”‚  โ”œโ”€ ContributionPanel.jsx # Contribution information panel
   โ”‚  โ”‚  โ”‚  โ”œโ”€ DetailsPanel.jsx # Algorithm details panel
   โ”‚  โ”‚  โ”‚  โ”œโ”€ MetricsPanel.jsx # Performance metrics panel
   โ”‚  โ”‚  โ”‚  โ”œโ”€ config/         # Configuration components
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ AlgorithmSelector.jsx # Algorithm selection
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ ArraySizeControl.jsx # Array size controls
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ ComplexityInfo.jsx # Complexity information
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ ControlButtons.jsx # Control buttons
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ SpeedControl.jsx # Animation speed control
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ index.js     # Config component exports
   โ”‚  โ”‚  โ”‚  โ”œโ”€ contributions/  # Contribution-related components
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ guide/       # Contribution guides
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ BestPractices.jsx # Best practices guide
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ ContributeGuide.jsx # How to contribute guide
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ QuickReferences.jsx # Quick reference guide
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ index.js  # Guide component exports
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ index.js     # Contribution component exports
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ overview/    # Contribution overview
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ ContributorList.jsx # List of contributors
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ ContributorStats.jsx # Contributor statistics
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ RepositoryHealth.jsx # Repository health metrics
   โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ index.js  # Overview component exports
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ ssoc/        # SSOC leaderboard system
   โ”‚  โ”‚  โ”‚  โ”‚     โ”œโ”€ ExportButton.jsx # Data export functionality
   โ”‚  โ”‚  โ”‚  โ”‚     โ”œโ”€ LeaderboardList.jsx # Leaderboard display
   โ”‚  โ”‚  โ”‚  โ”‚     โ”œโ”€ LeaderboardRow.jsx # Individual row component
   โ”‚  โ”‚  โ”‚  โ”‚     โ”œโ”€ config.js # Configuration settings
   โ”‚  โ”‚  โ”‚  โ”‚     โ”œโ”€ exportService.js # Export service logic
   โ”‚  โ”‚  โ”‚  โ”‚     โ”œโ”€ githubService.js # GitHub API integration
   โ”‚  โ”‚  โ”‚  โ”‚     โ””โ”€ index.js  # SSOC exports
   โ”‚  โ”‚  โ”‚  โ”œโ”€ details/        # Detail components
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ AlgorithmDetails.jsx # Algorithm detail display
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ AlgorithmInfo.jsx # Algorithm information
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ AlgorithmSelector.jsx # Algorithm selection
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ DataPanel.jsx # Data display panel
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ FunFact.jsx  # Fun facts about algorithms
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ InteractiveTip.jsx # Interactive tips
   โ”‚  โ”‚  โ”‚  โ”‚  โ”œโ”€ LanguageSelector.jsx # Programming language selector
   โ”‚  โ”‚  โ”‚  โ”‚  โ””โ”€ index.js     # Detail component exports
   โ”‚  โ”‚  โ”‚  โ”œโ”€ index.js        # Panel component exports
   โ”‚  โ”‚  โ”‚  โ””โ”€ metrics/        # Metric components
   โ”‚  โ”‚  โ”‚     โ”œโ”€ AlgorithmComparison.jsx # Algorithm comparisons
   โ”‚  โ”‚  โ”‚     โ”œโ”€ CurrentRunMetrics.jsx # Current run metrics
   โ”‚  โ”‚  โ”‚     โ”œโ”€ RankingCard.jsx # Algorithm ranking display
   โ”‚  โ”‚  โ”‚     โ”œโ”€ TestControls.jsx # Testing controls
   โ”‚  โ”‚  โ”‚     โ”œโ”€ WinnerSummary.jsx # Algorithm comparison results
   โ”‚  โ”‚  โ”‚     โ””โ”€ index.js     # Metric component exports
   โ”‚  โ”‚  โ”œโ”€ settings/          # Application settings
   โ”‚  โ”‚  โ”‚  โ”œโ”€ SettingsButton.jsx # Settings button
   โ”‚  โ”‚  โ”‚  โ”œโ”€ SettingsForm.jsx # Settings form
   โ”‚  โ”‚  โ”‚  โ”œโ”€ SettingsModal.jsx # Settings modal
   โ”‚  โ”‚  โ”‚  โ””โ”€ index.js        # Settings exports
   โ”‚  โ”‚  โ”œโ”€ sortingVisualizer/ # Visualization components
   โ”‚  โ”‚  โ”‚  โ”œโ”€ AudioControls.jsx # Audio control components
   โ”‚  โ”‚  โ”‚  โ”œโ”€ PerformanceMetrics.jsx # Performance display
   โ”‚  โ”‚  โ”‚  โ”œโ”€ SortingControls.jsx # Sorting control buttons
   โ”‚  โ”‚  โ”‚  โ”œโ”€ SortingHeader.jsx # Visualization header
   โ”‚  โ”‚  โ”‚  โ”œโ”€ SortingVisualizer.jsx # Main visualizer
   โ”‚  โ”‚  โ”‚  โ””โ”€ index.js        # Visualizer component exports
   โ”‚  โ”‚  โ”œโ”€ ui/                # UI component library
   โ”‚  โ”‚  โ”‚  โ”œโ”€ VolumeControl.jsx # Volume control component
   โ”‚  โ”‚  โ”‚  โ”œโ”€ badge.jsx       # Badge component
   โ”‚  โ”‚  โ”‚  โ”œโ”€ button.jsx      # Button component
   โ”‚  โ”‚  โ”‚  โ”œโ”€ card.jsx        # Card component
   โ”‚  โ”‚  โ”‚  โ”œโ”€ input.jsx       # Input component
   โ”‚  โ”‚  โ”‚  โ”œโ”€ select.jsx      # Select dropdown component
   โ”‚  โ”‚  โ”‚  โ”œโ”€ slider.jsx      # Slider component
   โ”‚  โ”‚  โ”‚  โ””โ”€ tabs.jsx        # Tabs component
   โ”‚  โ”‚  โ””โ”€ visualizations/    # Visualization components
   โ”‚  โ”‚     โ”œโ”€ ArrayVisualization.jsx # Array visual representation
   โ”‚  โ”‚     โ””โ”€ index.js        # Visualization component exports
   โ”‚  โ”œโ”€ context/              # React Context providers
   โ”‚  โ”‚  โ””โ”€ AlgorithmState.jsx # Algorithm state management
   โ”‚  โ”œโ”€ hooks/                # Custom React hooks
   โ”‚  โ”‚  โ””โ”€ useAudio.js        # Audio management hook
   โ”‚  โ”œโ”€ index.css             # Global styles
   โ”‚  โ”œโ”€ lib/                  # Library utilities
   โ”‚  โ”‚  โ””โ”€ utils.js           # Shared utility functions
   โ”‚  โ””โ”€ utils/                # Utility modules
   โ”‚     โ”œโ”€ audioEngine.js     # Audio engine for sound effects
   โ”‚     โ”œโ”€ seo.js             # SEO optimization utilities
   โ”‚     โ”œโ”€ soundEffects.js    # Sound effect definitions
   โ”‚     โ””โ”€ themeUtils.js      # Theme management utilities
   โ””โ”€ vercel.json              # Vercel deployment configuration

๐Ÿ“ Key Directories and Files:

  • public/code/: Complete algorithm implementations in 20+ programming languages for educational reference
  • src/app/: Next.js App Router with dynamic routing and SEO-optimized metadata
  • src/components/chatbot/: AI-powered chatbot system with advanced algorithm knowledge
  • src/components/feedback/: Comprehensive user feedback system with GitHub integration
  • src/components/panels/contributions/ssoc/: SSOC (Social Summer of Code) leaderboard and contribution tracking
  • src/utils/audioEngine.js: Advanced audio engine for immersive sorting visualization experience
  • server/: Express.js backend server for API proxy and external service integration
  • api/: API endpoints including Gemini AI integration for the chatbot
  • scripts/: Build automation and SEO optimization scripts
  • .github/: Comprehensive GitHub workflows, issue templates, and community guidelines

๐Ÿ“ธ Screenshots

Visualizer & Metric Selection Screens

Visualizer Screen Metric Screen Metric Screen
Visualizer Screen Metric Screen Details Screen
DevTools Panel DevTools Performance Monitoring DevTools Device Information
DevTools Panel Performance Monitoring Device Information

๐Ÿš€ Quick Start

  1. Visit the Website Try the WebSite

  2. Choose an Algorithm

    • Select from the available sorting algorithms
    • Adjust visualization parameters
  3. Start Visualizing

    • Click "Start" to begin the visualization
    • Use controls to adjust speed and pause/resume

๐Ÿ› ๏ธ Developer Tools

SortVision includes a comprehensive suite of developer tools designed to enhance the development experience, debug performance issues, and monitor application behavior in real-time. These tools are intelligently restricted to development environments only and are automatically blocked in production deployments for security and performance optimization.

๐Ÿ” Security & Access Control

The DevTools implement a sophisticated access control system:

  • Development-Only Access: Tools are completely inaccessible in production environments
  • URL-Based Authentication: Requires specific query parameters for activation
  • Domain Restrictions: Automatically detects and blocks access on production domains
  • Performance Protection: Prevents performance degradation in live environments

โšก Accessing DevTools

Prerequisites

  • Node.js development environment
  • Local development server running
  • Modern browser with JavaScript enabled

Access Methods

  1. Standard Development Access:

    npm run dev
    # or
    pnpm dev
  2. DevTools Activation:

    http://localhost:3000/?cr7=goat
    
  3. Alternative Local URLs:

    http://127.0.0.1:3000/?cr7=goat
    http://localhost:3000/?cr7=goat  # Next.js default port
    

๐Ÿ›ก๏ธ Security Note: The query parameter cr7=goat acts as a development key and is intentionally obscure to prevent accidental activation. This parameter is completely ignored in production environments.

๐Ÿงฐ DevTools Feature Suite

๐Ÿ“Š Performance Monitoring

Real-time performance tracking with detailed metrics:

  • Frame Rate Analysis

    • Live FPS counter with historical data
    • Frame time distribution graphs
    • Performance bottleneck detection
    • Smooth/choppy animation identification
  • Memory Usage Tracking

    • Heap memory consumption monitoring
    • Memory leak detection
    • Garbage collection impact analysis
    • Memory usage trends and patterns
  • Rendering Performance

    • Component render time tracking
    • Re-render frequency analysis
    • DOM manipulation performance
    • CSS animation performance metrics
  • Algorithm Execution Metrics

    • Sorting algorithm performance comparison
    • Step-by-step execution timing
    • Memory allocation during sorting
    • Optimization opportunity identification

๐Ÿ“ฑ Device Information Panel

Comprehensive device and browser analysis:

  • Hardware Specifications

    • CPU core count and architecture
    • Available RAM and usage
    • GPU information and capabilities
    • Screen resolution and pixel density
  • Browser Environment

    • User agent string analysis
    • Supported web APIs
    • JavaScript engine details
    • CSS feature support matrix
  • Network Information

    • Connection type and speed
    • Bandwidth estimation
    • Latency measurements
    • Network quality assessment
  • Viewport and Display

    • Screen dimensions and orientation
    • Color depth and HDR support
    • Touch capability detection
    • Device pixel ratio

๐Ÿ’ป Console Integration

Enhanced debugging capabilities:

  • Formatted Logging

    • Color-coded log levels
    • Structured data visualization
    • Error stack trace enhancement
    • Performance timing logs
  • Interactive Debugging

    • Variable inspection tools
    • Breakpoint management
    • Call stack visualization
    • Memory snapshot analysis

๐Ÿ“ˆ Advanced Monitoring Features

  • Algorithm Visualization Metrics

    • Animation frame consistency
    • Sorting step accuracy verification
    • Visual element positioning tracking
    • User interaction response times
  • Resource Loading Analysis

    • Asset loading performance
    • Bundle size impact assessment
    • Lazy loading effectiveness
    • Critical resource identification
  • Error Tracking & Reporting

    • Runtime error capture
    • Promise rejection handling
    • Component error boundaries
    • Performance regression detection

๐Ÿ” Using DevTools for Development

Basic Usage

  1. Panel Management

    // Toggle DevTools panel
    // Click "TOGGLE PANEL" button in the floating widget
    
    // Close DevTools completely
    // Click "CLOSE" button to hide all tools
  2. Performance Monitoring

    // Monitor specific algorithm performance
    // Select algorithm and watch real-time metrics
    // Compare performance across different array sizes
    // Identify performance bottlenecks during sorting

Advanced Development Workflows

  1. Performance Optimization

    • Use FPS monitoring to identify animation issues
    • Analyze memory usage during long sorting operations
    • Monitor rendering performance with different array sizes
    • Compare algorithm efficiency in real-time
  2. Cross-Device Testing

    • Verify responsive design across different screen sizes
    • Test touch interactions on mobile devices
    • Analyze performance on low-end devices
    • Ensure compatibility across browser engines
  3. Algorithm Development

    • Debug new sorting algorithm implementations
    • Verify correctness of sorting steps
    • Optimize animation performance
    • Test edge cases and error handling

Performance Optimization Tips

  • Memory Management

    // Monitor memory during array operations
    // Identify memory leaks in algorithm implementations
    // Optimize garbage collection patterns
  • Rendering Optimization

    // Track component re-renders
    // Identify unnecessary DOM updates
    // Optimize CSS animations for 60fps

โš™๏ธ Technical Implementation

Architecture Overview

  • Modular Design: Each tool is implemented as an independent module
  • Event-Driven: Uses observer pattern for real-time updates
  • Non-Intrusive: Minimal impact on application performance
  • Conditional Loading: Only loads when explicitly requested

File Structure

public/devTools/
โ”œโ”€โ”€ index.js          # Main entry point and tool orchestration
โ”œโ”€โ”€ core.js           # Core utilities and initialization logic
โ”œโ”€โ”€ performance.js    # Performance monitoring implementation
โ”œโ”€โ”€ device-info.js    # Device detection and analysis
โ”œโ”€โ”€ monitoring.js     # Real-time monitoring utilities
โ””โ”€โ”€ ui.js            # User interface components and styling

API Integration

// Example DevTools API usage
window.devTools = {
  performance: {
    startMonitoring(),
    getMetrics(),
    createReport()
  },
  device: {
    getInfo(),
    runDiagnostics(),
    exportData()
  }
};

๐Ÿšจ Troubleshooting

Common Issues

  1. DevTools Not Loading

    # Verify development server is running
    npm run dev
    
    # Check URL parameters
    http://localhost:3000/?cr7=goat
    
    # Clear browser cache
    Ctrl+Shift+R (Windows/Linux)
    Cmd+Shift+R (Mac)
  2. Performance Issues

    // If DevTools impact performance:
    // 1. Close unnecessary monitoring panels
    // 2. Reduce monitoring frequency
    // 3. Disable heavy metrics collection
  3. Browser Compatibility

    // Supported browsers:
    // Chrome 80+, Firefox 75+, Safari 13+, Edge 80+
    // Some features may be limited in older browsers

Performance Considerations

  • Development Impact: DevTools add ~2-5% performance overhead
  • Memory Usage: Additional 10-20MB RAM usage when active
  • Network: Minimal network impact (local tools only)
  • Battery: May increase battery usage on mobile devices

๐ŸŽช Advanced Features

Custom Metrics

// Add custom performance markers
performance.mark("algorithm-start");
// ... sorting algorithm execution
performance.mark("algorithm-end");
performance.measure("algorithm-duration", "algorithm-start", "algorithm-end");

Export Capabilities

  • Performance reports in JSON format
  • Device information as downloadable data
  • Memory usage charts and graphs
  • Algorithm performance comparisons

Integration with Popular Tools

  • React DevTools: Enhanced component inspection
  • Chrome DevTools: Extended performance profiling
  • Lighthouse: Performance audit integration
  • WebPageTest: Network performance analysis

๐ŸŽฏ Best Practices

  1. Development Workflow

    • Always test with DevTools enabled during development
    • Use performance metrics to guide optimization decisions
    • Monitor memory usage during algorithm development
    • Regularly check device compatibility
  2. Performance Testing

    • Test on various device specifications
    • Monitor performance across different array sizes
    • Verify smooth animations at 60fps
    • Check memory usage patterns
  3. Debugging Strategy

    • Use console integration for systematic debugging
    • Leverage performance metrics for bottleneck identification
    • Monitor device information for compatibility issues
    • Track user interaction patterns

๐Ÿ’ก Pro Tip: Use DevTools data to create performance budgets and ensure consistent user experience across all devices and browsers.


๐Ÿ‘จโ€๐Ÿ”ง Detailed Setup

Prerequisites

  • Node.js (v16.10.0 or higher)
  • npm or pnpm package manager
  • Git for version control

Installation Steps

  1. Clone the Repository

    git clone https://github.com/alienx5499/SortVision.git
  2. Navigate to Project Directory

    cd SortVision
  3. Install Dependencies

    npm install
    # or
    pnpm install
  4. Start Development Server

    npm run dev
    # or
    pnpm dev
  5. Open in Browser

    • Visit http://localhost:3000
    • Start exploring sorting algorithms!

๐Ÿณ Docker Setup

SortVision can be run using Docker, which ensures consistent development and deployment environments across all platforms.

Prerequisites

  • Docker installed on your machine
  • Docker Compose (usually comes with Docker Desktop)

Running with Docker

  1. Development Mode

    # Build and start the development server
    docker compose up dev
    
    # Access the application at:
    http://localhost:7777

    Development mode features:

    • Hot reloading enabled
    • Source code mounted for live updates
    • Development tools available
    • Real-time compilation
  2. Production Mode

    # Build and start the production server
    docker compose up prod
    
    # Access the application at:
    http://localhost:80

    Production mode features:

    • Optimized build
    • Nginx server
    • Proper caching
    • Compression enabled
    • Production-ready configuration

Docker Commands Reference

# Build the images
docker compose build

# Stop the containers
docker compose down

# View logs
docker compose logs

# Rebuild and restart containers
docker compose up --build

# Remove all containers and volumes
docker compose down -v

Using Different Package Managers

The Docker setup supports multiple package managers. To switch between them:

  1. For pnpm (default):

    # Already configured in Dockerfile
    RUN npm install -g pnpm
    COPY package.json ./
    RUN pnpm install
  2. For yarn:

    # Modify Dockerfile to use yarn
    RUN npm install -g yarn
    COPY package.json ./
    RUN yarn install
  3. For npm:

    # Modify Dockerfile to use npm
    COPY package.json ./
    RUN npm install

Environment Variables

Docker setup respects the following environment variables:

  • NODE_ENV: Development/Production mode
  • PORT: Application port (default: 7777 for dev, 80 for prod)
  • HOST: Host binding (default: 0.0.0.0)

๐ŸŽฏ Target Audience

๐Ÿ‘จโ€๐ŸŽ“ Students

  • Visual learning of sorting algorithms
  • Understanding time complexity
  • Algorithm comparison and analysis

๐Ÿ‘จโ€๐Ÿซ Educators

  • Interactive teaching tool
  • Algorithm demonstration
  • Performance visualization

๐Ÿ‘จโ€๐Ÿ’ป Developers

  • Algorithm implementation reference
  • Performance optimization insights
  • Code structure examples

๐Ÿ“Š Data Enthusiasts

  • Algorithm behavior analysis
  • Performance comparison
  • Data structure visualization

๐Ÿค Contributing

We โค๏ธ open source! Your contributions make this project better.

How to Contribute

  1. Fork the Repository

    git clone https://github.com/your-username/SortVision.git
  2. Create Feature Branch

    git checkout -b feature/amazing-feature
  3. Commit Changes

    git commit -m "Add amazing feature"
  4. Push to Branch

    git push origin feature/amazing-feature
  5. Open Pull Request

Contribution Guidelines

  • Follow the existing code style
  • Add tests for new features
  • Update documentation
  • Keep commits clean and meaningful

Awesome Contributors

Thank you for contributing to our repository



๐Ÿ“œ License

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


๐Ÿ“ฌ Feedback & Suggestions

We value your input! Share your thoughts through GitHub Issues.

๐Ÿ’ก Let's work together to enhance the understanding of sorting algorithms!

About

SortVision is a web-based sorting algorithm visualizer ๐Ÿ–ฅ๏ธ that lets users explore and compare algorithms like Bubble, Quick, Merge, and more ๐Ÿ”„. Easily adjust speed โšก and array size ๐Ÿ“Š to watch the sorting process in real-time. Perfect for students and enthusiasts looking to understand sorting mechanics!

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors