Skip to content

ajkendal/Algorithm-Visualiser-Platform

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Algorithm Visualizer Pro Logo

๐ŸŽฏ Algorithm Visualizer Pro

Transform Complex Algorithms into Interactive Visual Experiences

React FastAPI Python License Deployment

๐Ÿš€ Live Demo ยท ๐Ÿ“– Documentation ยท ๐Ÿ› Report Bug ยท ๐Ÿ’ก Request Feature


๐Ÿ“‹ Table of Contents


๐ŸŒŸ Overview

Algorithm Visualizer Pro is a cutting-edge educational platform that transforms abstract algorithmic concepts into engaging, interactive visual experiences. Built with modern web technologies, it serves as a comprehensive learning tool for students, educators, and algorithm enthusiasts worldwide.

๐ŸŽฏ Mission

To bridge the gap between theoretical computer science and practical understanding by providing intuitive, step-by-step algorithm visualizations that make complex concepts accessible to learners at all levels.


โœจ Key Features

Interactive

Interactive Visualizations

Real-time step-by-step execution with customizable speed controls

Educational

Educational Focus

Comprehensive explanations with time/space complexity analysis

Responsive

Responsive Design

Seamless experience across desktop, tablet, and mobile devices

Dark Mode

Dark/Light Mode

Eye-friendly themes with smooth transitions and modern aesthetics

๐Ÿ”ฅ Advanced Features

  • ๐ŸŽ›๏ธ Real-time Controls: Play, pause, step-through, and speed adjustment
  • ๐Ÿ“Š Performance Metrics: Live complexity analysis and execution statistics
  • ๐ŸŽจ Custom Themes: Multiple color schemes and visual styles
  • ๐Ÿ’พ Save & Share: Export visualizations and share with others
  • ๐Ÿ“ Code Display: Synchronized code highlighting during execution
  • ๐Ÿ”Š Audio Feedback: Optional sound effects for better engagement
  • ๐Ÿ“ฑ PWA Support: Install as a desktop/mobile app
  • ๐ŸŒ Multi-language: Support for multiple programming languages

๐Ÿ› ๏ธ Tech Stack

Frontend Architecture

Technology Version Purpose
React 18.2.0 Core UI framework with hooks and context
Vite 5.0.0 Lightning-fast build tool and dev server
TailwindCSS 3.3.0 Utility-first styling framework
Lucide React 0.294.0 Beautiful icon library
Framer Motion 10.16.0 Smooth animations and transitions

Backend Architecture

Technology Version Purpose
FastAPI 0.104.1 High-performance async API framework
Python 3.11+ Core backend language
Uvicorn 0.24.0 ASGI server for production
Pydantic 2.5.0 Data validation and serialization

Development & Deployment

Technology Purpose
Docker Containerization and consistent environments
Docker Compose Multi-container orchestration
Render Frontend deployment and CDN
Render/Railway Backend API deployment
GitHub Actions CI/CD pipeline automation

๐ŸŽฏ Why Choose Algorithm Visualizer Pro?

๐Ÿ†š Feature โœ… Algorithm Visualizer Pro โŒ Traditional Learning
Learning Approach Visual, Interactive, Step-by-step Text-based, Static examples
Engagement High interactivity with real-time feedback Passive reading and memorization
Accessibility Works on any device, responsive design Limited to textbooks or desktop software
Complexity Analysis Real-time visualization of time/space complexity Abstract mathematical notation
Progress Tracking Visual progress indicators and statistics Manual tracking required
Customization Multiple themes, speeds, and input sizes Fixed presentation format

๐Ÿ“ธ Screenshots

๐Ÿ  Home Page

![Home Page](alt text)

๐ŸŽฎ Algorithm Visualization

![Sorting Algorithm](alt text)

๐ŸŒ™ Dark Mode Experience

![Dark Mode](alt text)


๐Ÿš€ Quick Start

Get up and running in under 5 minutes!

# 1๏ธโƒฃ Clone the repository
git clone https://github.com/CipherYuvraj/Algorithm-Visualizer-Platform.git
cd Algorithm-Visualizer-Platform

# 2๏ธโƒฃ Install dependencies
npm install
cd backend && pip install -r requirements.txt

