# lisyarakirovskiy/exam architecture

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

## Overview

This is an ASP.NET Core MVC task planner: users view tasks, add them with a due time and importance, and update or delete them. Requests enter through the Home controller, which delegates task operations to a service; the service uses Entity Framework to persist and retrieve task records, and the index view presents the task list. Task records also derive a human-readable time remaining value. The view implementation and database configuration were not sampled, so their detailed behavior is not represented.

Main entry points: [`Controllers/HomeController.cs`](https://github.com/lisyarakirovskiy/exam/blob/master/Controllers/HomeController.cs) (Home controller), [`Views/Home/Index.cshtml`](https://github.com/lisyarakirovskiy/exam/blob/master/Views/Home/Index.cshtml) (Task list view), [`Services/TaskService.cs`](https://github.com/lisyarakirovskiy/exam/blob/master/Services/TaskService.cs) (Task service), [`Program.cs`](https://github.com/lisyarakirovskiy/exam/blob/master/Program.cs) (Application startup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_app["Application startup<br/>[Program.cs]"]
  node_home["Home controller<br/>[HomeController.cs]"]
  node_index["Task list view<br/>[Index.cshtml]"]
  node_layout["Shared layout<br/>[_Layout.cshtml]"]
end

subgraph group_domain["Task operations"]
  node_service["Task service<br/>[TaskService.cs]"]
  node_service_contract["Task service contract<br/>[ITaskService.cs]"]
  node_task["Task record<br/>[TaskEntity.cs]"]
end

subgraph group_persistence["Data persistence"]
  node_context["EF database context"]
  node_sql[("SQL Server database")]
end

node_user(("Task user"))

node_user -->|"sends requests"| node_app
node_app -->|"routes requests"| node_home
node_home -->|"uses operations"| node_service_contract
node_home -->|"calls task operations"| node_service
node_service -->|"queries and saves"| node_context
node_context -->|"reads and writes"| node_sql
node_service -->|"creates and returns"| node_task
node_home -->|"renders task list"| node_index
node_index -->|"displays tasks"| node_user
node_index -->|"submits task forms"| node_home
node_index -->|"uses shared layout"| node_layout

click node_app "https://github.com/lisyarakirovskiy/exam/blob/master/Program.cs"
click node_home "https://github.com/lisyarakirovskiy/exam/blob/master/Controllers/HomeController.cs"
click node_index "https://github.com/lisyarakirovskiy/exam/blob/master/Views/Home/Index.cshtml"
click node_layout "https://github.com/lisyarakirovskiy/exam/blob/master/Views/Shared/_Layout.cshtml"
click node_service "https://github.com/lisyarakirovskiy/exam/blob/master/Services/TaskService.cs"
click node_service_contract "https://github.com/lisyarakirovskiy/exam/blob/master/Services/ITaskService.cs"
click node_task "https://github.com/lisyarakirovskiy/exam/blob/master/Data/Entities/TaskEntity.cs"
click node_context "https://github.com/lisyarakirovskiy/exam/blob/master/Data/ApplicationDbContext.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_index,node_layout toneBlue
class node_service,node_service_contract,node_task toneAmber
class node_context,node_sql toneMint
class node_user toneRose
```

## Components

### Web interface

- [Application startup](https://github.com/lisyarakirovskiy/exam/blob/master/Program.cs): `Program.cs`
- [Home controller](https://github.com/lisyarakirovskiy/exam/blob/master/Controllers/HomeController.cs): `Controllers/HomeController.cs`
- [Task list view](https://github.com/lisyarakirovskiy/exam/blob/master/Views/Home/Index.cshtml): `Views/Home/Index.cshtml`
- [Shared layout](https://github.com/lisyarakirovskiy/exam/blob/master/Views/Shared/_Layout.cshtml): `Views/Shared/_Layout.cshtml`

### Task operations

- [Task service](https://github.com/lisyarakirovskiy/exam/blob/master/Services/TaskService.cs): `Services/TaskService.cs`
- [Task service contract](https://github.com/lisyarakirovskiy/exam/blob/master/Services/ITaskService.cs): `Services/ITaskService.cs`
- [Task record](https://github.com/lisyarakirovskiy/exam/blob/master/Data/Entities/TaskEntity.cs): `Data/Entities/TaskEntity.cs`

### Data persistence

- [EF database context](https://github.com/lisyarakirovskiy/exam/blob/master/Data/ApplicationDbContext.cs): `Data/ApplicationDbContext.cs`
- **SQL Server database**

### Other components

- **Task user**

## Connections

- Task user → Application startup: sends requests
- Application startup → Home controller: routes requests
- Home controller → Task service contract: uses operations
- Home controller → Task service: calls task operations
- Task service → EF database context: queries and saves
- EF database context → SQL Server database: reads and writes
- Task service → Task record: creates and returns
- Home controller → Task list view: renders task list
- Task list view → Task user: displays tasks
- Task list view → Home controller: submits task forms
- Task list view → Shared layout: uses shared layout
