Skip to content

amancd/allvisualizer-v2

Repository files navigation

AllVisualizer

Interactive Learning Through Visualization

License: CC BY-NC 4.0 Next.js TypeScript Tailwind CSS

Live Demo Β· Report Bug Β· Request Feature


Overview

AllVisualizer is an open-source educational platform that transforms abstract concepts into intuitive visual experiences. Built with modern web technologies, it provides interactive visualizations across Computer Science, Mathematics, Physics, and Artificial Intelligence to enhance learning and comprehension.

Live Platform: https://allvisualizer.com

Mission

To democratize quality education by making complex concepts accessible through interactive visualization, enabling learners worldwide to develop deeper understanding through visual and hands-on learning experiences.

Sustainability Model

AllVisualizer is free to use and open source. To maintain and improve the platform, we display non-intrusive Google AdSense advertisements that help cover hosting costs and development expenses. This allows us to keep the platform accessible to everyone while ensuring long-term sustainability.

Key Features

Interactive Visualizations

  • Real-time algorithm execution with step-by-step breakdowns
  • Dynamic mathematical transformations and graphing
  • Physics simulations with adjustable parameters
  • Neural network training visualization

Comprehensive Coverage

  • Data Structures & Algorithms: Sorting, searching, graph algorithms, dynamic programming
  • Mathematics: Calculus, linear algebra, optimization, matrix operations
  • Physics: Classical mechanics, Newton's laws, projectile motion
  • Machine Learning: Neural networks, perceptron learning, backpropagation

Educational Tools

  • Complexity analysis and performance metrics
  • Interactive problem-solving environments
  • Community discussions powered by GitHub (Giscus integration)
  • Mobile-responsive design for learning on any device

Modern Architecture

  • Built with Next.js 14+ App Router for optimal performance
  • TypeScript for type safety and developer experience
  • Server-side rendering and static site generation
  • Fully responsive design with Tailwind CSS

Table of Contents

Getting Started

Prerequisites

  • Node.js 18.0 or higher
  • npm 9.0 or higher (or yarn 1.22+)
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/amancd/allvisualizer-v2.git
    cd allvisualizer-v2
  2. Install dependencies

    npm install
  3. Configure environment variables (optional)

    cp .env.example .env.local

Running Locally

Start the development server:

npm run dev

Open http://localhost:3000 in your browser to see the application.

Build for production:

npm run build
npm start

Project Structure

allvisualizer-v2/
β”œβ”€β”€ app/                                    # Next.js App Router
β”‚   β”œβ”€β”€ (routes)/
β”‚   β”‚   β”œβ”€β”€ about/                         # About page
β”‚   β”‚   β”œβ”€β”€ contact/                       # Contact page
β”‚   β”‚   β”œβ”€β”€ privacy-policy/                # Privacy policy
β”‚   β”‚   └── terms-and-conditions/          # Terms of service
β”‚   β”œβ”€β”€ dsa-visualizer/                    # DSA section
β”‚   β”‚   β”œβ”€β”€ [category]/                    # Dynamic category pages
β”‚   β”‚   └── problems/                      # Individual problems
β”‚   β”‚       β”œβ”€β”€ two-sum/
β”‚   β”‚       β”œβ”€β”€ reverse-linked-list/
β”‚   β”‚       └── best-time-to-buy-sell-stock/
β”‚   β”œβ”€β”€ math-visualizer/                   # Mathematics section
β”‚   β”‚   β”œβ”€β”€ calculus/
β”‚   β”‚   β”œβ”€β”€ linear-algebra/
β”‚   β”‚   └── problems/
β”‚   β”‚       β”œβ”€β”€ derivatives/
β”‚   β”‚       β”œβ”€β”€ chain-rule/
β”‚   β”‚       β”œβ”€β”€ integration-basics/
β”‚   β”‚       β”œβ”€β”€ matrix-operations/
β”‚   β”‚       β”œβ”€β”€ determinants/
β”‚   β”‚       └── optimization/
β”‚   β”œβ”€β”€ physics-visualizer/                # Physics section
β”‚   β”‚   β”œβ”€β”€ mechanics/
β”‚   β”‚   └── simulations/
β”‚   β”‚       β”œβ”€β”€ projectile-motion/
β”‚   β”‚       └── newtons-laws/
β”‚   β”œβ”€β”€ ai-ml-visualizer/                  # AI/ML section
β”‚   β”‚   β”œβ”€β”€ neural-networks/
β”‚   β”‚   └── visualizations/
β”‚   β”‚       └── simple-perceptron/
β”‚   β”œβ”€β”€ layout.tsx                         # Root layout
β”‚   β”œβ”€β”€ page.tsx                           # Homepage
β”‚   └── globals.css                        # Global styles
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ layout/
β”‚   β”‚   β”œβ”€β”€ Header.tsx                     # Navigation header
β”‚   β”‚   └── Footer.tsx                     # Site footer
β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   └── GiscusComments.tsx             # GitHub discussions
β”‚   └── visualizers/
β”‚       └── TwoSumVisualizer.tsx           # Reusable visualizers
β”œβ”€β”€ config/
β”‚   └── giscus.ts                          # Centralized config
β”œβ”€β”€ public/                                 # Static assets
β”‚   └── robots.txt
β”œβ”€β”€ next.config.ts                         # Next.js configuration
β”œβ”€β”€ tailwind.config.ts                     # Tailwind configuration
β”œβ”€β”€ tsconfig.json                          # TypeScript configuration
└── package.json                           # Dependencies

