# lurevia/lurevia-admin architecture

> Architecture diagram of the GitHub repository lurevia/lurevia-admin, 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/lurevia/lurevia-admin
- Repository: https://github.com/lurevia/lurevia-admin

## Overview

Lurevia Admin is a React Admin back office for the Lurevia shop, using the shop’s shared API. An administrator signs in, then uses the dashboard and resource pages to inspect or change catalog, order, customer, moderation, and financial data; configuration and profile pages support administration. The app registers these routes and supplies shared data and authentication providers. README capabilities are represented even where their source was not sampled; edges for those unsampled interactions are omitted. Theme customization is an additional internal presentation layer.

Main entry points: [`src/App.tsx`](https://github.com/lurevia/lurevia-admin/blob/main/src/App.tsx) (Admin routes), [`src/dataProvider.ts`](https://github.com/lurevia/lurevia-admin/blob/main/src/dataProvider.ts) (Data provider), [`src/httpClient.ts`](https://github.com/lurevia/lurevia-admin/blob/main/src/httpClient.ts) (HTTP client), [`src/adminActions.ts`](https://github.com/lurevia/lurevia-admin/blob/main/src/adminActions.ts) (Admin actions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Admin app"]
  node_app["Admin routes<br/>[App.tsx]"]
  node_login["Admin login<br/>[LoginPage.tsx]"]
  node_layout["Admin shell<br/>[Layout.tsx]"]
  node_dashboard["Dashboard<br/>[Dashboard.tsx]"]
  node_settings["Store settings<br/>[SettingsPage.tsx]"]
  node_profile["Admin profile<br/>[ProfilePage.tsx]"]
end

subgraph group_operations["Shop operations"]
  node_catalog["Products and categories"]
  node_orders["Order management"]
  node_customers["User management"]
  node_admins["Admin creation<br/>[AdminCreate.tsx]"]
end

subgraph group_oversight["Review and oversight"]
  node_reviews["Review moderation"]
  node_deletion["Deletion requests"]
  node_profilechanges["Profile changes"]
  node_verifications["Verifications"]
  node_messages["Admin messages"]
  node_notifications["Notifications"]
end

subgraph group_finance["Financial tools"]
  node_finance["Financial dashboard"]
  node_financialresources["Finance resources"]
end

subgraph group_foundation["Shared services"]
  node_theme["Theme customization"]
  node_provider["Data provider<br/>[dataProvider.ts]"]
  node_actions["Admin actions<br/>[adminActions.ts]"]
  node_authprovider["Auth provider<br/>[authProvider.ts]"]
  node_http["HTTP client<br/>[httpClient.ts]"]
end

node_admin(("Administrator"))
node_api[("Lurevia API")]

node_admin -->|"uses"| node_app
node_app -->|"registers"| node_login
node_app -->|"registers"| node_layout
node_app -->|"registers"| node_dashboard
node_app -->|"registers"| node_catalog
node_app -->|"registers"| node_orders
node_app -->|"registers"| node_customers
node_app -->|"routes"| node_admins
node_app -->|"registers"| node_reviews
node_app -->|"registers"| node_deletion
node_app -->|"registers"| node_profilechanges
node_app -->|"registers"| node_verifications
node_app -->|"routes"| node_messages
node_app -->|"shell includes"| node_notifications
node_app -->|"routes"| node_finance
node_app -->|"registers"| node_financialresources
node_app -->|"routes"| node_settings
node_app -->|"routes"| node_profile
node_app -->|"configures"| node_provider
node_app -->|"configures"| node_authprovider
node_app -->|"uses"| node_theme
node_login -->|"authenticates via"| node_authprovider
node_dashboard -->|"loads data via"| node_provider
node_catalog -->|"loads data via"| node_provider
node_orders -->|"loads data via"| node_provider
node_customers -->|"loads data via"| node_provider
node_financialresources -->|"uses"| node_provider
node_reviews -->|"moderates via"| node_actions
node_settings -->|"loads and saves via"| node_actions
node_provider -->|"sends requests via"| node_http
node_actions -->|"sends requests via"| node_http
node_authprovider -->|"sends requests via"| node_http
node_http -->|"requests"| node_api
node_notifications -->|"reads notifications"| node_api
node_theme -->|"configures appearance"| node_admin

click node_app "https://github.com/lurevia/lurevia-admin/blob/main/src/App.tsx"
click node_login "https://github.com/lurevia/lurevia-admin/blob/main/src/auth/LoginPage.tsx"
click node_layout "https://github.com/lurevia/lurevia-admin/blob/main/src/layout/Layout.tsx"
click node_dashboard "https://github.com/lurevia/lurevia-admin/blob/main/src/dashboard/Dashboard.tsx"
click node_catalog "https://github.com/lurevia/lurevia-admin/tree/main/src/resources/products"
click node_orders "https://github.com/lurevia/lurevia-admin/tree/main/src/resources/orders"
click node_customers "https://github.com/lurevia/lurevia-admin/tree/main/src/resources/users"
click node_admins "https://github.com/lurevia/lurevia-admin/blob/main/src/resources/admins/AdminCreate.tsx"
click node_reviews "https://github.com/lurevia/lurevia-admin/tree/main/src/resources/reviews"
click node_deletion "https://github.com/lurevia/lurevia-admin/tree/main/src/resources/deletionRequests"
click node_profilechanges "https://github.com/lurevia/lurevia-admin/tree/main/src/resources/profileChanges"
click node_verifications "https://github.com/lurevia/lurevia-admin/tree/main/src/resources/verifications"
click node_messages "https://github.com/lurevia/lurevia-admin/blob/main/src/resources/messages/AdminMessagePage.tsx"
click node_notifications "https://github.com/lurevia/lurevia-admin/blob/main/src/layout/NotificationBell.tsx"
click node_finance "https://github.com/lurevia/lurevia-admin/blob/main/src/resources/finance/FinancialDashboard.tsx"
click node_financialresources "https://github.com/lurevia/lurevia-admin/blob/main/src/resources/finance/FinanceResources.tsx"
click node_settings "https://github.com/lurevia/lurevia-admin/blob/main/src/setting/SettingsPage.tsx"
click node_profile "https://github.com/lurevia/lurevia-admin/blob/main/src/setting/ProfilePage.tsx"
click node_theme "https://github.com/lurevia/lurevia-admin/blob/main/src/theme/ThemeCustomizerContext.tsx"
click node_provider "https://github.com/lurevia/lurevia-admin/blob/main/src/dataProvider.ts"
click node_actions "https://github.com/lurevia/lurevia-admin/blob/main/src/adminActions.ts"
click node_authprovider "https://github.com/lurevia/lurevia-admin/blob/main/src/authProvider.ts"
click node_http "https://github.com/lurevia/lurevia-admin/blob/main/src/httpClient.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_app,node_login,node_layout,node_dashboard,node_settings,node_profile toneBlue
class node_catalog,node_orders,node_customers,node_admins,node_api toneAmber
class node_reviews,node_deletion,node_profilechanges,node_verifications,node_messages,node_notifications toneMint
class node_finance,node_financialresources toneRose
class node_theme,node_provider,node_actions,node_authprovider,node_http,node_admin toneIndigo
```

## Components

### Admin app

- [Admin routes](https://github.com/lurevia/lurevia-admin/blob/main/src/App.tsx): `src/App.tsx`
- [Admin login](https://github.com/lurevia/lurevia-admin/blob/main/src/auth/LoginPage.tsx): `src/auth/LoginPage.tsx`
- [Admin shell](https://github.com/lurevia/lurevia-admin/blob/main/src/layout/Layout.tsx): `src/layout/Layout.tsx`
- [Dashboard](https://github.com/lurevia/lurevia-admin/blob/main/src/dashboard/Dashboard.tsx): `src/dashboard/Dashboard.tsx`
- [Store settings](https://github.com/lurevia/lurevia-admin/blob/main/src/setting/SettingsPage.tsx): `src/setting/SettingsPage.tsx`
- [Admin profile](https://github.com/lurevia/lurevia-admin/blob/main/src/setting/ProfilePage.tsx): `src/setting/ProfilePage.tsx`

### Shop operations

- [Products and categories](https://github.com/lurevia/lurevia-admin/tree/main/src/resources/products): `src/resources/products`
- [Order management](https://github.com/lurevia/lurevia-admin/tree/main/src/resources/orders): `src/resources/orders`
- [User management](https://github.com/lurevia/lurevia-admin/tree/main/src/resources/users): `src/resources/users`
- [Admin creation](https://github.com/lurevia/lurevia-admin/blob/main/src/resources/admins/AdminCreate.tsx): `src/resources/admins/AdminCreate.tsx`

### Review and oversight

- [Review moderation](https://github.com/lurevia/lurevia-admin/tree/main/src/resources/reviews): `src/resources/reviews`
- [Deletion requests](https://github.com/lurevia/lurevia-admin/tree/main/src/resources/deletionRequests): `src/resources/deletionRequests`
- [Profile changes](https://github.com/lurevia/lurevia-admin/tree/main/src/resources/profileChanges): `src/resources/profileChanges`
- [Verifications](https://github.com/lurevia/lurevia-admin/tree/main/src/resources/verifications): `src/resources/verifications`
- [Admin messages](https://github.com/lurevia/lurevia-admin/blob/main/src/resources/messages/AdminMessagePage.tsx): `src/resources/messages/AdminMessagePage.tsx`
- [Notifications](https://github.com/lurevia/lurevia-admin/blob/main/src/layout/NotificationBell.tsx): `src/layout/NotificationBell.tsx`

### Financial tools

- [Financial dashboard](https://github.com/lurevia/lurevia-admin/blob/main/src/resources/finance/FinancialDashboard.tsx): `src/resources/finance/FinancialDashboard.tsx`
- [Finance resources](https://github.com/lurevia/lurevia-admin/blob/main/src/resources/finance/FinanceResources.tsx): `src/resources/finance/FinanceResources.tsx`

### Shared services

- [Theme customization](https://github.com/lurevia/lurevia-admin/blob/main/src/theme/ThemeCustomizerContext.tsx): `src/theme/ThemeCustomizerContext.tsx`
- [Data provider](https://github.com/lurevia/lurevia-admin/blob/main/src/dataProvider.ts): `src/dataProvider.ts`
- [Admin actions](https://github.com/lurevia/lurevia-admin/blob/main/src/adminActions.ts): `src/adminActions.ts`
- [Auth provider](https://github.com/lurevia/lurevia-admin/blob/main/src/authProvider.ts): `src/authProvider.ts`
- [HTTP client](https://github.com/lurevia/lurevia-admin/blob/main/src/httpClient.ts): `src/httpClient.ts`

### Other components

- **Administrator**
- **Lurevia API**

## Connections

- Administrator → Admin routes: uses
- Admin routes → Admin login: registers
- Admin routes → Admin shell: registers
- Admin routes → Dashboard: registers
- Admin routes → Products and categories: registers
- Admin routes → Order management: registers
- Admin routes → User management: registers
- Admin routes → Admin creation: routes
- Admin routes → Review moderation: registers
- Admin routes → Deletion requests: registers
- Admin routes → Profile changes: registers
- Admin routes → Verifications: registers
- Admin routes → Admin messages: routes
- Admin routes → Notifications: shell includes
- Admin routes → Financial dashboard: routes
- Admin routes → Finance resources: registers
- Admin routes → Store settings: routes
- Admin routes → Admin profile: routes
- Admin routes → Data provider: configures
- Admin routes → Auth provider: configures
- Admin routes → Theme customization: uses
- Admin login → Auth provider: authenticates via
- Dashboard → Data provider: loads data via
- Products and categories → Data provider: loads data via
- Order management → Data provider: loads data via
- User management → Data provider: loads data via
- Finance resources → Data provider: uses
- Review moderation → Admin actions: moderates via
- Store settings → Admin actions: loads and saves via
- Data provider → HTTP client: sends requests via
- Admin actions → HTTP client: sends requests via
- Auth provider → HTTP client: sends requests via
- HTTP client → Lurevia API: requests
- Notifications → Lurevia API: reads notifications
- Theme customization → Administrator: configures appearance
