# nemel11iinee/lumiere-backend architecture

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

- Interactive diagram: https://gitdiagram.com/nemel11iinee/lumiere-backend
- Repository: https://github.com/nemel11iinee/lumiere-backend

## Overview

Lumiere is an ASP.NET Core API for a beauty-salon website. The principal customer workflow is to authenticate, browse salon services, and create or cancel appointments; administrators manage users and services and review activity. Authentication also covers refresh tokens and password recovery, while user profiles support avatar management. The README documents online-user tracking and role-based access. Controller and data-access links are grounded in sampled source where available; some controller capabilities are documented or evident from the tree but their implementation was not sampled.

Main entry points: [`Lumiere.Backend/Data/ApplicationDbContext.cs`](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Data/ApplicationDbContext.cs) (EF data access), [`Lumiere.Backend/Controllers/AuthController.cs`](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AuthController.cs) (Authentication), [`Lumiere.Backend/Services/LoggingService.cs`](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Services/LoggingService.cs) (Activity logging), [`Lumiere.Backend/Controllers/AppointmentsController.cs`](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AppointmentsController.cs) (Appointments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer workflows"]
  node_services["Service catalog"]
  node_appointments["Appointments"]
  node_contact["Contact messages"]
end

subgraph group_identity["Identity and profiles"]
  node_auth["Authentication<br/>[AuthController.cs]"]
  node_tokens["JWT tokens<br/>[TokenService.cs]"]
  node_profile["User profiles<br/>[UsersController.cs]"]
end

subgraph group_admin["Administration and audit"]
  node_admin["Admin operations<br/>[AdminController.cs]"]
  node_log_api["Log queries<br/>[LogsController.cs]"]
end

subgraph group_storage["Persistence and logging"]
  node_dbcontext["EF data access"]
  node_logging["Activity logging<br/>[LoggingService.cs]"]
end

node_visitor(("Website user"))
node_administrator(("Administrator"))
node_postgres[("PostgreSQL")]

node_visitor -->|"authenticates"| node_auth
node_visitor -->|"manages profile"| node_profile
node_visitor -->|"browses"| node_services
node_visitor -->|"books or cancels"| node_appointments
node_visitor -->|"sends message"| node_contact
node_administrator -->|"authenticates"| node_auth
node_administrator -->|"manages"| node_admin
node_administrator -->|"reviews activity"| node_log_api
node_auth -->|"creates tokens"| node_tokens
node_auth -->|"reads and writes"| node_dbcontext
node_profile -->|"reads and writes"| node_dbcontext
node_profile -->|"records actions"| node_logging
node_services -->|"reads services"| node_dbcontext
node_appointments -->|"reads and writes"| node_dbcontext
node_appointments -->|"records actions"| node_logging
node_contact -->|"stores messages"| node_dbcontext
node_admin -->|"reads and writes"| node_dbcontext
node_admin -->|"records actions"| node_logging
node_log_api -->|"queries logs"| node_dbcontext
node_logging -->|"stores entries"| node_dbcontext
node_dbcontext -->|"persists data"| node_postgres

click node_auth "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AuthController.cs"
click node_tokens "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Services/Auth/TokenService.cs"
click node_profile "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/UsersController.cs"
click node_services "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/ServicesController.cs"
click node_appointments "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AppointmentsController.cs"
click node_contact "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/ContactController.cs"
click node_admin "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AdminController.cs"
click node_log_api "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/LogsController.cs"
click node_dbcontext "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Data/ApplicationDbContext.cs"
click node_logging "https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Services/LoggingService.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_services,node_appointments,node_contact,node_visitor toneBlue
class node_auth,node_tokens,node_profile,node_postgres toneAmber
class node_admin,node_log_api toneMint
class node_dbcontext,node_logging toneRose
class node_administrator toneIndigo
```

## Components

### Customer workflows

- [Service catalog](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/ServicesController.cs): `Lumiere.Backend/Controllers/ServicesController.cs`
- [Appointments](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AppointmentsController.cs): `Lumiere.Backend/Controllers/AppointmentsController.cs`
- [Contact messages](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/ContactController.cs): `Lumiere.Backend/Controllers/ContactController.cs`

### Identity and profiles

- [Authentication](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AuthController.cs): `Lumiere.Backend/Controllers/AuthController.cs`
- [JWT tokens](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Services/Auth/TokenService.cs): `Lumiere.Backend/Services/Auth/TokenService.cs`
- [User profiles](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/UsersController.cs): `Lumiere.Backend/Controllers/UsersController.cs`

### Administration and audit

- [Admin operations](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/AdminController.cs): `Lumiere.Backend/Controllers/AdminController.cs`
- [Log queries](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Controllers/LogsController.cs): `Lumiere.Backend/Controllers/LogsController.cs`

### Persistence and logging

- [EF data access](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Data/ApplicationDbContext.cs): `Lumiere.Backend/Data/ApplicationDbContext.cs`
- [Activity logging](https://github.com/nemel11iinee/lumiere-backend/blob/master/Lumiere.Backend/Services/LoggingService.cs): `Lumiere.Backend/Services/LoggingService.cs`

### Other components

- **Website user**
- **Administrator**
- **PostgreSQL**

## Connections

- Website user → Authentication: authenticates
- Website user → User profiles: manages profile
- Website user → Service catalog: browses
- Website user → Appointments: books or cancels
- Website user → Contact messages: sends message
- Administrator → Authentication: authenticates
- Administrator → Admin operations: manages
- Administrator → Log queries: reviews activity
- Authentication → JWT tokens: creates tokens
- Authentication → EF data access: reads and writes
- User profiles → EF data access: reads and writes
- User profiles → Activity logging: records actions
- Service catalog → EF data access: reads services
- Appointments → EF data access: reads and writes
- Appointments → Activity logging: records actions
- Contact messages → EF data access: stores messages
- Admin operations → EF data access: reads and writes
- Admin operations → Activity logging: records actions
- Log queries → EF data access: queries logs
- Activity logging → EF data access: stores entries
- EF data access → PostgreSQL: persists data