Available Visualizations

Data Structures & Algorithms

  • Arrays: Two Sum, Best Time to Buy and Sell Stock
  • Linked Lists: Reverse Linked List
  • More coming soon: Sorting algorithms, trees, graphs, dynamic programming

Mathematics

  • Calculus: Derivatives, Chain Rule, Integration Basics, Optimization
  • Linear Algebra: Matrix Operations, Determinants

Physics

  • Classical Mechanics: Newton's Laws, Projectile Motion

Artificial Intelligence & Machine Learning

  • Neural Networks: Simple Perceptron, Backpropagation

Technology Stack

Frontend

  • Framework: Next.js 14+ (App Router)
  • Language: TypeScript 5.0+
  • Styling: Tailwind CSS 3.0+
  • UI Components: Custom React components

Features

  • Comments: GitHub Discussions via Giscus
  • Analytics: Ready for integration
  • SEO: Metadata API, sitemap generation
  • Performance: Server-side rendering, static generation

Development Tools

  • Linting: ESLint
  • Formatting: Prettier (recommended)
  • Version Control: Git

Configuration

Giscus Comments

The project uses centralized Giscus configuration in /config/giscus.ts:

export const giscusConfig = {
  repo: "amancd/allvisualizer-v2",
  repoId: "YOUR_REPO_ID",
  category: "Show and tell",
  categoryId: "YOUR_CATEGORY_ID",
  mapping: "pathname",
  reactionsEnabled: "1",
  emitMetadata: "0",
  inputPosition: "bottom",
  theme: "light",
  lang: "en",
  loading: "lazy"
};

To set up:

  1. Enable GitHub Discussions on your repository
  2. Install Giscus app: https://github.com/apps/giscus
  3. Get your repository and category IDs from https://giscus.app
  4. Update the values in /config/giscus.ts

Metadata

Update site metadata in app/layout.tsx for SEO optimization.

Contributing

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

Reporting Bugs

  • Use the GitHub Issues page
  • Check if the issue already exists before creating a new one
  • Include detailed steps to reproduce
  • Provide screenshots if applicable

Suggesting Features

  • Open an issue with the enhancement label
  • Describe the feature and its use case
  • Explain why it would benefit the project

Submitting Pull Requests

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

Code Standards

  • Follow TypeScript best practices
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Ensure responsive design
  • Test on multiple browsers
  • Run npm run lint before committing

Roadmap

Version 2.0 (Current)

  • Core platform architecture
  • DSA visualizations (Arrays, Linked Lists)
  • Math visualizations (Calculus, Linear Algebra)
  • Physics simulations (Mechanics)
  • AI/ML visualizations (Neural Networks)
  • GitHub Discussions integration
  • Mobile responsive design

Version 2.1 (Upcoming)

  • More DSA problems (Trees, Graphs, Dynamic Programming)
  • Advanced calculus topics
  • Additional physics simulations
  • Deep learning visualizations
  • User progress tracking
  • Interactive code playground

Version 3.0 (Future)

  • User authentication
  • Personal learning paths
  • Achievement system
  • API for developers
  • Mobile native apps
  • Multilingual support

License

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

Contact

Project Maintainer: Aman Singh

Acknowledgments

  • Inspired by the need for better visual learning tools in STEM education
  • Built with modern web technologies and best practices
  • Community-driven development approach

Made with passion for education and open source

⬆ Back to Top

- Graphs & Graph Algorithms - Dynamic Programming - Recursion & Backtracking - Hashing

Technologies Used

  • Framework: Next.js 16+ (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • Icons: Heroicons (via SVG)
  • Community: Discord Integration

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

License and Usage

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).

What This Means

You are free to:

  • Share β€” copy and redistribute the material in any medium or format
  • Adapt β€” remix, transform, and build upon the material for non-commercial purposes
  • Use the code for learning, education, and personal projects

Under the following terms:

  • Attribution β€” You must give appropriate credit, provide a link to the license, and indicate if changes were made
  • NonCommercial β€” You may not use the material for commercial purposes without explicit permission

Commercial Use

If you wish to use AllVisualizer or its codebase for commercial purposes, please contact us at nkcoderz@gmail.com for licensing arrangements.

Why Non-Commercial? The platform is sustained through Google AdSense revenue to cover hosting and development costs. Allowing unrestricted commercial use would undermine this sustainability model and the platform's accessibility mission.

For full license details, see the LICENSE file or visit Creative Commons BY-NC 4.0.

Support the Project

AllVisualizer is free to use and will always remain accessible to learners worldwide. To sustain and improve the platform, we rely on:

Current Support Model

  • Google AdSense: Non-intrusive advertisements help cover hosting costs and development expenses
  • Community Contributions: Bug reports, feature requests, and code contributions

How You Can Help

  1. Use and Share: Share AllVisualizer with students, educators, and learners
  2. Contribute: Submit bug reports, feature requests, or pull requests
  3. Provide Feedback: Help us improve by sharing your learning experience
  4. Support Development: The ads displayed on the platform directly fund ongoing development

Every bit of support helps us maintain free, quality educational resources for everyone.

Contact

Project Maintainer: Aman Singh


Built with dedication for learners worldwide

Making complex concepts accessible through visualization

⬆ Back to Top

About

World's 1st Open Source Visualization Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages