This project creates a flexible Java graph library with classes for UndirectedGraph, NonWeightedGraphAlgorithms, WeightedGraph, and WeightedGraphAlgorithms. It supports a variety of graph operations, including DFS, BFS, Dijkstra's algorithm, Kruskal's MST method, and connected component identification.