Skip to content

Latest commit

Β 

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AlgoVista πŸš€

AlgoVista is a premium, high-performance Desktop Application built with JavaFX, designed to transform abstract Data Structures and Algorithms (DSA) into immersive, cinematic visual experiences.

Whether you are a student mastering the basics or a developer revisiting core concepts, AlgoVista provides an interactive environment to see logic in motion.


🌟 Key Features

🎬 Cinematic Dashboard

  • Sleek UI/UX: Modern dark-mode interface with smooth transitions and hover effects.
  • Interactive Navigation: Seamlessly jump between different algorithm categories.
  • Global Controls: Adjust animation speeds in real-time to match your learning pace.

πŸ“Š Algorithm Visualizers

  • Sorting Algorithms: Visualize Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Radix Sort, and more.
  • Graph Theory: Interactive BFS, DFS, Dijkstra’s (Shortest Path), and Topological Sorting.
  • Dynamic Programming: Step-through visualizations for Fibonacci, Knapsack, and Longest Common Subsequence (LCS).
  • Data Structures: Real-time manipulation of Linked Lists (Singly/Doubly), Binary Search Trees (BST), Heaps, Stacks, and Queues.
  • Divide & Conquer: Visual execution of Merge Sort, Quick Sort, and Binary Search.

🧠 Intellectual Insights

  • Complexity Analysis: Dynamic detection of Best, Worst, and Average case time complexities.
  • Code Highlighting: Synchronized source code highlighting that tracks the visualization step-by-step.
  • State Management: Ability to pause, resume, and reset visualizations at any time.

πŸ“Έ Workflow & Screenshot Gallery

1. The Entry Point

Experience a premium startup sequence and a centralized command center.

Splash Screen Dashboard

2. Personalization & Team

AlgoVista is designed with the user in mind, featuring deep customization and a dedicated team overview.

Settings About Us


πŸš€ Interactive Modules

πŸ“‚ Category Explorer

Every algorithm category is represented by a stunning, interactive card system, ordered as they appear in the dashboard.

Linked List Graph Binary Search Tree Sorting
Linked List Graph BST Sorting
Recursion Divide & Conquer Dynamic Programming
Recursion DNC DP

πŸ› οΈ Step-by-Step Algorithm Workflows

⛓️ 1. Linked List & Linear Data Structures

Visualizing LIFO, FIFO, and linear data manipulation with precision.

Linear DS Category
Gateway to the Linear Data Structures module.

  • Doubly Linked List Traversal: DLL Traversal Forward traversal through a Doubly Linked List, highlighting the current node and its pointers.

  • Stack Operations:

    Stack Pop Stack Traverse
    Left: Visualizing the 'pop' operation. Right: Sequential traversal of stack elements.

  • Queue & Array:

    Queue Search Array Reverse
    Left: Searching for a specific value within a Queue. Right: Visualizing the in-place array reversal algorithm.


πŸ•ΈοΈ 2. Graphs

Solving complex connectivity problems through sub-problems and pathfinding.

Graph Category
Gateway to the Graph algorithms module.

  • Graph Structure & Traversal:

    Graph Structure Graph Traverse
    Left: Defining the adjacency matrix/list structure. Right: Real-time visualization of BFS across connected nodes.

  • Algorithm Compatibility & Alerts: Dijkstra Alert Proactive educational alerts: A custom dialogue warns the user when trying to run Dijkstra’s algorithm on a graph with negative weights.


🌲 3. Binary Search Tree (BST)

Real-time node manipulation, balancing, and property analysis.

BST Category
Dynamic Binary Search Tree management interface.

  • Level Order Traversal & Deletion:

    BST Level Order BST Delete
    Left: Breadth-first level-order tree traversal. Right: Handling complex node deletions and automatic re-balancing.

  • Tree Properties: BST Properties Automatic calculation of tree height, total internal nodes, and leaf node distribution.


πŸ“Š 4. Sorting Algorithms

Watch data organize itself through various algorithmic paradigms.