# 3๏ธโƒฃ Start development servers
npm run dev        # Frontend (http://localhost:3000)
npm run dev:api    # Backend (http://localhost:8000)

# ๐ŸŽ‰ Open your browser and start exploring!

โš™๏ธ Installation

๐Ÿ“‹ Prerequisites

๐Ÿ”ง Detailed Setup

๐Ÿ–ฅ๏ธ Frontend Setup
# Navigate to project root
cd Algorithm-Visualizer-Platform/frontend

# Install dependencies
npm install

# Available scripts
npm run dev          # Start development server
npm run build        # Build for production
npm run preview      # Preview production build
npm run lint         # Run ESLint
npm run lint:fix     # Fix ESLint issues

Environment Variables (.env):

VITE_API_BASE_URL=http://localhost:8000
VITE_APP_TITLE="Algorithm Visualizer Pro"
VITE_ENABLE_ANALYTICS=false
๐Ÿ”ง Backend Setup
# Navigate to backend directory
cd Algorithm-Visualizer-Platform/backend

# Create virtual environment
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Start development server
uvicorn main:app --reload --host 0.0.0.0 --port 8000

Environment Variables (.env):

ENVIRONMENT=development
DATABASE_URL=sqlite:///./app.db
SECRET_KEY=your-secret-key-here
CORS_ORIGINS=["http://localhost:3000", "http://localhost:5173"]

๐Ÿณ Docker Setup

๐Ÿš€ One-Command Deployment

# Start entire application stack
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

๐Ÿ“„ Docker Configuration

Frontend Dockerfile
# Multi-stage build for optimized production image
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Backend Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

๐Ÿš€ Render

  1. Create new Web Service on Render
  2. Connect GitHub repository
  3. Configure settings:
    • Build Command: pip install -r requirements.txt
    • Start Command: uvicorn main:app --host 0.0.0.0 --port $PORT
    • Environment: Python 3.11

๐Ÿณ Docker Hub

# Build and push images
docker build -t yourusername/algo-visualizer-frontend ./frontend
docker build -t yourusername/algo-visualizer-backend ./backend

docker push yourusername/algo-visualizer-frontend
docker push yourusername/algo-visualizer-backend

โ˜๏ธ Cloud Platforms

AWS Deployment

Using AWS ECS + ECR:

# Build and tag for ECR
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin your-account.dkr.ecr.us-east-1.amazonaws.com

docker build -t algo-visualizer .
docker tag algo-visualizer:latest your-account.dkr.ecr.us-east-1.amazonaws.com/algo-visualizer:latest
docker push your-account.dkr.ecr.us-east-1.amazonaws.com/algo-visualizer:latest
Google Cloud Platform

Using Cloud Run:

# Build and deploy
gcloud builds submit --tag gcr.io/PROJECT-ID/algo-visualizer
gcloud run deploy --image gcr.io/PROJECT-ID/algo-visualizer --platform managed

๐Ÿ“š Algorithm Categories

๐Ÿ”„ Sorting Algorithms ๐ŸŒ Graph Algorithms
โ€ข Bubble Sort โ€ข Breadth-First Search (BFS)
โ€ข Quick Sort โ€ข Depth-First Search (DFS)
โ€ข Merge Sort โ€ข Dijkstra's Algorithm
โ€ข Heap Sort โ€ข A* Search Algorithm
โ€ข Insertion Sort โ€ข Kruskal's MST
๐Ÿ” Search Algorithms ๐Ÿงฎ Dynamic Programming
โ€ข Linear Search โ€ข Fibonacci Sequence
โ€ข Binary Search โ€ข Knapsack Problem
โ€ข Jump Search โ€ข Longest Common Subsequence
โ€ข Interpolation Search โ€ข Edit Distance
โ€ข Exponential Search โ€ข Coin Change Problem

๐Ÿ”ฎ Coming Soon

  • Tree Algorithms: AVL, Red-Black, B-Trees
  • String Algorithms: KMP, Rabin-Karp, Boyer-Moore
  • Machine Learning: Neural Networks, Decision Trees
  • Cryptography: RSA, AES, Hash Functions

๐ŸŽจ UI/UX Features

๐ŸŽญ Theme System

