Skip to content

Releases: spbu-coding-2023/graphs-1-1

Graphses-v1.0.0

30 May 19:37
b57a0da
Compare
Choose a tag to compare

Initial Release of Graphses

Welcome to the initial release of our Graph Visualization and Analysis desktop application! This project is the result of a collaborative effort by a team of three developers, each contributing to different aspects of the application's functionality. Below is an overview of the key features and components included in this first release:
Core Algorithms
Modern Algorithms

Our application incorporates three contemporary graph algorithms, each selected and implemented by a team member:

Graph Layout on a Plane: Visualization of graph structure on a two-dimensional plane.
Key Vertex Identification: Detection of critical nodes within the graph.
Community Detection: Identification of clusters or communities within the graph.

Each algorithm is either custom-implemented or integrated from third-party libraries, ensuring compliance with author licenses and a deep understanding of their mechanisms.

Classic Algorithms

In addition to modern algorithms, each team member has implemented one algorithm from the following classic algorithm groups:
Group 1

Strongly Connected Components Detection: For directed graphs.
Bridge Detection: For undirected graphs.
Cycle Detection: For specified vertices in both directed and/or undirected graphs.

Group 2 (Weighted Graphs)

Minimum Spanning Tree Construction: For undirected graphs.
Shortest Path Detection using Dijkstra's Algorithm: For both directed and/or undirected graphs.
Shortest Path Detection using Bellman-Ford Algorithm: For both directed and/or undirected graphs.

Graphical User Interface (GUI)

The application features an intuitive and user-friendly interface for visualizing graphs and the results of algorithmic computations. We employed the Model-View-Controller (MVC) pattern to ensure a well-structured and maintainable codebase.
Graph Persistence

To manage graph data efficiently, we've implemented multiple storage options:

File Storage: One team member has developed functionality for reading from and writing to files in JSON format. 
SQLite Database: Another member has created tools for saving and retrieving graphs from an SQLite database.
Neo4j Database: The third member has implemented support for storing and querying graphs in the Neo4j graph database.

Testing

Robust testing is a cornerstone of our development process. Each team member has written unit tests for their respective functionalities, ensuring code reliability and correctness.

Future Enhancements

While this initial release lays a solid foundation, we plan to continuously improve and expand the application's capabilities. Your feedback is invaluable, and we welcome any suggestions for new features or improvements.

Thank you for choosing Graphses. We look forward to your feedback and hope you find it a valuable tool for your graph-related tasks.

Feel free to explore the source code, report issues, or contribute to the project on our GitHub repository. Happy graph analyzing!