# maza29/practicenorbit_servicecenter architecture

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

- Interactive diagram: https://gitdiagram.com/maza29/practicenorbit_servicecenter
- Repository: https://github.com/maza29/practicenorbit_servicecenter

## Overview

Service Center is a repair-service application with a React client and an ASP.NET backend. The visible client workflow is browsing service categories and maintaining a client profile; the backend supports device and repair-request management, with web MVC routes alongside API endpoints. The sampled repair-request code shows persistence through EF Core. Other catalog, payment, employee, and status-history capabilities are represented from the repository tree; their detailed wiring was not sampled.

Main entry points: [`service-center-frontend/src/App.tsx`](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/App.tsx) (React router), [`ServiceCenter_backend/ServiceCenter/Data/Repositories/RepairRequestRepository.cs`](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Repositories/RepairRequestRepository.cs) (Request repository), [`service-center-frontend/src/api/index.ts`](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/api/index.ts) (API client), [`ServiceCenter_backend/ServiceCenter/Data/Repositories`](https://github.com/maza29/practicenorbit_servicecenter/tree/main/ServiceCenter_backend/ServiceCenter/Data/Repositories) (Other repositories)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client application"]
  node_app["React router<br/>[App.tsx]"]
  node_home["Home page<br/>[HomePage.tsx]"]
  node_categories["Service categories"]
  node_profile["Client profile"]
  node_registration["Registration page<br/>[RegisterPage.tsx]"]
  node_requestmodal["Request modal"]
  node_frontendapi["API client<br/>[index.ts]"]
end

subgraph group_entry["Web and API entry points"]
  node_webrepair["Web repair requests"]
  node_webflow["Web request form"]
  node_requestapi["Request API"]
  node_deviceapi["Device API"]
  node_catalogapi["Catalog APIs"]
  node_clientweb["Client pages"]
end

subgraph group_domain["Repair operations"]
  node_devices["Device records<br/>[Device.cs]"]
  node_requests["Repair requests<br/>[RepairRequest.cs]"]
  node_services["Repair services<br/>[RepairService.cs]"]
  node_payments["Payments<br/>[Payment.cs]"]
  node_statushistory["Status history"]
end

subgraph group_data["Persistence"]
  node_requestrepo["Request repository"]
  node_repositories["Other repositories"]
  node_dbcontext["EF Core context<br/>[AppDBContent.cs]"]
  node_database[("Application database<br/>[AppDBContent.cs]")]
end

node_visitor(("Client"))

node_visitor -->|"uses"| node_app
node_app -->|"routes"| node_home
node_app -->|"routes"| node_categories
node_app -->|"routes"| node_profile
node_profile -->|"requests data"| node_frontendapi
node_frontendapi -->|"fetches requests"| node_requestapi
node_frontendapi -->|"fetches devices"| node_deviceapi
node_webrepair -->|"reads and writes"| node_requestrepo
node_webflow -->|"creates requests"| node_requestrepo
node_requestapi -->|"reads and writes"| node_requestrepo
node_deviceapi -->|"reads and writes"| node_repositories
node_catalogapi -.->|"catalog operations"| node_repositories
node_clientweb -->|"reads clients"| node_repositories
node_requestrepo -->|"queries and saves"| node_dbcontext
node_dbcontext -->|"persists"| node_database

click node_app "https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/App.tsx"
click node_home "https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/HomePage.tsx"
click node_categories "https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/AllCategoriesPage.tsx"
click node_profile "https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/ClientProfilePage.tsx"
click node_registration "https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/RegisterPage.tsx"
click node_requestmodal "https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/components/CreateRequestModal.tsx"
click node_frontendapi "https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/api/index.ts"
click node_webrepair "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Web/RepairRequestsController.cs"
click node_webflow "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Web/RepairController.cs"
click node_requestapi "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Api/RepairRequestsController.cs"
click node_deviceapi "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Api/DevicesController.cs"
click node_catalogapi "https://github.com/maza29/practicenorbit_servicecenter/tree/main/ServiceCenter_backend/ServiceCenter/Controllers/Api"
click node_clientweb "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Web/ClientsController.cs"
click node_devices "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/Device.cs"
click node_requests "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/RepairRequest.cs"
click node_services "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/RepairService.cs"
click node_payments "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/Payment.cs"
click node_statushistory "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/RepairStatusHistory.cs"
click node_requestrepo "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Repositories/RepairRequestRepository.cs"
click node_repositories "https://github.com/maza29/practicenorbit_servicecenter/tree/main/ServiceCenter_backend/ServiceCenter/Data/Repositories"
click node_dbcontext "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/AppDBContent.cs"
click node_database "https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/AppDBContent.cs"

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_home,node_categories,node_profile,node_registration,node_requestmodal,node_frontendapi,node_visitor toneBlue
class node_webrepair,node_webflow,node_requestapi,node_deviceapi,node_catalogapi,node_clientweb toneAmber
class node_devices,node_requests,node_services,node_payments,node_statushistory toneMint
class node_requestrepo,node_repositories,node_dbcontext,node_database toneRose
```

## Components

### Client application

- [React router](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/App.tsx): `service-center-frontend/src/App.tsx`
- [Home page](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/HomePage.tsx): `service-center-frontend/src/pages/HomePage.tsx`
- [Service categories](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/AllCategoriesPage.tsx): `service-center-frontend/src/pages/AllCategoriesPage.tsx`
- [Client profile](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/ClientProfilePage.tsx): `service-center-frontend/src/pages/ClientProfilePage.tsx`
- [Registration page](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/pages/RegisterPage.tsx): `service-center-frontend/src/pages/RegisterPage.tsx`
- [Request modal](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/components/CreateRequestModal.tsx): `service-center-frontend/src/components/CreateRequestModal.tsx`
- [API client](https://github.com/maza29/practicenorbit_servicecenter/blob/main/service-center-frontend/src/api/index.ts): `service-center-frontend/src/api/index.ts`

### Web and API entry points

- [Web repair requests](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Web/RepairRequestsController.cs): `ServiceCenter_backend/ServiceCenter/Controllers/Web/RepairRequestsController.cs`
- [Web request form](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Web/RepairController.cs): `ServiceCenter_backend/ServiceCenter/Controllers/Web/RepairController.cs`
- [Request API](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Api/RepairRequestsController.cs): `ServiceCenter_backend/ServiceCenter/Controllers/Api/RepairRequestsController.cs`
- [Device API](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Api/DevicesController.cs): `ServiceCenter_backend/ServiceCenter/Controllers/Api/DevicesController.cs`
- [Catalog APIs](https://github.com/maza29/practicenorbit_servicecenter/tree/main/ServiceCenter_backend/ServiceCenter/Controllers/Api): `ServiceCenter_backend/ServiceCenter/Controllers/Api`
- [Client pages](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Controllers/Web/ClientsController.cs): `ServiceCenter_backend/ServiceCenter/Controllers/Web/ClientsController.cs`

### Repair operations

- [Device records](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/Device.cs): `ServiceCenter_backend/ServiceCenter/Data/Models/Device.cs`
- [Repair requests](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/RepairRequest.cs): `ServiceCenter_backend/ServiceCenter/Data/Models/RepairRequest.cs`
- [Repair services](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/RepairService.cs): `ServiceCenter_backend/ServiceCenter/Data/Models/RepairService.cs`
- [Payments](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/Payment.cs): `ServiceCenter_backend/ServiceCenter/Data/Models/Payment.cs`
- [Status history](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Models/RepairStatusHistory.cs): `ServiceCenter_backend/ServiceCenter/Data/Models/RepairStatusHistory.cs`

### Persistence

- [Request repository](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/Repositories/RepairRequestRepository.cs): `ServiceCenter_backend/ServiceCenter/Data/Repositories/RepairRequestRepository.cs`
- [Other repositories](https://github.com/maza29/practicenorbit_servicecenter/tree/main/ServiceCenter_backend/ServiceCenter/Data/Repositories): `ServiceCenter_backend/ServiceCenter/Data/Repositories`
- [EF Core context](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/AppDBContent.cs): `ServiceCenter_backend/ServiceCenter/Data/AppDBContent.cs`
- [Application database](https://github.com/maza29/practicenorbit_servicecenter/blob/main/ServiceCenter_backend/ServiceCenter/Data/AppDBContent.cs): `ServiceCenter_backend/ServiceCenter/Data/AppDBContent.cs`

### Other components

- **Client**

## Connections

- Client → React router: uses
- React router → Home page: routes
- React router → Service categories: routes
- React router → Client profile: routes
- Client profile → API client: requests data
- API client → Request API: fetches requests
- API client → Device API: fetches devices
- Web repair requests → Request repository: reads and writes
- Web request form → Request repository: creates requests
- Request API → Request repository: reads and writes
- Device API → Other repositories: reads and writes
- Catalog APIs → Other repositories: catalog operations
- Client pages → Other repositories: reads clients
- Request repository → EF Core context: queries and saves
- EF Core context → Application database: persists
