# mayurpatel720/sarangpur-archive architecture

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

- Interactive diagram: https://gitdiagram.com/mayurpatel720/sarangpur-archive
- Repository: https://github.com/mayurpatel720/sarangpur-archive
- Video tour (about a minute): https://gitdiagram.com/mayurpatel720/sarangpur-archive/video

## Overview

Archive Tracker supports tracking archival lots through intake, review, digitization, MLS tagging, storage, returns and discards. The documented MVP centers on a dashboard: users view KPIs, stage queues, alerts and recent activity backed by a live API and MongoDB. The tree also contains register, lot-operation, search and administration screens and APIs; the README describes these as designed but not built, so their runtime depth is less certain. The graph reflects documented dashboard wiring and sampled API calls; unsampled subsystem links are limited to clear route-to-service ownership.

Main entry points: [`src/models`](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/models) (Archive records), [`src/components/lots`](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/lots) (Lot screens), [`src/app/api/lots`](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/lots) (Lot API), [`src/server/dashboard/queries.ts`](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/dashboard/queries.ts) (Dashboard queries)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_dashboard_ui["Dashboard"]
  node_lot_ui["Lot screens"]
  node_admin_ui["Admin screens"]
  node_shell_ui["App shell"]
end

subgraph group_api["API surface"]
  node_dashboard_api["Dashboard API"]
  node_lots_api["Lot API"]
  node_queues_api["Queue API"]
  node_search_api["Search API<br/>[route.ts]"]
  node_admin_api["Admin API"]
  node_reference_api["Reference API<br/>[route.ts]"]
end

subgraph group_domain["Archive operations"]
  node_dashboard_queries["Dashboard queries<br/>[queries.ts]"]
  node_dashboard_pipelines["Dashboard aggregations<br/>[pipelines.ts]"]
  node_lot_queries["Lot queries<br/>[queries.ts]"]
  node_lot_mutations["Lot mutations<br/>[mutations.ts]"]
  node_lot_operations["Lot operations<br/>[operations.ts]"]
  node_reconcile["Reconciliation"]
  node_admin_services["Admin services"]
  node_search_queries["Search queries<br/>[queries.ts]"]
end

subgraph group_data["Data and access"]
  node_auth_access["Authentication and permissions<br/>[permissions.ts]"]
  node_mongo["MongoDB connection<br/>[mongo.ts]"]
  node_archive_models[("Archive records")]
  node_reference_model[("Reference lists<br/>[ReferenceList.ts]")]
  node_admin_models[("Users and settings")]
end

node_archive_user(("Archive user"))

node_archive_user -->|"views"| node_dashboard_ui
node_archive_user -->|"manages lots"| node_lot_ui
node_archive_user -->|"administers"| node_admin_ui
node_dashboard_ui -->|"requests data"| node_dashboard_api
node_lot_ui -->|"requests lot data"| node_lots_api
node_lot_ui -->|"loads queues"| node_queues_api
node_lot_ui -->|"searches"| node_search_api
node_admin_ui -->|"manages settings"| node_admin_api
node_lot_ui -->|"loads vocabularies"| node_reference_api
node_dashboard_api -->|"calls"| node_dashboard_queries
node_dashboard_queries -->|"runs aggregations"| node_dashboard_pipelines
node_dashboard_pipelines -->|"aggregates lots"| node_archive_models
node_dashboard_queries -->|"reads activity"| node_archive_models
node_lots_api -->|"calls"| node_lot_queries
node_lots_api -->|"calls"| node_lot_mutations
node_queues_api -->|"loads queue data"| node_lot_queries
node_lot_queries -->|"reads"| node_archive_models
node_lot_mutations -->|"writes"| node_archive_models
node_lot_operations -->|"updates records"| node_archive_models
node_reconcile -->|"reconciles records"| node_archive_models
node_search_api -->|"calls"| node_search_queries
node_search_queries -->|"searches"| node_archive_models
node_admin_api -->|"calls"| node_admin_services
node_admin_services -->|"reads and writes"| node_admin_models
node_reference_api -->|"reads"| node_reference_model
node_lots_api -->|"checks permission"| node_auth_access
node_admin_api -->|"checks permission"| node_auth_access
node_dashboard_queries -->|"connects through"| node_mongo
node_lot_queries -->|"connects through"| node_mongo

