Skip to content

Openverse-iiitk/DSA-Website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

133 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DSA Visualizer

Interactive Data Structures & Algorithms Learning Platform - Making computer science concepts accessible through beautiful, step-by-step visualizations.

๐ŸŒ Live Demo: https://algorithima.web.app/

Build Status React Vite License


Overview

DSA Visualizer is an interactive educational platform designed to help students and developers understand data structures and algorithms through visual learning. Each visualizer provides step-by-step animations synchronized with actual code execution, making complex concepts easy to grasp. It is brought to you by Openverse, the open source club of IIIT Kottayam, if you wish to contribute, check out contributing.md We use C for code since, the visualizer is specifically tailored for the Datastructure 121 Course at IIIT Kottayam

Features

๐Ÿ“Š Available Visualizations

  • ๐Ÿ”— Linked Lists - Doubly linked lists with memory address visualization and dynamic code generation
  • ๐Ÿ“š Stack & Queue - LIFO/FIFO operations with real-time step tracking and C implementation
  • ๐ŸŒณ Binary Search Trees - Interactive tree operations with traversal algorithms and balancing
  • ๐Ÿ—บ๏ธ Pathfinding - Grid-based pathfinding with Dijkstra's and A* algorithms
  • ๐Ÿ”„ Sorting Algorithms - Multiple sorting algorithms with complexity analysis and performance comparison

๏ฟฝ Interactive Learning Experience

  • ๐ŸŽฎ Interactive Controls - Play, pause, step-through, and speed control for all animations
  • ๐Ÿ’ป Code Visualization - Real-time syntax highlighting showing exact execution steps
  • ๐Ÿง  Memory Management - Visual representation of memory allocation and pointer manipulation
  • ๐Ÿ“ฑ Responsive Design - Seamless experience across desktop, tablet, and mobile devices
  • ๐Ÿ“š Educational Content - Comprehensive explanations, complexity analysis, and best practices

Technical Features

  • ๐ŸŽจ Modern UI - Dark theme with consistent design system and accessibility features
  • ๐Ÿงช Educational Focus - Code examples in C with detailed comments and explanations
  • ๐Ÿ”„ Real-time Updates - Dynamic visualization updates based on user interactions

Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation & Setup

# Clone the repository
git clone https://github.com/your-username/DSA-Website.git
cd DSA-Website

# Install dependencies
npm install

# Start development server
npm run dev

# Open the application
# Visit http://localhost:5173 in your browser

# Build for production
npm run build

# Preview production build
npm run preview

You can also build a docker image and run the build isolately, without any setup overhead.

# After cloning and changing directory
docker build -t algorithima:latest .

# To run the image
docker run -d --name dsa_website \
           -p 1234:80 \
           algorithima:latest
# Build will be running on port localhost:1234, if the port is busy, put another port in docker run command.

๐Ÿ—๏ธ Tech Stack

Category Technology Purpose
Frontend React 19 Modern UI with hooks and functional components
Build Tool Vite 6 Fast development and optimized builds
Animations Framer Motion Smooth, performant animations
Code Display React Syntax Highlighter Syntax highlighting with line tracking
Code Editor Monaco Editor Interactive code editing experience
Styling CSS3 + Custom Design System Consistent dark theme across all components
Icons React Icons Comprehensive icon library
Routing React Router v7 Client-side navigation
Deployment Firebase Hosting Fast, reliable hosting

๐Ÿ“ Project Structure

DSA-Website/
โ”œโ”€โ”€ ๐Ÿ“‚ src/
โ”‚   โ”œโ”€โ”€ ๐ŸŽฏ features/              # Feature-based organization
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ”— linkedList/        # Doubly linked list with memory visualization
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ”„ sorting/           # Multiple sorting algorithms
โ”‚   โ”‚   โ”œโ”€โ”€ ๐ŸŒณ tree/              # Binary search tree operations
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ—บ๏ธ pathfinding/       # Grid-based pathfinding algorithms
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“š stackQueue/        # Stack and queue data structures
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ  home/              # Landing page with feature showcase
โ”‚   โ”‚   โ”œโ”€โ”€ โ„น๏ธ about/             # Team and project information
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ”ง common/            # Shared components and utilities
โ”‚   โ”‚       โ”œโ”€โ”€ components/       # Reusable React components
โ”‚   โ”‚       โ””โ”€โ”€ styles/          # Global CSS and design system
โ”‚   โ”œโ”€โ”€ ๐ŸŽจ constants/            # Theme, colors, animation speeds
โ”‚   โ”œโ”€โ”€ ๐Ÿ› ๏ธ utils/                # Helper functions and utilities
โ”‚   โ”œโ”€โ”€ ๐Ÿ–ผ๏ธ assets/               # Images, icons, static files
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ App.jsx              # Main router and application shell
โ”‚   โ””โ”€โ”€ ๐Ÿš€ main.jsx             # Application entry point
โ”œโ”€โ”€ ๐Ÿ“‚ public/                  # Static assets and legacy files
โ”œโ”€โ”€ ๐Ÿ“– CONTRIBUTING.md         # Comprehensive contribution guide
โ””โ”€โ”€ ๐Ÿ“ฆ package.json           # Dependencies and build scripts

