This app allows you to analyze graphs (directed, undirected, weighted and unweighted), using various algorithms. To load graphs, you can use SQLite and Neo4j databases.
Clone the repo to your computer:
git clone [email protected]:spbu-coding-2023/graphs-graphs-5.git
Run the following command to install the dependencies:
./gradlew build
Use the following command to run the application:
./gradlew run
You are all set!
Now, if you want, you can run tests:
./gradlew test
For integration test that uses Neo4j you will need Docker. In terminal run this command:
docker run \
--name neo4j \
-e NEO4J_AUTH=neo4j/testtesttest\
-p 7475:7474 -p 7689:7687 \
-d neo4j:latest
If this port is not free, you can adjust it and uri specifically for your computer.
You can use SQLite or Neo4j to load and store graphs. You will need:
for SQLite
- path to database
for Neo4j
- URI, username and password. You can also store results of 3 main algorithms
There 3 main algorithms that are avaliable for all graphs: Clustering, highlighting Key Vertices, and Graph Layout (set as default when you load the app). For directed graph you can you use:
Cycles
finds cycle that chosen vertex is inStrong components
finds strongly connected components usin Kosaraju's algorithmMin path(Dijkstra)
andMin path(Ford-Bellman)
find the shortest paths between two chosen vertices
For undirected graph you can use:
Bridges
Min Spannig Tree
Min path(Dijkstra)
finds the shortest paths between two chosen vertices
- Zooming in and out of graph surface
- Dragging graph's vertices
- Showing labels: vertices' indices and edges' weights
- Applying theme (Classic Vintage or Barbie Coded)
- Running algorithms
Have fun!
- p1onerka (tg @p10nerka)
- sofyak0zyreva (tg @soffque)
- shvorobsofia (tg @fshv23)
The product is distributed under GNU General Public License v3.0. Check LICENSE for more information
This project uses the following third-party libraries:
Gephi Toolkit licensed under the GNU General Public License v3.0. The source code for the Gephi Toolkit can be found at Gephi Toolkit Source