# alexandertrofimchuk/resumesystemmanagment architecture

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

- Interactive diagram: https://gitdiagram.com/alexandertrofimchuk/resumesystemmanagment
- Repository: https://github.com/alexandertrofimchuk/resumesystemmanagment
- Video tour (about a minute): https://gitdiagram.com/alexandertrofimchuk/resumesystemmanagment/video

## Overview

ResumeSystemManagement is an ASP.NET MVC recruiting application for managing job positions and their configurable templates, with user accounts and administration. Recruiters create or edit positions, configure their attribute sections, then publish them; candidates can browse and search available positions. Attribute-library management supports reusable fields and dropdown options. The tree also indicates registration, external login, user administration, and statistics capabilities. Sampled controller and service code confirms the position and attribute paths; several other service-to-controller connections are not shown because their implementations were not sampled.

Main entry points: [`src/ResumeSystemManagement.Web/Program.cs`](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Program.cs) (MVC application), [`src/ResumeSystemManagement.Web/Controllers/PositionTemplateController.cs`](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/PositionTemplateController.cs) (Template controller), [`src/ResumeSystemManagement.Application/Service/Position/PositionService.cs`](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/Position/PositionService.cs) (Position service), [`src/ResumeSystemManagement.Infrastructure/Context/ApplicationDbContext.cs`](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Context/ApplicationDbContext.cs) (EF context)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_webapp["MVC application<br/>[Program.cs]"]
  node_positions["Position controller"]
  node_templates["Template controller"]
  node_attributeweb["Attribute controller"]
  node_account["Account controller"]
  node_oauth["OAuth controller<br/>[OAuthController.cs]"]
  node_admin["Admin controller<br/>[AdminController.cs]"]
end

subgraph group_domain["Position and attributes"]
  node_positionservice["Position service<br/>[PositionService.cs]"]
  node_templateservice["Template service"]
  node_attributeservice["Attribute service"]
  node_positionsvcinterface["Position operations"]
  node_attributesinterface["Attribute operations"]
end

subgraph group_identity["Accounts and administration"]
  node_userservice["User service<br/>[UserService.cs]"]
end

subgraph group_data["Persistence and integrations"]
  node_positionrepo["Position repository"]
  node_templaterepo["Template repository"]
  node_attributerepo["Attribute repository"]
  node_dbcontext["EF context"]
  node_database[("Application database")]
  node_userrepo["User repository<br/>[UserRepository.cs]"]
  node_authservice["Authentication service<br/>[AuthService.cs]"]
  node_externalauth["External auth provider"]
end

node_recruiter(("Recruiter"))
node_candidate(("Candidate"))
node_googlefacebook["Google / Facebook"]

node_candidate -->|"browses positions"| node_webapp
node_recruiter -->|"manages postings"| node_webapp
node_webapp -->|"routes requests"| node_positions
node_positions -->|"calls"| node_positionservice
node_positionservice -->|"queries and updates"| node_positionrepo
node_positionservice -->|"loads built-ins"| node_attributerepo
node_positionrepo -->|"queries and saves"| node_dbcontext
node_attributerepo -->|"queries and saves"| node_dbcontext
node_templaterepo -->|"queries and saves"| node_dbcontext
node_dbcontext -->|"reads and writes"| node_database
node_positions -->|"opens template"| node_templates
node_templates -->|"calls"| node_templateservice
node_templates -->|"publishes or drafts"| node_positionservice
node_templates -->|"loads attribute library"| node_attributeservice
node_templateservice -->|"manages assignments"| node_templaterepo
node_webapp -->|"routes requests"| node_attributeweb
node_attributeweb -->|"calls"| node_attributeservice
node_attributeservice -->|"queries and updates"| node_attributerepo
node_webapp -->|"routes requests"| node_account
node_webapp -->|"routes requests"| node_oauth
node_oauth -->|"uses provider"| node_externalauth
node_externalauth -.->|"authenticates with"| node_googlefacebook
node_account -->|"account operations"| node_userrepo
node_userrepo -->|"reads and writes"| node_database
node_account -->|"signs in or out"| node_authservice
node_admin -->|"user administration"| node_userservice
node_userservice -->|"manages users"| node_userrepo

