# chandan291/kit205-503028 architecture

> Architecture diagram of the GitHub repository chandan291/kit205-503028, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/chandan291/kit205-503028
- Repository: https://github.com/chandan291/kit205-503028

## Overview

This is a coursework collection; the clearest integrated application is an emergency-vehicle routing comparison. Its workflow generates a weighted city graph, runs Dijkstra and A* for routes, and reports path and benchmark results. The tree also contains a separate PageRank exercise, shown as an independent branch. Routing links reflect the sampled main program; algorithm internals were not sampled, so their dependencies are not inferred.

Main entry points: [`Assign2fix/main.c`](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/main.c) (Routing CLI), [`week 9/Main.c`](https://github.com/chandan291/kit205-503028/blob/master/week%209/Main.c) (PageRank Runner), [`Assign2fix/dijkstra.c`](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/dijkstra.c) (Dijkstra), [`Assign2fix/astar.c`](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/astar.c) (A* Search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["Emergency Routing"]
  node_routing_main["Routing CLI<br/>[main.c]"]
  node_dijkstra["Dijkstra<br/>[dijkstra.c]"]
  node_astar["A* Search<br/>[astar.c]"]
  node_route_results["Route and Benchmarks<br/>[main.c]"]
end

subgraph group_graph["Graph Model"]
  node_generator["City Generator<br/>[graph_generator.c]"]
  node_graph_data[("Weighted Graph<br/>[graph.c]")]
  node_priority_queue["Priority Queue<br/>[priority_queue.c]"]
end

subgraph group_pagerank["PageRank Exercise"]
  node_pagerank_main["PageRank Runner<br/>[Main.c]"]
  node_pagerank_graph["PageRank Graph API<br/>[graph.c]"]
  node_pagerank_output["Rank Output<br/>[Main.c]"]
end

node_user(("User"))
node_edge_data["Edge-list Input"]

node_user -->|"select mode"| node_routing_main
node_routing_main -->|"generate graph"| node_generator
node_generator -->|"build graph"| node_graph_data
node_routing_main -->|"run search"| node_dijkstra
node_routing_main -->|"run search"| node_astar
node_dijkstra -->|"return results"| node_route_results
node_astar -->|"return results"| node_route_results
node_routing_main -->|"report benchmarks"| node_route_results
node_edge_data -->|"read input"| node_pagerank_main
node_pagerank_main -->|"build graph"| node_pagerank_graph
node_pagerank_main -->|"calculate ranks"| node_pagerank_graph
node_pagerank_main -->|"print ranks"| node_pagerank_output

click node_routing_main "https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/main.c"
click node_generator "https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/graph_generator.c"
click node_graph_data "https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/graph.c"
click node_dijkstra "https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/dijkstra.c"
click node_astar "https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/astar.c"
click node_priority_queue "https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/priority_queue.c"
click node_route_results "https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/main.c"
click node_pagerank_main "https://github.com/chandan291/kit205-503028/blob/master/week%209/Main.c"
click node_pagerank_graph "https://github.com/chandan291/kit205-503028/blob/master/week%209/graph.c"
click node_pagerank_output "https://github.com/chandan291/kit205-503028/blob/master/week%209/Main.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_routing_main,node_dijkstra,node_astar,node_route_results,node_user toneBlue
class node_generator,node_graph_data,node_priority_queue toneAmber
class node_pagerank_main,node_pagerank_graph,node_pagerank_output toneMint
class node_edge_data toneIndigo
```

## Components

### Emergency Routing

- [Routing CLI](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/main.c): `Assign2fix/main.c`
- [Dijkstra](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/dijkstra.c): `Assign2fix/dijkstra.c`
- [A* Search](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/astar.c): `Assign2fix/astar.c`
- [Route and Benchmarks](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/main.c): `Assign2fix/main.c`

### Graph Model

- [City Generator](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/graph_generator.c): `Assign2fix/graph_generator.c`
- [Weighted Graph](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/graph.c): `Assign2fix/graph.c`
- [Priority Queue](https://github.com/chandan291/kit205-503028/blob/master/Assign2fix/priority_queue.c): `Assign2fix/priority_queue.c`

### PageRank Exercise

- [PageRank Runner](https://github.com/chandan291/kit205-503028/blob/master/week%209/Main.c): `week 9/Main.c`
- [PageRank Graph API](https://github.com/chandan291/kit205-503028/blob/master/week%209/graph.c): `week 9/graph.c`
- [Rank Output](https://github.com/chandan291/kit205-503028/blob/master/week%209/Main.c): `week 9/Main.c`

### Other components

- **User**
- **Edge-list Input**

## Connections

- User → Routing CLI: select mode
- Routing CLI → City Generator: generate graph
- City Generator → Weighted Graph: build graph
- Routing CLI → Dijkstra: run search
- Routing CLI → A* Search: run search
- Dijkstra → Route and Benchmarks: return results
- A* Search → Route and Benchmarks: return results
- Routing CLI → Route and Benchmarks: report benchmarks
- Edge-list Input → PageRank Runner: read input
- PageRank Runner → PageRank Graph API: build graph
- PageRank Runner → PageRank Graph API: calculate ranks
- PageRank Runner → Rank Output: print ranks