// Multiple built-in themes
const themes = {
  light: { primary: '#4F46E5', background: '#FFFFFF' },
  dark: { primary: '#818CF8', background: '#1F2937' },
  ocean: { primary: '#0EA5E9', background: '#0F172A' },
  forest: { primary: '#059669', background: '#064E3B' }
};

๐Ÿ“ฑ Responsive Breakpoints

  • Mobile: 320px - 768px
  • Tablet: 768px - 1024px
  • Desktop: 1024px+
  • 4K: 2560px+

โšก Performance Optimizations

  • Code Splitting: Dynamic imports for better loading
  • Lazy Loading: Components loaded on demand
  • Image Optimization: WebP format with fallbacks
  • Service Worker: Offline capability and caching

๐Ÿ”ง Configuration

โš™๏ธ Frontend Configuration

Vite Configuration
// vite.config.js
export default defineConfig({
  plugins: [react()],
  server: {
    port: 3000,
    proxy: {
      '/api': 'http://localhost:8000'
    }
  },
  build: {
    outDir: 'dist',
    sourcemap: true,
    rollupOptions: {
      output: {
        manualChunks: {
          vendor: ['react', 'react-dom'],
          utils: ['lodash', 'axios']
        }
      }
    }
  }
});

๐Ÿ”ง Backend Configuration

FastAPI Settings
# config.py
from pydantic import BaseSettings

class Settings(BaseSettings):
    app_name: str = "Algorithm Visualizer API"
    debug: bool = False
    cors_origins: list = ["http://localhost:3000"]
    
    class Config:
        env_file = ".env"

settings = Settings()

๐Ÿ“Š Performance

๐Ÿš€ Benchmarks

Metric Value Target
First Contentful Paint 1.2s <1.5s
Largest Contentful Paint 2.1s <2.5s
Time to Interactive 2.8s <3.0s
Cumulative Layout Shift 0.05 <0.1
Bundle Size 145KB <200KB

๐Ÿ“ˆ Optimization Strategies

  • Tree Shaking: Remove unused code
  • Code Splitting: Load components on demand
  • Image Optimization: WebP with fallbacks
  • CDN: Static assets served via CDN
  • Compression: Gzip/Brotli compression

๐Ÿค Contributing

We welcome contributions from the community! Here's how you can help:

๐Ÿ”„ Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“‹ Contribution Guidelines

Code Standards
  • JavaScript: Follow ESLint configuration
  • Python: Follow PEP 8 style guide
  • Commits: Use conventional commit messages
  • Testing: Add tests for new features
  • Documentation: Update README and comments
Pull Request Process
  1. Update documentation for any new features
  2. Add tests that prove your fix/feature works
  3. Ensure all tests pass
  4. Update the README.md if needed
  5. Request review from maintainers

๐Ÿ› Bug Reports

Use the issue template to report bugs.

๐Ÿ’ก Feature Requests

Use the feature request template to suggest new features.


๐Ÿ“„ License

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

MIT License

Copyright (c) 2024 Yuvraj Udaywal

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

๐Ÿ‘จโ€๐Ÿ’ป About the Developer

Yuvraj Udaywal

Yuvraj Udaywal

Full Stack Developer & Algorithm Enthusiast

GitHub LinkedIn Email

Passionate about creating innovative web applications and making complex algorithms accessible through interactive visualizations. With expertise in full-stack development using React.js, Node.js, and Python, I strive to bridge the gap between theoretical computer science and practical understanding.

๐ŸŽฏ Vision

"To democratize algorithm education by making complex concepts visually intuitive and accessible to learners worldwide."


๐Ÿ™ Acknowledgments

  • React Team for the incredible framework
  • FastAPI for the blazing-fast API framework
  • TailwindCSS for the utility-first CSS framework
  • Lucide for the beautiful icon library
  • Vercel for seamless deployment experience
  • Open Source Community for inspiration and contributions

๐Ÿ“ž Support

Need Help?

Documentation Issues Discussions Email


โญ If you found this project helpful, please give it a star!

๐Ÿ”— Share with friends and colleagues who might benefit from visual algorithm learning

Made with โค๏ธ by Yuvraj Udaywal | ยฉ 2024 Algorithm Visualizer Pro

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 67.5%
  • Python 17.6%
  • C++ 10.9%
  • CSS 1.4%
  • Dockerfile 1.1%
  • CMake 0.7%
  • Other 0.8%