# rogercolin/campus-lost-and-found architecture

> Architecture diagram of the GitHub repository rogercolin/campus-lost-and-found, 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/rogercolin/campus-lost-and-found
- Repository: https://github.com/rogercolin/campus-lost-and-found

## Overview

Campus Lost and Found is an under-development campus reporting and recovery app. Students browse/search item reports, submit lost or found items, and file claims; administrators log in to review and approve or reject claims. The React app communicates directly with an Express API, which uses Mongoose models for item and claim records and exposes public statistics. The tree supports the main client, API, and persistence boundaries; omitted client excerpts limit certainty about some UI-to-endpoint details.

Main entry points: [`server/src/server.js`](https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/server.js) (Express API), [`client/src/App.jsx`](https://github.com/rogercolin/campus-lost-and-found/blob/main/client/src/App.jsx) (Lost-and-found app), [`client/src/main.jsx`](https://github.com/rogercolin/campus-lost-and-found/blob/main/client/src/main.jsx) (React entry), [`server/src/models/Item.js`](https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/models/Item.js) (Item model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_entry["React entry<br/>[main.jsx]"]
  node_app["Lost-and-found app<br/>[App.jsx]"]
end

subgraph group_api["API"]
  node_api_server["Express API<br/>[server.js]"]
end

subgraph group_persistence["Persistence"]
  node_item_model["Item model<br/>[Item.js]"]
  node_claim_model["Claim model<br/>[Claim.js]"]
  node_mongo[("MongoDB")]
end

node_student(("Student"))
node_admin(("Administrator"))

node_student -->|"uses"| node_entry
node_admin -->|"uses"| node_entry
node_entry -->|"renders"| node_app
node_app -->|"fetches reports"| node_api_server
node_app -->|"submits reports"| node_api_server
node_app -->|"submits claims"| node_api_server
node_app -->|"manages claims"| node_api_server
node_app -->|"requests statistics"| node_api_server
node_api_server -->|"queries and saves"| node_item_model
node_api_server -->|"queries and saves"| node_claim_model
node_api_server -->|"connects"| node_mongo

click node_entry "https://github.com/rogercolin/campus-lost-and-found/blob/main/client/src/main.jsx"
click node_app "https://github.com/rogercolin/campus-lost-and-found/blob/main/client/src/App.jsx"
click node_api_server "https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/server.js"
click node_item_model "https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/models/Item.js"
click node_claim_model "https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/models/Claim.js"

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_entry,node_app toneBlue
class node_api_server toneAmber
class node_item_model,node_claim_model,node_mongo toneMint
class node_student,node_admin toneIndigo
```

## Components

### Web application

- [React entry](https://github.com/rogercolin/campus-lost-and-found/blob/main/client/src/main.jsx): `client/src/main.jsx`
- [Lost-and-found app](https://github.com/rogercolin/campus-lost-and-found/blob/main/client/src/App.jsx): `client/src/App.jsx`

### API

- [Express API](https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/server.js): `server/src/server.js`

### Persistence

- [Item model](https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/models/Item.js): `server/src/models/Item.js`
- [Claim model](https://github.com/rogercolin/campus-lost-and-found/blob/main/server/src/models/Claim.js): `server/src/models/Claim.js`
- **MongoDB**

### Other components

- **Student**
- **Administrator**

## Connections

- Student → React entry: uses
- Administrator → React entry: uses
- React entry → Lost-and-found app: renders
- Lost-and-found app → Express API: fetches reports
- Lost-and-found app → Express API: submits reports
- Lost-and-found app → Express API: submits claims
- Lost-and-found app → Express API: manages claims
- Lost-and-found app → Express API: requests statistics
- Express API → Item model: queries and saves
- Express API → Claim model: queries and saves
- Express API → MongoDB: connects