Sorting Category
Comprehensive library of popular sorting paradigms.

  • Selection & Counting Sort:

    Selection Sort Counting Sort
    Left: Selection Sort highlighting the current minimum element. Right: Non-comparative sorting using frequency arrays.

  • Heap Sort: Heap Sort Transforming a standard array into a heap structure for efficient sorting.


🧠 5. Recursion

Deep dive into recursive call stacks and flow control.

Recursion Category
Visual exploration of recursion paths and call stack logic.

  • Recursive Topological Sort: Topo Sort Using depth-first recursion to resolve dependencies in a Directed Acyclic Graph (DAG).

  • Call Stack & Tail Recursion:

    Call Stack Tail Recursion
    Left: Visualizing the growth of the call stack. Right: Optimizing function calls through Tail Recursion.

  • Recursive Fibonacci Sequence:


    Standard Recursion: Visualizing the exponential growth of the call tree without memory optimization.


    Optimized Execution: Implementation of memory optimization and constant space logic to streamline the calculation.

  • Advanced Recursion:

    Infinite Recursion In-order Recursion
    Left: Visualizing stack overflow risks. Right: Recursive DFS for In-order tree traversal.


βš”οΈ 6. Divide & Conquer

Solving large problems through recursive partitioning and merging.

DnC Category
Visualizing the powerful Divide and Conquer paradigm.

  • Merge Sort Workflow:

    Merge 1 Merge 2
    Sequence: Splitting into atomic sub-problems and merging back to a sorted whole.

  • Quick Sort Partitioning:


    Step-by-step partitioning logic using pivot-based organization.


🧩 7. Dynamic Programming

Optimizing solutions through tabulation and memoization.

DP Category
Tabular exploration of Dynamic Programming algorithms.

  • 0/1 Knapsack Sequence:


    Building the DP table to find the maximum value subset.

  • Longest Common Subsequence (LCS):

    LCS 1 LCS 2
    Tracking overlapping subsequences across multiple strings.


πŸ› οΈ Tech Stack & Architecture

  • Language: Java 17+
  • Framework: JavaFX 21+ (Rich Client Platform)
  • Styling: Vanilla CSS (Modern aesthetic with custom transitions)
  • Layout: FXML (Declarative UI structure)
  • Build System: IntelliJ IDEA

πŸš€ Getting Started

πŸ“‹ Prerequisites

  • Java Development Kit (JDK) 17 or higher (Tested on JDK 21).
  • JavaFX SDK 21+ (Necessary for the GUI animations).

πŸ› οΈ Installation Guideline

  1. Extract the Project: Unzip the AlgoVista.zip file to a local directory on your machine.
  2. Open in Your IDE:
    • IntelliJ IDEA: File > Open > Select the Java_Fx folder.
    • Eclipse/NetBeans: Import as an existing project.
  3. Configure JavaFX Libraries:
    • Go to Project Structure (Ctrl+Alt+Shift+S in IntelliJ).
    • Under Libraries, add the JavaFX lib folder from your local SDK.
    • Add the following VM Options in your Run Configuration to link the modules:
      --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml,javafx.media
      
  4. Run the Application: Run the Main.java file found at:
    src/com/AlgoVista/dashboard/Main.java.

πŸ› οΈ Maintenance & Utilities

The project includes a maintenance/ folder containing Python utility scripts used during development for FXML decoding and project auditing. These are not required to run the main Java application but are included for structural completeness.


πŸ“– Usage Workflow

  1. Select a Category: Choose from Sorting, Graphs, Trees, Recursion, etc., from the main dashboard.
  2. Input Data: Generate random data or input your own custom values (e.g., custom arrays for BST).
  3. Control Animation: Use the slider at the bottom to speed up or slow down the visualization.
  4. Analyze: Watch the code highlights and complexity labels to understand the logic deeply.

🀝 Contributing

Contributions are welcome! If you'd like to add new algorithms or improve the UI, feel free to fork the repo and submit a PR.


πŸ“„ License

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


✨ Connect with Me

LinkedIn YouTube Email

Created by Badhon Pain & Joyshree Mukharjee Joya

About

This is the CSE_108 project of Level-1 Term-2

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages