# skillbrigde/skillbridge-api architecture

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

## Overview

SkillBridge is a .NET modular-monolith API for a mentoring platform. The principal request path is an HTTP client through the API host to a module endpoint; the sampled Identity endpoints dispatch authentication commands, while sampled user queries read Identity data. Catalog covers category, skill, and tag management. The README names the broader mentoring stages, but most module implementations were not sampled; those branches are shown only as module boundaries, not as invented workflows. Cross-module event dispatch is documented as not yet implemented.

Main entry points: [`src/Bootstrapper/SkillBridge.Api/Program.cs`](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Bootstrapper/SkillBridge.Api/Program.cs) (HTTP host), [`src/Modules/Identity/SkillBridge.Modules.Identity/IdentityModule.cs`](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/IdentityModule.cs) (Identity module), [`src/Modules/Identity/SkillBridge.Modules.Identity/Endpoints/AuthEndpoints.cs`](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/Endpoints/AuthEndpoints.cs) (Auth endpoints), [`src/Modules/Catalog/SkillBridge.Modules.Catalog/CatalogModule.cs`](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/CatalogModule.cs) (Catalog module)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_host["API host"]
  node_api["HTTP host<br/>[Program.cs]"]
end

subgraph group_identity["Identity"]
  node_identity_module["Identity module<br/>[IdentityModule.cs]"]
  node_auth_endpoints["Auth endpoints<br/>[AuthEndpoints.cs]"]
  node_identity_commands["Auth commands<br/>[Commands]"]
  node_user_queries["User queries<br/>[Queries]"]
  node_identity_db[("Identity store")]
end

subgraph group_catalog["Catalog"]
  node_catalog_module["Catalog module<br/>[CatalogModule.cs]"]
  node_catalog_endpoints["Catalog endpoints"]
  node_catalog_service["Catalog operations<br/>[CatalogService.cs]"]
  node_catalog_db[("Catalog store")]
end

subgraph group_mentoring["Mentoring domains"]
  node_profiles["Mentor profiles<br/>[ProfilesModule.cs]"]
  node_scheduling["Scheduling"]
  node_booking["Booking<br/>[BookingModule.cs]"]
  node_payments["Payments<br/>[PaymentsModule.cs]"]
  node_learning["Learning<br/>[LearningModule.cs]"]
  node_messaging["Messaging<br/>[MessagingModule.cs]"]
  node_reviews["Reviews<br/>[ReviewsModule.cs]"]
  node_recommendations["Recommendations"]
end

subgraph group_shared["Shared runtime"]
  node_building_blocks["Building blocks"]
end

node_client(("API client"))

node_client -->|"sends requests"| node_api
node_api -->|"maps endpoints"| node_identity_module
node_api -->|"maps endpoints"| node_catalog_module
node_api -->|"maps endpoints"| node_profiles
node_api -->|"maps endpoints"| node_scheduling
node_api -->|"maps endpoints"| node_booking
node_api -->|"maps endpoints"| node_payments
node_api -->|"maps endpoints"| node_learning
node_api -->|"maps endpoints"| node_messaging
node_api -->|"maps endpoints"| node_reviews
node_api -->|"maps endpoints"| node_recommendations
node_identity_module -->|"maps routes"| node_auth_endpoints
node_auth_endpoints -->|"dispatches commands"| node_identity_commands
node_user_queries -->|"reads"| node_identity_db
node_catalog_module -->|"maps routes"| node_catalog_endpoints
node_catalog_service -->|"reads and writes"| node_catalog_db
node_api -->|"registers runtime"| node_building_blocks

