# batuhangokkaya/myacademy_identitymailproject architecture

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

- Interactive diagram: https://gitdiagram.com/batuhangokkaya/myacademy_identitymailproject
- Repository: https://github.com/batuhangokkaya/myacademy_identitymailproject

## Overview

B-Mail is an ASP.NET Core MVC messaging application. Users authenticate, compose or save messages, and manage inboxes, drafts, sent mail, trash, importance and categories; administrators manage accounts and roles, while managers/admins review reports and statistics. The graph emphasizes controller-owned interactions with persistence and Identity. The README documents several capabilities whose specific view/client wiring is not shown, so those are represented at subsystem level; edges are limited to explicit README statements or source-index/excerpt evidence.

Main entry points: [`IdentityMail.Web/Context/AppDbContext.cs`](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Context/AppDbContext.cs) (Application database), [`IdentityMail.Web/Entities/AppUser.cs`](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Entities/AppUser.cs) (Identity users and roles), [`IdentityMail.Web/Program.cs`](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Program.cs) (MVC application), [`IdentityMail.Web/Controllers/MessageController.cs`](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/MessageController.cs) (Mailboxes and compose)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_app["MVC application<br/>[Program.cs]"]
  node_db[("Application database<br/>[AppDbContext.cs]")]
end

subgraph group_accounts["Identity and profiles"]
  node_auth["Sign-in and registration<br/>[AuthController.cs]"]
  node_profile["Profile and settings"]
  node_identity[("Identity users and roles<br/>[AppUser.cs]")]
end

subgraph group_messaging["Messaging"]
  node_mail["Mailboxes and compose"]
  node_categories["Categories"]
  node_notifications["Notifications"]
end

subgraph group_operations["Administration"]
  node_reports["Message reports"]
  node_statistics["Usage statistics"]
  node_adminusers["User administration"]
  node_adminroles["Role administration"]
end

node_users(("Mail users"))
node_smtp["SMTP mail service"]

node_users -->|"use web app"| node_app
node_app -->|"routes requests"| node_auth
node_app -->|"configures SQL"| node_db
node_app -->|"configures Identity"| node_identity
node_auth -->|"creates accounts"| node_identity
node_auth -->|"sends reset mail"| node_smtp
node_profile -->|"updates account"| node_identity
node_mail -->|"resolves users"| node_identity
node_mail -->|"reads and writes"| node_db
node_categories -->|"reads and writes"| node_db
node_notifications -->|"reads and writes"| node_db
node_reports -->|"reviews reports"| node_db
node_statistics -->|"queries metrics"| node_db
node_adminusers -->|"manages accounts"| node_identity
node_adminroles -->|"manages roles"| node_identity
node_mail -->|"creates alerts"| node_notifications
node_users -->|"report messages"| node_reports

click node_app "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Program.cs"
click node_auth "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AuthController.cs"
click node_profile "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/ProfileController.cs"
click node_identity "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Entities/AppUser.cs"
click node_mail "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/MessageController.cs"
click node_categories "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/CategoryController.cs"
click node_notifications "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/NotificationController.cs"
click node_reports "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AdminReportController.cs"
click node_statistics "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/StatisticsController.cs"
click node_adminusers "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AdminUserController.cs"
click node_adminroles "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AdminRoleController.cs"
click node_db "https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Context/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_app,node_db,node_users toneBlue
class node_auth,node_profile,node_identity toneAmber
class node_mail,node_categories,node_notifications toneMint
class node_reports,node_statistics,node_adminusers,node_adminroles toneRose
class node_smtp toneIndigo
```

## Components

### Web entry

- [MVC application](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Program.cs): `IdentityMail.Web/Program.cs`
- [Application database](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Context/AppDbContext.cs): `IdentityMail.Web/Context/AppDbContext.cs`

### Identity and profiles

- [Sign-in and registration](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AuthController.cs): `IdentityMail.Web/Controllers/AuthController.cs`
- [Profile and settings](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/ProfileController.cs): `IdentityMail.Web/Controllers/ProfileController.cs`
- [Identity users and roles](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Entities/AppUser.cs): `IdentityMail.Web/Entities/AppUser.cs`

### Messaging

- [Mailboxes and compose](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/MessageController.cs): `IdentityMail.Web/Controllers/MessageController.cs`
- [Categories](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/CategoryController.cs): `IdentityMail.Web/Controllers/CategoryController.cs`
- [Notifications](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/NotificationController.cs): `IdentityMail.Web/Controllers/NotificationController.cs`

### Administration

- [Message reports](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AdminReportController.cs): `IdentityMail.Web/Controllers/AdminReportController.cs`
- [Usage statistics](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/StatisticsController.cs): `IdentityMail.Web/Controllers/StatisticsController.cs`
- [User administration](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AdminUserController.cs): `IdentityMail.Web/Controllers/AdminUserController.cs`
- [Role administration](https://github.com/batuhangokkaya/myacademy_identitymailproject/blob/main/IdentityMail.Web/Controllers/AdminRoleController.cs): `IdentityMail.Web/Controllers/AdminRoleController.cs`

### Other components

- **Mail users**
- **SMTP mail service**

## Connections

- Mail users → MVC application: use web app
- MVC application → Sign-in and registration: routes requests (evidence: `IdentityMail.Web/Program.cs`)
- MVC application → Application database: configures SQL (evidence: `IdentityMail.Web/Program.cs`)
- MVC application → Identity users and roles: configures Identity (evidence: `IdentityMail.Web/Program.cs`)
- Sign-in and registration → Identity users and roles: creates accounts (evidence: `IdentityMail.Web/Controllers/AuthController.cs`)
- Sign-in and registration → SMTP mail service: sends reset mail (evidence: `IdentityMail.Web/Controllers/AuthController.cs`)
- Profile and settings → Identity users and roles: updates account (evidence: `IdentityMail.Web/Controllers/ProfileController.cs`)
- Mailboxes and compose → Identity users and roles: resolves users (evidence: `IdentityMail.Web/Controllers/MessageController.cs`)
- Mailboxes and compose → Application database: reads and writes (evidence: `IdentityMail.Web/Controllers/MessageController.cs`)
- Categories → Application database: reads and writes (evidence: `IdentityMail.Web/Controllers/CategoryController.cs`)
- Notifications → Application database: reads and writes (evidence: `IdentityMail.Web/Controllers/NotificationController.cs`)
- Message reports → Application database: reviews reports (evidence: `IdentityMail.Web/Controllers/AdminReportController.cs`)
- Usage statistics → Application database: queries metrics (evidence: `IdentityMail.Web/Controllers/StatisticsController.cs`)
- User administration → Identity users and roles: manages accounts (evidence: `IdentityMail.Web/Controllers/AdminUserController.cs`)
- Role administration → Identity users and roles: manages roles (evidence: `IdentityMail.Web/Controllers/AdminRoleController.cs`)
- Mailboxes and compose → Notifications: creates alerts
- Mail users → Message reports: report messages
