Skip to content
timeobossuetPublic

About

Java graph algorithms and route-planning application with an interactive desktop GUI.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Graph Algorithms and Route Planning

Java project for loading road graphs, running graph algorithms, and visualising routes in a desktop GUI. The project was developed as part of the INSA Toulouse graph algorithms coursework and is now organised as a standalone multi-module Maven repository.

Features

  • A graph model with nodes, arcs, paths, graph statistics, and binary readers.
  • Shortest-path algorithms: Dijkstra, A*, and Bellman-Ford.
  • Weakly connected components, package switching, and car-pooling algorithms.
  • A Swing/Mapsforge GUI for loading graphs, selecting nodes, running algorithms, and displaying paths.
  • Unit tests for the model, priority queues, binary heaps, and shortest paths.

Requirements

  • Java 17 or newer
  • Maven 3.8 or newer
  • A graphical desktop session to run the GUI

Map and path files are not included in this repository. The application expects the binary formats used by the INSA graph tools (.mapgr for graphs and .path for paths). Keep these potentially large data files outside the source tree and select them from the GUI when needed.

Build and test

From the repository root:

mvn clean verify

This builds all modules and runs the test suites. To build only the model and algorithm modules:

mvn -pl be-graphes-model,be-graphes-algos -am verify

Run the GUI

The main application opens a desktop window with file pickers for graph and path files:

mvn -pl be-graphes-gui exec:java

The GUI entry point is org.insa.graphs.gui.MainWindow. A small drawing demo is also available and accepts a graph file followed by a path file:

mvn -pl be-graphes-gui exec:java \
    -Dexec.mainClass=org.insa.graphs.gui.simple.Launch \
    -Dexec.args="/path/to/map.mapgr /path/to/route.path"

Project structure

be-graphes-model/  Graph domain objects and binary file I/O
be-graphes-algos/  Algorithms and algorithm-specific data/observers
be-graphes-gui/    Swing/Mapsforge desktop application
docs/              Architecture and development notes
.github/           Continuous integration configuration

See the architecture guide for module boundaries and the contribution guide for the development workflow.

Continuous integration

GitHub Actions runs mvn verify on every push and pull request with Java 17. The same command should pass locally before opening a pull request.

License and attribution

No license has been selected for this repository yet. Until a license is added, the source code should not be redistributed as if it were open source. The project is based on the INSA Toulouse graph coursework and retains its original academic context.

About

Java graph algorithms and route-planning application with an interactive desktop GUI.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages