# soulrx-ai/campus-lost-found-safety architecture

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

## Overview

This is a campus lost-and-found and safety-reporting application, with account, staff-review, and administrator workflows. Users can report lost or found items, search listings, pursue claims, and submit safety reports; staff review operational records and admins manage users, items, categories, notifications, and system policy. The sampled search handler applies multilingual and metadata filters to published items; the admin item manager fetches item data and uses category APIs. Other feature areas are represented from the route tree; their detailed runtime wiring was not sampled.

Main entry points: [`app/api/categories/route.ts`](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/categories/route.ts) (Category API), [`lib/supabase/admin.ts`](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/lib/supabase/admin.ts) (Supabase admin client), [`app/api/search/route.ts`](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/search/route.ts) (Search API), [`app/api/admin/system-settings/route.ts`](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/admin/system-settings/route.ts) (System settings API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public user workflows"]
  node_search["Item search<br/>[page.tsx]"]
  node_search_api["Search API<br/>[route.ts]"]
  node_lost_report["Lost report<br/>[page.tsx]"]
  node_found_report["Found report<br/>[page.tsx]"]
  node_matching["Potential matches<br/>[page.tsx]"]
end

subgraph group_resolution["Claims and safety"]
  node_claims["Claim workflow<br/>[page.tsx]"]
  node_tickets["Support tickets<br/>[page.tsx]"]
  node_safety["Safety reports<br/>[page.tsx]"]
end

subgraph group_operations["Staff and admin"]
  node_staff_review["Staff review<br/>[page.tsx]"]
  node_staff_safety["Safety review<br/>[page.tsx]"]
  node_admin_items["Item management"]
  node_admin_items_api["Admin item API<br/>[route.ts]"]
  node_categories_api["Category API<br/>[route.ts]"]
  node_admin_users["User administration<br/>[page.tsx]"]
  node_admin_notifications["Notifications<br/>[page.tsx]"]
  node_settings_api["System settings API<br/>[route.ts]"]
  node_cleanup["Retention cleanup<br/>[route.ts]"]
end

subgraph group_platform["Data and services"]
  node_semantic["Semantic filters<br/>[semanticSearch.ts]"]
  node_supabase_server["Supabase server client<br/>[server.ts]"]
  node_supabase_admin["Supabase admin client<br/>[admin.ts]"]
  node_database[("Supabase data and storage")]
end

node_visitor(("Campus user"))

node_visitor -->|"searches listings"| node_search
node_visitor -->|"reports lost item"| node_lost_report
node_visitor -->|"reports found item"| node_found_report
node_visitor -->|"submits claim"| node_claims
node_visitor -->|"requests support"| node_tickets
node_visitor -->|"reports concern"| node_safety
node_search_api -->|"applies query filters"| node_semantic
node_search_api -->|"creates client"| node_supabase_server
node_search_api -->|"fetches published items"| node_database
node_admin_items -->|"loads items"| node_admin_items_api
node_admin_items -->|"loads categories"| node_categories_api
node_admin_items_api -->|"creates client"| node_supabase_admin
node_admin_items_api -->|"reads items"| node_database
node_categories_api -->|"checks session"| node_supabase_server
node_categories_api -->|"admin writes"| node_supabase_admin
node_categories_api -->|"reads and updates categories"| node_database
node_settings_api -->|"checks session"| node_supabase_server
node_settings_api -->|"creates client"| node_supabase_admin
node_settings_api -->|"reads and saves settings"| node_database
node_cleanup -->|"creates client"| node_supabase_admin
node_cleanup -->|"queries and deletes expired records"| node_database

click node_search "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/search/page.tsx"
click node_search_api "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/search/route.ts"
click node_lost_report "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/lost/report/page.tsx"
click node_found_report "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/found/report/page.tsx"
click node_matching "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/matching/%5Bid%5D/page.tsx"
click node_claims "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/claims/new/page.tsx"
click node_tickets "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/tickets/new/page.tsx"
click node_safety "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/safety/report/page.tsx"
click node_staff_review "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/staff/claims/page.tsx"
click node_staff_safety "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/staff/safety/page.tsx"
click node_admin_items "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/components/admin/AdminItemManager.tsx"
click node_admin_items_api "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/admin/items/route.ts"
click node_categories_api "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/categories/route.ts"
click node_admin_users "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/admin/users/page.tsx"
click node_admin_notifications "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/admin/notifications/page.tsx"
click node_settings_api "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/admin/system-settings/route.ts"
click node_cleanup "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/cron/cleanup-returned-items/route.ts"
click node_semantic "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/lib/semanticSearch.ts"
click node_supabase_server "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/lib/supabase/server.ts"
click node_supabase_admin "https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/lib/supabase/admin.ts"

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_search,node_search_api,node_lost_report,node_found_report,node_matching,node_visitor toneBlue
class node_claims,node_tickets,node_safety toneAmber
class node_staff_review,node_staff_safety,node_admin_items,node_admin_items_api,node_categories_api,node_admin_users,node_admin_notifications,node_settings_api,node_cleanup toneMint
class node_semantic,node_supabase_server,node_supabase_admin,node_database toneRose
```

## Components

### Public user workflows

- [Item search](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/search/page.tsx): `app/search/page.tsx`
- [Search API](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/search/route.ts): `app/api/search/route.ts`
- [Lost report](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/lost/report/page.tsx): `app/lost/report/page.tsx`
- [Found report](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/found/report/page.tsx): `app/found/report/page.tsx`
- [Potential matches](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/matching/%5Bid%5D/page.tsx): `app/matching/[id]/page.tsx`

### Claims and safety

- [Claim workflow](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/claims/new/page.tsx): `app/claims/new/page.tsx`
- [Support tickets](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/tickets/new/page.tsx): `app/tickets/new/page.tsx`
- [Safety reports](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/safety/report/page.tsx): `app/safety/report/page.tsx`

### Staff and admin

- [Staff review](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/staff/claims/page.tsx): `app/staff/claims/page.tsx`
- [Safety review](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/staff/safety/page.tsx): `app/staff/safety/page.tsx`
- [Item management](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/components/admin/AdminItemManager.tsx): `components/admin/AdminItemManager.tsx`
- [Admin item API](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/admin/items/route.ts): `app/api/admin/items/route.ts`
- [Category API](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/categories/route.ts): `app/api/categories/route.ts`
- [User administration](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/admin/users/page.tsx): `app/admin/users/page.tsx`
- [Notifications](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/admin/notifications/page.tsx): `app/admin/notifications/page.tsx`
- [System settings API](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/admin/system-settings/route.ts): `app/api/admin/system-settings/route.ts`
- [Retention cleanup](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/app/api/cron/cleanup-returned-items/route.ts): `app/api/cron/cleanup-returned-items/route.ts`

### Data and services

- [Semantic filters](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/lib/semanticSearch.ts): `lib/semanticSearch.ts`
- [Supabase server client](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/lib/supabase/server.ts): `lib/supabase/server.ts`
- [Supabase admin client](https://github.com/soulrx-ai/campus-lost-found-safety/blob/main/lib/supabase/admin.ts): `lib/supabase/admin.ts`
- **Supabase data and storage**

### Other components

- **Campus user**

## Connections

- Campus user → Item search: searches listings
- Campus user → Lost report: reports lost item
- Campus user → Found report: reports found item
- Campus user → Claim workflow: submits claim
- Campus user → Support tickets: requests support
- Campus user → Safety reports: reports concern
- Search API → Semantic filters: applies query filters
- Search API → Supabase server client: creates client
- Search API → Supabase data and storage: fetches published items
- Item management → Admin item API: loads items
- Item management → Category API: loads categories
- Admin item API → Supabase admin client: creates client
- Admin item API → Supabase data and storage: reads items
- Category API → Supabase server client: checks session
- Category API → Supabase admin client: admin writes
- Category API → Supabase data and storage: reads and updates categories
- System settings API → Supabase server client: checks session
- System settings API → Supabase admin client: creates client
- System settings API → Supabase data and storage: reads and saves settings
- Retention cleanup → Supabase admin client: creates client
- Retention cleanup → Supabase data and storage: queries and deletes expired records
