Skip to content

A complete web tool for graph theory. It solves the Dijkstra, Floyd–Warshall, and MST (Kruskal) algorithms and analyzes structural properties via adjacency matrices. Includes dynamic visualization and import/export options.

Notifications You must be signed in to change notification settings

HenestrosaDev/graphsolver.com

Repository files navigation

Logo

GraphSolver

A complete web tool for graph theory. It solves the Dijkstra, Floyd–Warshall, and MST (Kruskal) algorithms and analyzes structural properties via adjacency matrices. Includes dynamic visualization and import/export options.

Version GitHub Contributors License
GitHub Contributors Issues GitHub pull requests

Report Bug · Request Feature · Ask Question

Logo

Table of Contents

Features

  • Interactive Graph Visualization: Real-time graph rendering using vis-network
  • Multiple Algorithms:
    • Dijkstra's Algorithm: Shortest path between nodes
    • Floyd-Warshall Algorithm: All-pairs shortest paths
    • Kruskal's Algorithm: Minimum spanning tree
  • Flexible Input Methods:
    • Matrix input interface
    • File import/export (JSON, LaTeX, Dot, GraphML, CSV, GML)
    • Copy/paste functionality
  • Graph Analysis:
    • Graph properties (connectedness, diameter, etc.)
    • Path visualization
    • Algorithm step-by-step execution
  • Internationalization: English and Spanish support
  • Dark/Light Theme: Automatic theme switching
  • Responsive Design: Works on desktop and mobile devices
  • TypeScript: Full type safety and better developer experience

Quick Start

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/graphsolver.com.git
    cd graphsolver.com
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev
  4. Open your browser

    Navigate to http://localhost:5173 to see GraphSolver in action!

Build for Production

npm run build
npm run preview

Usage

Basic Workflow

  1. Input Your Graph:

    • Use the matrix input section to define your adjacency matrix
    • Or import from a file (JSON, LaTeX, Dot, GraphML, CSV, GML formats supported)
  2. Select Algorithm:

    • Choose from Dijkstra, Floyd-Warshall, or Kruskal algorithms
    • Configure algorithm parameters if needed
  3. Visualize Results:

    • View the graph visualization with computed paths highlighted
    • Examine detailed results in the properties panel
  4. Export Results:

    • Save your graph and results to various formats
    • Copy results for use in other applications

Supported File Formats

  • JSON: Standard graph representation with metadata
  • CSV: Comma-separated values adjacency matrix format
  • LaTeX: Matrix format for academic documents
  • Dot: GraphViz DOT language format
  • GraphML: XML-based graph format
  • GML: Graph Modelling Language format

Testing

Run the test suite using Vitest:

npm test

Tests cover algorithm implementations and core functionality to ensure correctness and reliability.

Technologies Used

  • Frontend Framework: Vue 3 with Composition API
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • Type Safety: TypeScript
  • Graph Visualization: vis-network
  • Icons: Tabler Icons
  • Internationalization: Vue I18n
  • Testing: Vitest
  • SEO: Unhead (Vue Meta)

Internationalization

GraphSolver supports multiple languages:

  • English (en)
  • Spanish (es)

Language switching is available in the navigation bar. Contributions for additional languages are welcome!

Themes

The application includes both light and dark themes that automatically adapt to your system preferences. Manual theme switching is also available via the theme toggle in the navigation.

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Make your changes and add tests
  4. Run tests: npm test
  5. Commit your changes: git commit -am 'Add some feature'
  6. Push to the branch: git push origin feature/your-feature-name
  7. Submit a pull request

Development Guidelines

  • Use TypeScript for all new code
  • Follow Vue 3 Composition API patterns
  • Write unit tests for algorithm implementations
  • Maintain internationalization for new strings
  • Ensure responsive design principles

License

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

Acknowledgments

  • Vue.js - The Progressive JavaScript Framework
  • Vite - Next Generation Frontend Tooling
  • vis-network - Network visualization library
  • Tailwind CSS - A utility-first CSS framework

Support

If you have any questions or need help:

  • Open an issue on GitHub
  • Check the documentation

Happy Graph Solving!

ko-fi

(back to top)

About

A complete web tool for graph theory. It solves the Dijkstra, Floyd–Warshall, and MST (Kruskal) algorithms and analyzes structural properties via adjacency matrices. Includes dynamic visualization and import/export options.

Topics

Resources

Stars

Watchers

Forks