Skip to content

spbu-coding-2024/graphs-graphs-team-7

Repository files navigation

Graph Visualizer

The application was written by first-year student of software engineering at St. Petersburg State University: Khmelev Vladimir.

I present MVVM graph application designed to simplify user interaction with graphs and instruments to explore its properties.

Local start

  1. Clone the repository: git clone git@github.com:spbu-coding-2024/graphs-graphs-team-7.git
  2. Go to the project directory: cd graphs-graphs-team-7
  3. Build the project with Gradle: ./gradlew build
  4. Run application: ./gradlew run
  5. Also run tests: ./gradlew test

Usage

example After launching, you will see a white canvas.

You can view it by clicking on "Управление".

To create a graph, you can click on the "Generate" button and select the number of vertices.

To connect vertices, you can click on "Merge Vertices" and on the "V" keyboard, and then click on two vertices.

If you want to create an edge with a certain weight, then click on "Add Edge", then select the vertices you need and write the weight.

There are settings for Dijkstra's algorithm:

  1. Click on "Set Start".
  2. Click on a vertex.
  3. Click on "Set End"
  4. Click on a vertex.
  5. Click on "Algorithms" - "Dijkstra's algorithm" - The shortest path and the route weight will be displayed at the top.

Algorithms

Working with a graph

  • JSON - The application implements convenient work with JSON files, which allows users to save and load graphs with all their properties preserved. Each graph is saved with all vertices, edges, weights and additional parameters, such as vertex positions on the plane. This ensures accurate restoration of the graph state when saving/loading.
  • CSV - tabular format support is implemented: easy editing in Excel/Google tables.

Based on

  • Jetpack Compose 1.6.0
  • Gradle 8.13
  • Jacoco
  • JUnit5
  • Kotlin 1.9.22

License

  • License - This project is licensed under the MIT license.

Contact

About

graphs-graphs-team-7 created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors