# haseeb614/cs35-project architecture

> Architecture diagram of the GitHub repository haseeb614/cs35-project, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/haseeb614/cs35-project
- Repository: https://github.com/haseeb614/cs35-project

## Overview

This is a small C++ citation-network data project. The sampled runtime code supports paper records in a hand-built linked list and validation of citation-edge CSV data against that list. The tree also names loading, graph, feature, and hash modules, but their excerpts are empty and the README provides no capability or workflow details. Accordingly, those modules are shown without inferred connections; the only evidenced runtime relationship is validation querying the paper list.

Main entry points: [`src/list.cpp`](https://github.com/haseeb614/cs35-project/blob/main/src/list.cpp) (Paper list), [`src/validator.cpp`](https://github.com/haseeb614/cs35-project/blob/main/src/validator.cpp) (Dataset validator), [`src/record.h`](https://github.com/haseeb614/cs35-project/blob/main/src/record.h) (Paper record)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Paper data"]
  node_paper_record["Paper record<br/>[record.h]"]
  node_paper_list["Paper list<br/>[list.cpp]"]
end

subgraph group_validation["Integrity validation"]
  node_validator["Dataset validator<br/>[validator.cpp]"]
end

subgraph group_network["Citation network modules"]
  node_loader["Dataset loader<br/>[loader.cpp]"]
  node_graph["Citation graph<br/>[graph.h]"]
  node_features["Feature module<br/>[feature.cpp]"]
  node_hash["Hash module<br/>[hash.cpp]"]
end

node_application["Application entry<br/>[main.cpp]"]

node_validator -->|"checks records"| node_paper_list
node_paper_list -->|"stores records"| node_paper_record

click node_paper_record "https://github.com/haseeb614/cs35-project/blob/main/src/record.h"
click node_paper_list "https://github.com/haseeb614/cs35-project/blob/main/src/list.cpp"
click node_validator "https://github.com/haseeb614/cs35-project/blob/main/src/validator.cpp"
click node_loader "https://github.com/haseeb614/cs35-project/blob/main/src/loader.cpp"
click node_graph "https://github.com/haseeb614/cs35-project/blob/main/src/graph.h"
click node_features "https://github.com/haseeb614/cs35-project/blob/main/src/feature.cpp"
click node_hash "https://github.com/haseeb614/cs35-project/blob/main/src/hash.cpp"
click node_application "https://github.com/haseeb614/cs35-project/blob/main/src/main.cpp"

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_paper_record,node_paper_list toneBlue
class node_validator toneAmber
class node_loader,node_graph,node_features,node_hash toneMint
class node_application toneTeal
```

## Components

### Paper data

- [Paper record](https://github.com/haseeb614/cs35-project/blob/main/src/record.h): `src/record.h`
- [Paper list](https://github.com/haseeb614/cs35-project/blob/main/src/list.cpp): `src/list.cpp`

### Integrity validation

- [Dataset validator](https://github.com/haseeb614/cs35-project/blob/main/src/validator.cpp): `src/validator.cpp`

### Citation network modules

- [Dataset loader](https://github.com/haseeb614/cs35-project/blob/main/src/loader.cpp): `src/loader.cpp`
- [Citation graph](https://github.com/haseeb614/cs35-project/blob/main/src/graph.h): `src/graph.h`
- [Feature module](https://github.com/haseeb614/cs35-project/blob/main/src/feature.cpp): `src/feature.cpp`
- [Hash module](https://github.com/haseeb614/cs35-project/blob/main/src/hash.cpp): `src/hash.cpp`

### Other components

- [Application entry](https://github.com/haseeb614/cs35-project/blob/main/src/main.cpp): `src/main.cpp`

## Connections

- Dataset validator → Paper list: checks records (evidence: `src/validator.cpp`)
- Paper list → Paper record: stores records
