diff --git a/README.md b/README.md new file mode 100644 index 0000000..960eacc --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +[![CodeFactor](https://www.codefactor.io/repository/github/spbu-coding-2024/graphs-team-3/badge)](https://www.codefactor.io/repository/github/spbu-coding-2024/graphs-team-3) +![Kotlin](https://img.shields.io/badge/Kotlin-2.1.10-blue.svg) +![Gradle](https://img.shields.io/badge/Gradle-8.13-brightgreen.svg) +![Java](https://img.shields.io/badge/Java-21-brightgreen.svg) +![License](https://img.shields.io/badge/License-GPLv3-red.svg) +[![Neo4j](https://img.shields.io/badge/Neo4j-008CC1?style=flat&logo=neo4j&logoColor=white)](https://neo4j.com/) +[![SQLite](https://img.shields.io/badge/SQLite-07405E?style=flat)](https://www.sqlite.org/) +# Graph Vizualizer Application + +![Hello Screen](/resources/mainScreen.png) + +## Tecnologies + +- Kotlin 2.1.10 +- Java 21 +- SQLite +- Neo4j +- JUnit 5 +- Jetpack Compose 1.7.1 +- Gradle 8.13 + +## Architecture +We've implemented the **Model-View-ViewModel (MVVM)** architectural pattern + +Blocks: +- Model (graph model, input/output, utilities) +- ViewModel (states, coloring) +- View (GUI elements) + +## Start guide + +- Download: +```bash +git clone git@github.com:spbu-coding-2024/graphs-team-3.git +cd graphs-team-3 +``` +- Build: +```bash +./gradlew build +``` +- Run: +```bash +./gradlew run +``` + +# Algorithms + +## Communities +#### Use Louvain algorithm +![](resources/Louvane.gif) + +## Find Bridges +![](resources/FindBridges.gif) + +## Minimum Spanning Tree +#### Use Kruskal algorithm +![](resources/MST.gif) + +## Path and negative loops find +#### Use Ford-Bellman algorithm +![](resources/FordBellman.gif) + +## Strong Connect Components +![](resources/SCC.gif) + +# Load graph + +![](resources/helloScreen.png) +You can: +- Load graph from SQLite database +- Load graph from Neo4j graph database +- Create random graph with settings + +# Contributors + +- [Gorlov Stepan](https://github.com/Stepiiiiiiik) +- [Yakovelev Nickolai](https://github.com/Nickovlev) + +# License +[GPLv3](https://www.gnu.org/licenses/gpl-3.0.txt) diff --git a/resources/FindBridges.gif b/resources/FindBridges.gif new file mode 100644 index 0000000..69eb5e3 Binary files /dev/null and b/resources/FindBridges.gif differ diff --git a/resources/FordBellman.gif b/resources/FordBellman.gif new file mode 100644 index 0000000..e50776d Binary files /dev/null and b/resources/FordBellman.gif differ diff --git a/resources/Louvane.gif b/resources/Louvane.gif new file mode 100644 index 0000000..3c0c26f Binary files /dev/null and b/resources/Louvane.gif differ diff --git a/resources/MST.gif b/resources/MST.gif new file mode 100644 index 0000000..1584f02 Binary files /dev/null and b/resources/MST.gif differ diff --git a/resources/SCC.gif b/resources/SCC.gif new file mode 100644 index 0000000..3511df4 Binary files /dev/null and b/resources/SCC.gif differ diff --git a/resources/helloScreen.png b/resources/helloScreen.png new file mode 100644 index 0000000..dd0fd8b Binary files /dev/null and b/resources/helloScreen.png differ diff --git a/resources/mainScreen.png b/resources/mainScreen.png new file mode 100644 index 0000000..84eb6d6 Binary files /dev/null and b/resources/mainScreen.png differ