๐ŸŽจ Design System

Our consistent dark theme provides an optimal learning environment:

๐ŸŽจ Color Palette

/* Primary Colors */
--primary: #58a6ff;      /* Blue - actions, highlights */
--secondary: #238636;    /* Green - success states */
--danger: #f85149;       /* Red - errors, warnings */
--warning: #d29922;      /* Yellow - cautions */

/* Interface Colors */
--background: #0d1117;   /* Main dark background */
--surface: #161b22;      /* Panels, cards */
--border: #30363d;       /* Borders, dividers */
--text-primary: #c9d1d9; /* Main text */
--text-secondary: #8b949e; /* Secondary text */

/* Node Visualization */
--node-active: #5bc9b1;  /* Active/highlighted nodes */
--node-inactive: #30363d; /* Default/inactive nodes */
--node-visiting: #f39c12; /* Nodes being processed */

๐Ÿ“ฑ Responsive Breakpoints

  • Mobile: < 768px
  • Tablet: 768px - 1024px
  • Desktop: > 1024px

๐Ÿš€ Getting Started for Developers

๐Ÿ› ๏ธ Development Commands

# Development
npm run dev          # Start development server with hot reload
npm run build        # Create production build
npm run preview      # Preview production build locally
npm run lint         # Run ESLint for code quality

# Dependencies
npm install          # Install all dependencies
npm update          # Update dependencies to latest versions
npm audit           # Check for security vulnerabilities

๐ŸŽฏ Key Development Features

  • โšก Hot Module Replacement - Instant updates during development
  • ๐Ÿ” ESLint Integration - Code quality and consistency checking
  • ๐Ÿ“ฆ Optimized Builds - Tree-shaking and code splitting for performance
  • ๐Ÿงช Modern JavaScript - ES6+ features with Vite compilation
  • ๐Ÿ”’ Security Focused - Regular dependency audits and updates

๐Ÿค Contributing

We actively welcome contributions! Whether you're a student, educator, or developer, there are many ways to help:

๐ŸŽฏ Ways to Contribute

  • ๐Ÿ› Bug Reports - Help us identify and fix issues
  • โœจ Feature Requests - Suggest new visualizers or improvements
  • ๏ฟฝ Documentation - Improve guides and code comments
  • ๐ŸŽจ Design - Enhance UI/UX and accessibility
  • ๏ฟฝ Testing - Help ensure quality across browsers and devices
  • ๐Ÿ”ง Code - Add new features or optimize existing ones

๐Ÿš€ Quick Start for Contributors

  1. ๐Ÿ“– Read the Guide - Check CONTRIBUTING.md for detailed guidelines
  2. ๐Ÿด Fork & Clone - Get your own copy of the repository
  3. ๐ŸŒฟ Create Branch - Work on a dedicated feature branch
  4. ๐Ÿงช Test Changes - Ensure all visualizers work correctly
  5. ๐Ÿ“ Submit PR - Describe your changes and improvements

๐Ÿ“‹ Development Guidelines

  • ๐ŸŽจ Follow Design System - Use established colors and patterns
  • ๐Ÿ“ Add Documentation - Comment complex algorithms and functions
  • ๐Ÿงช Test Thoroughly - Verify animations and edge cases
  • โ™ฟ Consider Accessibility - Ensure inclusive design practices
  • ๐Ÿ“ฑ Mobile-First - Design for all screen sizes

๐Ÿ  Homepage

Homepage featuring all available visualizers

๐Ÿ”— Interactive Visualizations

  • Real-time Animations - Watch algorithms execute step-by-step
  • Code Synchronization - See exactly which code is running
  • Memory Visualization - Understand pointer operations and memory allocation
  • Performance Analysis - Compare time and space complexity

โญ Star this repository if it helps you learn! Your support motivates continued development and improvement.

  • Modern Web Technologies: Leveraging the latest in React and web development

Made with ๐Ÿ’š by the Openverse Team

About

A wonderful data structures and algorithms visualization tool

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages