# chamikakarunarathna/data-structures-campus-manager architecture

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

- Interactive diagram: https://gitdiagram.com/chamikakarunarathna/data-structures-campus-manager
- Repository: https://github.com/chamikakarunarathna/data-structures-campus-manager

## Overview

This is a Java console application for student records, service requests, recent-action history, and campus routes. The main workflow is menu-driven: users manage student records, queue and process student requests, inspect recent actions, or maintain campus locations and connections and run BFS traversal. Student records live in a linked list, with a search index providing sorted tree display and hash lookup; the list keeps the index synchronized on additions and deletions. The excerpts show Main coordinating these structures. CampusGraph is partial, so its detailed internal wiring is not expanded beyond documented operations.

Main entry points: [`src/Main.java`](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/Main.java) (Menu Controller), [`src/StudentLinkedList.java`](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentLinkedList.java) (Student List), [`src/StudentSearchIndex.java`](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentSearchIndex.java) (Search Index), [`src/Student.java`](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/Student.java) (Student Record)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_records["Student Records"]
  node_student_list["Student List"]
  node_student["Student Record<br/>[Student.java]"]
  node_student_index["Search Index"]
  node_student_node["List Node<br/>[StudentNode.java]"]
end

subgraph group_requests["Requests And History"]
  node_request["Service Request"]
  node_request_queue["Request Queue"]
  node_action_stack["Recent Actions"]
end

subgraph group_campus["Campus Routes"]
  node_campus_graph["Campus Graph<br/>[CampusGraph.java]"]
end

subgraph group_app["Console Application"]
  node_main["Menu Controller<br/>[Main.java]"]
end

node_user(("Console User"))

node_user -->|"chooses menu actions"| node_main
node_main -->|"manages records"| node_student_list
node_main -->|"creates records"| node_student
node_student_list -->|"links records"| node_student_node
node_student_list -->|"adds and removes"| node_student_index
node_main -->|"searches via list"| node_student_index
node_main -->|"creates requests"| node_request
node_main -->|"enqueues and dequeues"| node_request_queue
node_main -->|"records and displays"| node_action_stack
node_main -->|"manages and traverses"| node_campus_graph

click node_main "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/Main.java"
click node_student_list "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentLinkedList.java"
click node_student "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/Student.java"
click node_student_index "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentSearchIndex.java"
click node_student_node "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentNode.java"
click node_request "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/ServiceRequest.java"
click node_request_queue "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/ServiceRequestQueue.java"
click node_action_stack "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/RecentActionStack.java"
click node_campus_graph "https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/CampusGraph.java"

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_student_list,node_student,node_student_index,node_student_node,node_user toneBlue
class node_request,node_request_queue,node_action_stack toneAmber
class node_campus_graph toneMint
class node_main toneRose
```

## Components

### Student Records

- [Student List](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentLinkedList.java): `src/StudentLinkedList.java`
- [Student Record](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/Student.java): `src/Student.java`
- [Search Index](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentSearchIndex.java): `src/StudentSearchIndex.java`
- [List Node](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/StudentNode.java): `src/StudentNode.java`

### Requests And History

- [Service Request](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/ServiceRequest.java): `src/ServiceRequest.java`
- [Request Queue](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/ServiceRequestQueue.java): `src/ServiceRequestQueue.java`
- [Recent Actions](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/RecentActionStack.java): `src/RecentActionStack.java`

### Campus Routes

- [Campus Graph](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/CampusGraph.java): `src/CampusGraph.java`

### Console Application

- [Menu Controller](https://github.com/chamikakarunarathna/data-structures-campus-manager/blob/master/src/Main.java): `src/Main.java`

### Other components

- **Console User**

## Connections

- Console User → Menu Controller: chooses menu actions
- Menu Controller → Student List: manages records
- Menu Controller → Student Record: creates records
- Student List → List Node: links records
- Student List → Search Index: adds and removes
- Menu Controller → Search Index: searches via list
- Menu Controller → Service Request: creates requests
- Menu Controller → Request Queue: enqueues and dequeues
- Menu Controller → Recent Actions: records and displays
- Menu Controller → Campus Graph: manages and traverses
