Skip to main content

Alert.CA.Frontend.API

A .NET 8 Web API serving as the bridge between the Alert California frontend application and Azure cloud services. It provides RESTful endpoints for camera operations, image retrieval, alert and notification management, user preferences, and real-time updates via SignalR.

Architecture Overview

Tech Stack

CategoryTechnology
Runtime.NET 8, ASP.NET Core
API PatternsCQRS (MediatR), REST
Real-timeSignalR (Azure SignalR Service)
DatabasesAzure Cosmos DB (NoSQL), Azure SQL Server
StorageAzure Blob Storage (images), Azure Table Storage (metadata)
AuthMicrosoft Entra ID (Azure AD), JWT, Microsoft Identity Web
Image ProcessingMagick.NET (GIF generation)
GIS IntegrationESRI Feature Layers
MonitoringAzure Application Insights
ConfigAzure App Configuration + Key Vault
InfrastructureAlertCAInfrastructure NuGet package (shared services)
TestingxUnit, Moq

Solution Structure

ProjectTypePurpose
Alert.CA.Frontend.APIASP.NET Core 8 Web APIControllers, startup configuration, SignalR hub, authentication
Alert.CA.Frontend.ApplicationClass LibraryApplication services, MediatR commands/queries, models, validators, utilities
Alert.CA.Frontend.API.TestxUnit Test ProjectUnit and integration tests
DevopsPipeline DefinitionsCI/CD build and deployment scripts

Key Features

FeatureDescription
Camera MetadataQuery static and operational camera metadata, user-specific camera access
Camera MovementPTZ control, focus, brightness, guard tour toggle, turbo mode, lease management
Image RetrievalLatest images, timelapses (max 6 hours), panoramas, animated GIF generation
Alerts & NotificationsAlert message creation with map images, subscription management (ESRI + point-based)
Real-time UpdatesSignalR-based broadcasts for image updates, activity logs, panoramas, camera config
User PreferencesUI settings, pinned/hidden cameras, layer visibility, camera display options
Feature FlagsCentralized feature flag retrieval from App Configuration
Shared ViewsShareable camera view links with anonymous access
AuthenticationAzure AD with role-based access control (Camera.Operate, Notification.Alert, etc.)

Data Flow

Documentation

Stakeholders

NameRole
TBDTBD

License

This project is licensed under the [Your License Here].