click node_api "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Bootstrapper/SkillBridge.Api/Program.cs"
click node_identity_module "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/IdentityModule.cs"
click node_auth_endpoints "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/Endpoints/AuthEndpoints.cs"
click node_identity_commands "https://github.com/skillbrigde/skillbridge-api/tree/main/src/Modules/Identity/SkillBridge.Modules.Identity/Application/Commands"
click node_user_queries "https://github.com/skillbrigde/skillbridge-api/tree/main/src/Modules/Identity/SkillBridge.Modules.Identity/Application/Queries"
click node_identity_db "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/Infrastructure/Data/IdentityDbContext.cs"
click node_catalog_module "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/CatalogModule.cs"
click node_catalog_endpoints "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/Endpoints/CatalogEndpoints.cs"
click node_catalog_service "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/Application/CatalogService.cs"
click node_catalog_db "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/Infrastructure/CatalogDbContext.cs"
click node_profiles "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Profiles/SkillBridge.Modules.Profiles/ProfilesModule.cs"
click node_scheduling "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Scheduling/SkillBridge.Modules.Scheduling/SchedulingModule.cs"
click node_booking "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Booking/SkillBridge.Modules.Booking/BookingModule.cs"
click node_payments "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Payments/SkillBridge.Modules.Payments/PaymentsModule.cs"
click node_learning "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Learning/SkillBridge.Modules.Learning/LearningModule.cs"
click node_messaging "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Messaging/SkillBridge.Modules.Messaging/MessagingModule.cs"
click node_reviews "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Reviews/SkillBridge.Modules.Reviews/ReviewsModule.cs"
click node_recommendations "https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Recommendations/SkillBridge.Modules.Recommendations/RecommendationsModule.cs"
click node_building_blocks "https://github.com/skillbrigde/skillbridge-api/tree/main/src/BuildingBlocks/SkillBridge.BuildingBlocks"

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_api,node_client toneBlue
class node_identity_module,node_auth_endpoints,node_identity_commands,node_user_queries,node_identity_db toneAmber
class node_catalog_module,node_catalog_endpoints,node_catalog_service,node_catalog_db toneMint
class node_profiles,node_scheduling,node_booking,node_payments,node_learning,node_messaging,node_reviews,node_recommendations toneRose
class node_building_blocks toneIndigo
```

## Components

### API host

- [HTTP host](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Bootstrapper/SkillBridge.Api/Program.cs): `src/Bootstrapper/SkillBridge.Api/Program.cs`

### Identity

- [Identity module](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/IdentityModule.cs): `src/Modules/Identity/SkillBridge.Modules.Identity/IdentityModule.cs`
- [Auth endpoints](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/Endpoints/AuthEndpoints.cs): `src/Modules/Identity/SkillBridge.Modules.Identity/Endpoints/AuthEndpoints.cs`
- [Auth commands](https://github.com/skillbrigde/skillbridge-api/tree/main/src/Modules/Identity/SkillBridge.Modules.Identity/Application/Commands): `src/Modules/Identity/SkillBridge.Modules.Identity/Application/Commands`
- [User queries](https://github.com/skillbrigde/skillbridge-api/tree/main/src/Modules/Identity/SkillBridge.Modules.Identity/Application/Queries): `src/Modules/Identity/SkillBridge.Modules.Identity/Application/Queries`
- [Identity store](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Identity/SkillBridge.Modules.Identity/Infrastructure/Data/IdentityDbContext.cs): `src/Modules/Identity/SkillBridge.Modules.Identity/Infrastructure/Data/IdentityDbContext.cs`

### Catalog

- [Catalog module](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/CatalogModule.cs): `src/Modules/Catalog/SkillBridge.Modules.Catalog/CatalogModule.cs`
- [Catalog endpoints](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/Endpoints/CatalogEndpoints.cs): `src/Modules/Catalog/SkillBridge.Modules.Catalog/Endpoints/CatalogEndpoints.cs`
- [Catalog operations](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/Application/CatalogService.cs): `src/Modules/Catalog/SkillBridge.Modules.Catalog/Application/CatalogService.cs`
- [Catalog store](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Catalog/SkillBridge.Modules.Catalog/Infrastructure/CatalogDbContext.cs): `src/Modules/Catalog/SkillBridge.Modules.Catalog/Infrastructure/CatalogDbContext.cs`

### Mentoring domains

- [Mentor profiles](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Profiles/SkillBridge.Modules.Profiles/ProfilesModule.cs): `src/Modules/Profiles/SkillBridge.Modules.Profiles/ProfilesModule.cs`
- [Scheduling](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Scheduling/SkillBridge.Modules.Scheduling/SchedulingModule.cs): `src/Modules/Scheduling/SkillBridge.Modules.Scheduling/SchedulingModule.cs`
- [Booking](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Booking/SkillBridge.Modules.Booking/BookingModule.cs): `src/Modules/Booking/SkillBridge.Modules.Booking/BookingModule.cs`
- [Payments](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Payments/SkillBridge.Modules.Payments/PaymentsModule.cs): `src/Modules/Payments/SkillBridge.Modules.Payments/PaymentsModule.cs`
- [Learning](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Learning/SkillBridge.Modules.Learning/LearningModule.cs): `src/Modules/Learning/SkillBridge.Modules.Learning/LearningModule.cs`
- [Messaging](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Messaging/SkillBridge.Modules.Messaging/MessagingModule.cs): `src/Modules/Messaging/SkillBridge.Modules.Messaging/MessagingModule.cs`
- [Reviews](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Reviews/SkillBridge.Modules.Reviews/ReviewsModule.cs): `src/Modules/Reviews/SkillBridge.Modules.Reviews/ReviewsModule.cs`
- [Recommendations](https://github.com/skillbrigde/skillbridge-api/blob/main/src/Modules/Recommendations/SkillBridge.Modules.Recommendations/RecommendationsModule.cs): `src/Modules/Recommendations/SkillBridge.Modules.Recommendations/RecommendationsModule.cs`

### Shared runtime

- [Building blocks](https://github.com/skillbrigde/skillbridge-api/tree/main/src/BuildingBlocks/SkillBridge.BuildingBlocks): `src/BuildingBlocks/SkillBridge.BuildingBlocks`

### Other components

- **API client**

## Connections

- API client → HTTP host: sends requests
- HTTP host → Identity module: maps endpoints
- HTTP host → Catalog module: maps endpoints
- HTTP host → Mentor profiles: maps endpoints
- HTTP host → Scheduling: maps endpoints
- HTTP host → Booking: maps endpoints
- HTTP host → Payments: maps endpoints
- HTTP host → Learning: maps endpoints
- HTTP host → Messaging: maps endpoints
- HTTP host → Reviews: maps endpoints
- HTTP host → Recommendations: maps endpoints
- Identity module → Auth endpoints: maps routes
- Auth endpoints → Auth commands: dispatches commands
- User queries → Identity store: reads
- Catalog module → Catalog endpoints: maps routes
- Catalog operations → Catalog store: reads and writes
- HTTP host → Building blocks: registers runtime
