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.
- Features
- Quick Start
- Usage
- Testing
- Technologies Used
- Internationalization
- Themes
- Contributing
- License
- Acknowledgments
- Support
- 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
- Node.js (v18 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/graphsolver.com.git cd graphsolver.com -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser
Navigate to
http://localhost:5173to see GraphSolver in action!
npm run build
npm run preview-
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)
-
Select Algorithm:
- Choose from Dijkstra, Floyd-Warshall, or Kruskal algorithms
- Configure algorithm parameters if needed
-
Visualize Results:
- View the graph visualization with computed paths highlighted
- Examine detailed results in the properties panel
-
Export Results:
- Save your graph and results to various formats
- Copy results for use in other applications
- 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
Run the test suite using Vitest:
npm testTests cover algorithm implementations and core functionality to ensure correctness and reliability.
- 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)
GraphSolver supports multiple languages:
- English (en)
- Spanish (es)
Language switching is available in the navigation bar. Contributions for additional languages are welcome!
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.
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and add tests
- Run tests:
npm test - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Submit a pull request
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Vue.js - The Progressive JavaScript Framework
- Vite - Next Generation Frontend Tooling
- vis-network - Network visualization library
- Tailwind CSS - A utility-first CSS framework
If you have any questions or need help:
- Open an issue on GitHub
- Check the documentation
Happy Graph Solving!