# enesodunkesen/ariza_raporlama_sistemi architecture

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

- Interactive diagram: https://gitdiagram.com/enesodunkesen/ariza_raporlama_sistemi
- Repository: https://github.com/enesodunkesen/ariza_raporlama_sistemi

## Overview

Arıza Bildirim ve Yönetim Sistemi, mobil raporlama uygulaması, web yönetim paneli ve bunları besleyen .NET API’den oluşur. Temel akışta kullanıcı giriş yapar, arıza bildirir ve durumunu izler; yetkili personel raporları işler, bakım talepleri oluşturur ve yönetim istatistiklerini inceler. Web paneli ayrıca kullanıcı yönetimi sunar. API iş katmanı rapor, talep ve kullanıcı işlemlerini yürütür; kalıcı veriler repository/EF Core üzerinden veritabanına gider. README mobil fotoğraf yükleme desteğini belirtir; gösterilen kaynak kesitleri dosya aktarım ayrıntılarını doğrulamıyor.

Main entry points: [`mobile/services/ReportService.ts`](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/services/ReportService.ts) (Mobil API istemcisi), [`frontend/src/services/api.ts`](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/services/api.ts) (Web API istemcisi), [`frontend/src/App.tsx`](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/App.tsx) (Web uygulama yönlendirme), [`src/Ariza.Api/Controllers/AuthController.cs`](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Api/Controllers/AuthController.cs) (Kimlik API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web paneli"]
  node_webapp["Web uygulama yönlendirme<br/>[App.tsx]"]
  node_weblogin["Web giriş ekranı<br/>[LoginPage.tsx]"]
  node_dashboard["İstatistik panosu<br/>[DashboardPage.tsx]"]
  node_webreports["Rapor yönetimi<br/>[ReportsPage.tsx]"]
  node_webrequests["Bakım talepleri<br/>[RequestsPage.tsx]"]
  node_webusers["Kullanıcı yönetimi<br/>[UsersPage.tsx]"]
  node_webapi["Web API istemcisi<br/>[api.ts]"]
end

subgraph group_mobile["Mobil uygulama"]
  node_mobileauth["Mobil giriş<br/>[sign-in.tsx]"]
  node_mobilereport["Rapor oluşturma<br/>[new-report.tsx]"]
  node_mobilestatus["Rapor durum takibi"]
  node_mobileadmin["Mobil yönetim ekranları"]
  node_mobileservice["Mobil API istemcisi<br/>[ReportService.ts]"]
end

subgraph group_api["REST API"]
  node_authapi["Kimlik API<br/>[AuthController.cs]"]
  node_reportsapi["Rapor API"]
  node_adminapi["Yönetim API<br/>[AdminController.cs]"]
end

subgraph group_core["İş ve veri katmanı"]
  node_authservice["Kimlik hizmeti<br/>[AuthService.cs]"]
  node_tokenservice["JWT token üretimi<br/>[JwtTokenService.cs]"]
  node_reportservice["Rapor hizmeti<br/>[ReportService.cs]"]
  node_adminservice["Yönetim hizmeti<br/>[AdminService.cs]"]
  node_uow["İş birimi<br/>[UnitOfWork.cs]"]
  node_repository["Genel repository"]
  node_dbcontext["EF veri bağlamı<br/>[AppDbContext.cs]"]
  node_database[("Uygulama veritabanı")]
end

node_staff(("Yönetici / personel"))
node_reporter(("Arıza bildiren"))

node_staff -->|"uses"| node_webapp
node_webapp -->|"renders"| node_weblogin
node_webapp -->|"routes to"| node_dashboard
node_webapp -->|"routes to"| node_webreports
node_webapp -->|"routes to"| node_webrequests
node_webapp -->|"routes to"| node_webusers
node_weblogin -->|"authenticates via"| node_webapi
node_dashboard -->|"loads statistics"| node_webapi
node_webreports -->|"manages reports"| node_webapi
node_webrequests -->|"manages requests"| node_webapi
node_webusers -->|"manages users"| node_webapi
node_reporter -->|"uses"| node_mobileauth
node_mobileauth -->|"signs in via"| node_mobileservice
node_reporter -->|"submits"| node_mobilereport
node_mobilereport -->|"sends report"| node_mobileservice
node_reporter -->|"tracks reports"| node_mobilestatus
node_mobilestatus -->|"requests status"| node_mobileservice
node_mobileadmin -->|"manages via"| node_mobileservice
node_webapi -->|"calls"| node_authapi
node_webapi -->|"calls"| node_adminapi
node_mobileservice -->|"calls"| node_authapi
node_mobileservice -->|"calls"| node_reportsapi
node_mobileservice -->|"calls"| node_adminapi
node_authapi -->|"dispatches"| node_authservice
node_reportsapi -->|"dispatches"| node_reportservice
node_adminapi -->|"dispatches"| node_adminservice
node_authservice -->|"creates token"| node_tokenservice
node_reportservice -->|"reads / writes"| node_uow
node_adminservice -->|"reads / writes"| node_uow
node_uow -->|"provides repositories"| node_repository
node_repository -->|"queries / changes"| node_dbcontext
node_dbcontext -->|"persists data"| node_database

click node_webapp "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/App.tsx"
click node_weblogin "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/LoginPage.tsx"
click node_dashboard "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Dashboard/DashboardPage.tsx"
click node_webreports "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Reports/ReportsPage.tsx"
click node_webrequests "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Requests/RequestsPage.tsx"
click node_webusers "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Users/UsersPage.tsx"
click node_webapi "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/services/api.ts"
click node_mobileauth "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/app/(auth)/sign-in.tsx"
click node_mobilereport "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/app/new-report.tsx"
click node_mobilestatus "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/components/report-status-screen.tsx"
click node_mobileadmin "https://github.com/enesodunkesen/ariza_raporlama_sistemi/tree/main/mobile/app/admin"
click node_mobileservice "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/services/ReportService.ts"
click node_authapi "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Api/Controllers/AuthController.cs"
click node_reportsapi "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Api/Controllers/ReportsController.cs"
click node_adminapi "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Api/Controllers/AdminController.cs"
click node_authservice "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/AuthService.cs"
click node_tokenservice "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/JwtTokenService.cs"
click node_reportservice "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/ReportService.cs"
click node_adminservice "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/AdminService.cs"
click node_uow "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Infrastructure/Repositories/UnitOfWork.cs"
click node_repository "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Infrastructure/Repositories/GenericRepository.cs"
click node_dbcontext "https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Infrastructure/Data/AppDbContext.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_webapp,node_weblogin,node_dashboard,node_webreports,node_webrequests,node_webusers,node_webapi toneBlue
class node_mobileauth,node_mobilereport,node_mobilestatus,node_mobileadmin,node_mobileservice toneAmber
class node_authapi,node_reportsapi,node_adminapi toneMint
class node_authservice,node_tokenservice,node_reportservice,node_adminservice,node_uow,node_repository,node_dbcontext,node_database toneRose
class node_staff,node_reporter toneIndigo
```

## Components

### Web paneli

- [Web uygulama yönlendirme](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Web giriş ekranı](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/LoginPage.tsx): `frontend/src/components/LoginPage.tsx`
- [İstatistik panosu](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Dashboard/DashboardPage.tsx): `frontend/src/components/Dashboard/DashboardPage.tsx`
- [Rapor yönetimi](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Reports/ReportsPage.tsx): `frontend/src/components/Reports/ReportsPage.tsx`
- [Bakım talepleri](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Requests/RequestsPage.tsx): `frontend/src/components/Requests/RequestsPage.tsx`
- [Kullanıcı yönetimi](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/components/Users/UsersPage.tsx): `frontend/src/components/Users/UsersPage.tsx`
- [Web API istemcisi](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/frontend/src/services/api.ts): `frontend/src/services/api.ts`

### Mobil uygulama

- [Mobil giriş](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/app/(auth)/sign-in.tsx): `mobile/app/(auth)/sign-in.tsx`
- [Rapor oluşturma](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/app/new-report.tsx): `mobile/app/new-report.tsx`
- [Rapor durum takibi](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/components/report-status-screen.tsx): `mobile/components/report-status-screen.tsx`
- [Mobil yönetim ekranları](https://github.com/enesodunkesen/ariza_raporlama_sistemi/tree/main/mobile/app/admin): `mobile/app/admin`
- [Mobil API istemcisi](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/mobile/services/ReportService.ts): `mobile/services/ReportService.ts`

### REST API

- [Kimlik API](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Api/Controllers/AuthController.cs): `src/Ariza.Api/Controllers/AuthController.cs`
- [Rapor API](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Api/Controllers/ReportsController.cs): `src/Ariza.Api/Controllers/ReportsController.cs`
- [Yönetim API](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Api/Controllers/AdminController.cs): `src/Ariza.Api/Controllers/AdminController.cs`

### İş ve veri katmanı

- [Kimlik hizmeti](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/AuthService.cs): `src/Ariza.Service/Implementations/AuthService.cs`
- [JWT token üretimi](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/JwtTokenService.cs): `src/Ariza.Service/Implementations/JwtTokenService.cs`
- [Rapor hizmeti](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/ReportService.cs): `src/Ariza.Service/Implementations/ReportService.cs`
- [Yönetim hizmeti](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Service/Implementations/AdminService.cs): `src/Ariza.Service/Implementations/AdminService.cs`
- [İş birimi](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Infrastructure/Repositories/UnitOfWork.cs): `src/Ariza.Infrastructure/Repositories/UnitOfWork.cs`
- [Genel repository](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Infrastructure/Repositories/GenericRepository.cs): `src/Ariza.Infrastructure/Repositories/GenericRepository.cs`
- [EF veri bağlamı](https://github.com/enesodunkesen/ariza_raporlama_sistemi/blob/main/src/Ariza.Infrastructure/Data/AppDbContext.cs): `src/Ariza.Infrastructure/Data/AppDbContext.cs`
- **Uygulama veritabanı**

### Other components

- **Yönetici / personel**
- **Arıza bildiren**

## Connections

- Yönetici / personel → Web uygulama yönlendirme: uses
- Web uygulama yönlendirme → Web giriş ekranı: renders
- Web uygulama yönlendirme → İstatistik panosu: routes to
- Web uygulama yönlendirme → Rapor yönetimi: routes to
- Web uygulama yönlendirme → Bakım talepleri: routes to
- Web uygulama yönlendirme → Kullanıcı yönetimi: routes to
- Web giriş ekranı → Web API istemcisi: authenticates via
- İstatistik panosu → Web API istemcisi: loads statistics
- Rapor yönetimi → Web API istemcisi: manages reports
- Bakım talepleri → Web API istemcisi: manages requests
- Kullanıcı yönetimi → Web API istemcisi: manages users
- Arıza bildiren → Mobil giriş: uses
- Mobil giriş → Mobil API istemcisi: signs in via
- Arıza bildiren → Rapor oluşturma: submits
- Rapor oluşturma → Mobil API istemcisi: sends report
- Arıza bildiren → Rapor durum takibi: tracks reports
- Rapor durum takibi → Mobil API istemcisi: requests status
- Mobil yönetim ekranları → Mobil API istemcisi: manages via
- Web API istemcisi → Kimlik API: calls
- Web API istemcisi → Yönetim API: calls
- Mobil API istemcisi → Kimlik API: calls
- Mobil API istemcisi → Rapor API: calls
- Mobil API istemcisi → Yönetim API: calls
- Kimlik API → Kimlik hizmeti: dispatches
- Rapor API → Rapor hizmeti: dispatches
- Yönetim API → Yönetim hizmeti: dispatches
- Kimlik hizmeti → JWT token üretimi: creates token
- Rapor hizmeti → İş birimi: reads / writes
- Yönetim hizmeti → İş birimi: reads / writes
- İş birimi → Genel repository: provides repositories
- Genel repository → EF veri bağlamı: queries / changes
- EF veri bağlamı → Uygulama veritabanı: persists data
