# AyCode.Services.Server

@project {
  type = "framework"
}

Server-side service implementations: JWT authentication, SendGrid email delivery, SignalR hub infrastructure with binary protocol, session management, and change-tracked data sources.

## Documentation

| Document | Topic |
|---|---|
| `SIGNALR/README.md` | Server-side SignalR hub (dispatch, session, broadcast) |

## Folder Structure

| Folder | Purpose |
|---|---|
| [`Emails/`](Emails/README.md) | SendGrid email service (registration, password reset) |
| [`Logins/`](Logins/README.md) | Server-side login with JWT token generation |
| [`SignalRs/`](SignalRs/README.md) | SignalR hub base, session service, client broadcast |

## Dependencies

| Dependency | Purpose |
|---|---|
| `AyCode.Core` | Core types, serializers |
| `AyCode.Core.Server` | GlobalLogger |
| `AyCode.Database` | Data access layer |
| `AyCode.Entities` / `AyCode.Entities.Server` | Entity types |
| `AyCode.Interfaces` / `AyCode.Interfaces.Server` | Service contracts |
| `AyCode.Models` / `AyCode.Models.Server` | DTOs, dynamic method dispatch |
| `AyCode.Services` | Client-side SignalR base, tag attributes |
| `SendGrid` | Email delivery |
| `Microsoft.AspNetCore.SignalR.*` | SignalR server |
| `Microsoft.AspNetCore.Cryptography.KeyDerivation` | Password hashing |
| `Microsoft.AspNetCore.Authentication.JwtBearer` | JWT auth (transitive) |
