# 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_SERVER.md` | Server-side SignalR hub (dispatch, session, broadcast) | | `SIGNALR_DATASOURCE.md` | Real-time DataSource with CRUD & change tracking | ## 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, data source with change tracking, 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) |