click node_webapp "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Program.cs"
click node_positions "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/PositionController.cs"
click node_templates "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/PositionTemplateController.cs"
click node_attributeweb "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/AttributeLibraryController.cs"
click node_positionservice "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/Position/PositionService.cs"
click node_templateservice "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/Position/PositionTemplateService.cs"
click node_attributeservice "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/Attributes/AttributeLibraryService.cs"
click node_positionrepo "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/Positions/PositionRepository.cs"
click node_templaterepo "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/Positions/PositionTemplateRepository.cs"
click node_attributerepo "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/Attributes/AttributeLibraryRepository.cs"
click node_dbcontext "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Context/ApplicationDbContext.cs"
click node_account "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/AccountController.cs"
click node_oauth "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/OAuthController.cs"
click node_userrepo "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/User/UserRepository.cs"
click node_authservice "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Service/AuthService.cs"
click node_externalauth "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Service/ExternalAuthProvider.cs"
click node_userservice "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/User/UserService.cs"
click node_admin "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/AdminController.cs"
click node_positionsvcinterface "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Interfaces/Position/IPositionService.cs"
click node_attributesinterface "https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Interfaces/Attributes/IAttributeLibraryService.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_positions,node_templates,node_attributeweb,node_account,node_oauth,node_admin toneBlue
class node_positionservice,node_templateservice,node_attributeservice,node_positionsvcinterface,node_attributesinterface toneAmber
class node_userservice toneMint
class node_positionrepo,node_templaterepo,node_attributerepo,node_dbcontext,node_database,node_userrepo,node_authservice,node_externalauth toneRose
class node_recruiter,node_candidate,node_googlefacebook toneIndigo
```

## Components

### Web interface

- [MVC application](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Program.cs): `src/ResumeSystemManagement.Web/Program.cs`
- [Position controller](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/PositionController.cs): `src/ResumeSystemManagement.Web/Controllers/PositionController.cs`
- [Template controller](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/PositionTemplateController.cs): `src/ResumeSystemManagement.Web/Controllers/PositionTemplateController.cs`
- [Attribute controller](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/AttributeLibraryController.cs): `src/ResumeSystemManagement.Web/Controllers/AttributeLibraryController.cs`
- [Account controller](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/AccountController.cs): `src/ResumeSystemManagement.Web/Controllers/AccountController.cs`
- [OAuth controller](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/OAuthController.cs): `src/ResumeSystemManagement.Web/Controllers/OAuthController.cs`
- [Admin controller](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Web/Controllers/AdminController.cs): `src/ResumeSystemManagement.Web/Controllers/AdminController.cs`

### Position and attributes

- [Position service](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/Position/PositionService.cs): `src/ResumeSystemManagement.Application/Service/Position/PositionService.cs`
- [Template service](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/Position/PositionTemplateService.cs): `src/ResumeSystemManagement.Application/Service/Position/PositionTemplateService.cs`
- [Attribute service](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/Attributes/AttributeLibraryService.cs): `src/ResumeSystemManagement.Application/Service/Attributes/AttributeLibraryService.cs`
- [Position operations](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Interfaces/Position/IPositionService.cs): `src/ResumeSystemManagement.Application/Interfaces/Position/IPositionService.cs`
- [Attribute operations](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Interfaces/Attributes/IAttributeLibraryService.cs): `src/ResumeSystemManagement.Application/Interfaces/Attributes/IAttributeLibraryService.cs`

### Accounts and administration

- [User service](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Application/Service/User/UserService.cs): `src/ResumeSystemManagement.Application/Service/User/UserService.cs`

### Persistence and integrations

- [Position repository](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/Positions/PositionRepository.cs): `src/ResumeSystemManagement.Infrastructure/Repositories/Positions/PositionRepository.cs`
- [Template repository](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/Positions/PositionTemplateRepository.cs): `src/ResumeSystemManagement.Infrastructure/Repositories/Positions/PositionTemplateRepository.cs`
- [Attribute repository](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/Attributes/AttributeLibraryRepository.cs): `src/ResumeSystemManagement.Infrastructure/Repositories/Attributes/AttributeLibraryRepository.cs`
- [EF context](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Context/ApplicationDbContext.cs): `src/ResumeSystemManagement.Infrastructure/Context/ApplicationDbContext.cs`
- **Application database**
- [User repository](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Repositories/User/UserRepository.cs): `src/ResumeSystemManagement.Infrastructure/Repositories/User/UserRepository.cs`
- [Authentication service](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Service/AuthService.cs): `src/ResumeSystemManagement.Infrastructure/Service/AuthService.cs`
- [External auth provider](https://github.com/alexandertrofimchuk/resumesystemmanagment/blob/main/src/ResumeSystemManagement.Infrastructure/Service/ExternalAuthProvider.cs): `src/ResumeSystemManagement.Infrastructure/Service/ExternalAuthProvider.cs`

### Other components

- **Recruiter**
- **Candidate**
- **Google / Facebook**

## Connections

- Candidate → MVC application: browses positions
- Recruiter → MVC application: manages postings
- MVC application → Position controller: routes requests
- Position controller → Position service: calls
- Position service → Position repository: queries and updates
- Position service → Attribute repository: loads built-ins
- Position repository → EF context: queries and saves
- Attribute repository → EF context: queries and saves
- Template repository → EF context: queries and saves
- EF context → Application database: reads and writes
- Position controller → Template controller: opens template
- Template controller → Template service: calls
- Template controller → Position service: publishes or drafts
- Template controller → Attribute service: loads attribute library
- Template service → Template repository: manages assignments
- MVC application → Attribute controller: routes requests
- Attribute controller → Attribute service: calls
- Attribute service → Attribute repository: queries and updates
- MVC application → Account controller: routes requests
- MVC application → OAuth controller: routes requests
- OAuth controller → External auth provider: uses provider
- External auth provider → Google / Facebook: authenticates with
- Account controller → User repository: account operations
- User repository → Application database: reads and writes
- Account controller → Authentication service: signs in or out
- Admin controller → User service: user administration
- User service → User repository: manages users