click node_dashboard_ui "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/dashboard"
click node_lot_ui "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/lots"
click node_admin_ui "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/admin"
click node_shell_ui "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/shell"
click node_dashboard_api "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/dashboard"
click node_lots_api "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/lots"
click node_queues_api "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/queues"
click node_search_api "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/app/api/search/route.ts"
click node_admin_api "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/admin"
click node_reference_api "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/app/api/reference/%5Bkey%5D/route.ts"
click node_dashboard_queries "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/dashboard/queries.ts"
click node_dashboard_pipelines "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/dashboard/pipelines.ts"
click node_lot_queries "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/lots/queries.ts"
click node_lot_mutations "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/lots/mutations.ts"
click node_lot_operations "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/lots/operations.ts"
click node_reconcile "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/server/reconcile"
click node_admin_services "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/server/admin"
click node_search_queries "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/search/queries.ts"
click node_auth_access "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/permissions.ts"
click node_mongo "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/lib/mongo.ts"
click node_archive_models "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/models"
click node_reference_model "https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/models/ReferenceList.ts"
click node_admin_models "https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/models"

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_dashboard_ui,node_lot_ui,node_admin_ui,node_shell_ui,node_archive_user toneBlue
class node_dashboard_api,node_lots_api,node_queues_api,node_search_api,node_admin_api,node_reference_api toneAmber
class node_dashboard_queries,node_dashboard_pipelines,node_lot_queries,node_lot_mutations,node_lot_operations,node_reconcile,node_admin_services,node_search_queries toneMint
class node_auth_access,node_mongo,node_archive_models,node_reference_model,node_admin_models toneRose
```

## Components

### User experience

- [Dashboard](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/dashboard): `src/components/dashboard`
- [Lot screens](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/lots): `src/components/lots`
- [Admin screens](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/admin): `src/components/admin`
- [App shell](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/components/shell): `src/components/shell`

### API surface

- [Dashboard API](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/dashboard): `src/app/api/dashboard`
- [Lot API](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/lots): `src/app/api/lots`
- [Queue API](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/queues): `src/app/api/queues`
- [Search API](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/app/api/search/route.ts): `src/app/api/search/route.ts`
- [Admin API](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/app/api/admin): `src/app/api/admin`
- [Reference API](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/app/api/reference/%5Bkey%5D/route.ts): `src/app/api/reference/[key]/route.ts`

### Archive operations

- [Dashboard queries](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/dashboard/queries.ts): `src/server/dashboard/queries.ts`
- [Dashboard aggregations](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/dashboard/pipelines.ts): `src/server/dashboard/pipelines.ts`
- [Lot queries](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/lots/queries.ts): `src/server/lots/queries.ts`
- [Lot mutations](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/lots/mutations.ts): `src/server/lots/mutations.ts`
- [Lot operations](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/lots/operations.ts): `src/server/lots/operations.ts`
- [Reconciliation](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/server/reconcile): `src/server/reconcile`
- [Admin services](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/server/admin): `src/server/admin`
- [Search queries](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/search/queries.ts): `src/server/search/queries.ts`

### Data and access

- [Authentication and permissions](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/server/permissions.ts): `src/server/permissions.ts`
- [MongoDB connection](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/lib/mongo.ts): `src/lib/mongo.ts`
- [Archive records](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/models): `src/models`
- [Reference lists](https://github.com/mayurpatel720/sarangpur-archive/blob/main/src/models/ReferenceList.ts): `src/models/ReferenceList.ts`
- [Users and settings](https://github.com/mayurpatel720/sarangpur-archive/tree/main/src/models): `src/models`

### Other components

- **Archive user**

## Connections

- Archive user → Dashboard: views
- Archive user → Lot screens: manages lots
- Archive user → Admin screens: administers
- Dashboard → Dashboard API: requests data
- Lot screens → Lot API: requests lot data
- Lot screens → Queue API: loads queues
- Lot screens → Search API: searches
- Admin screens → Admin API: manages settings
- Lot screens → Reference API: loads vocabularies
- Dashboard API → Dashboard queries: calls
- Dashboard queries → Dashboard aggregations: runs aggregations
- Dashboard aggregations → Archive records: aggregates lots
- Dashboard queries → Archive records: reads activity
- Lot API → Lot queries: calls
- Lot API → Lot mutations: calls
- Queue API → Lot queries: loads queue data
- Lot queries → Archive records: reads
- Lot mutations → Archive records: writes
- Lot operations → Archive records: updates records
- Reconciliation → Archive records: reconciles records
- Search API → Search queries: calls
- Search queries → Archive records: searches
- Admin API → Admin services: calls
- Admin services → Users and settings: reads and writes
- Reference API → Reference lists: reads
- Lot API → Authentication and permissions: checks permission
- Admin API → Authentication and permissions: checks permission
- Dashboard queries → MongoDB connection: connects through
- Lot queries → MongoDB connection: connects through
