How karremanoj5599-del/acc works
This repository implements eSSL access-control management: operators sign in to a web dashboard to monitor devices, users, doors, and access activity; API and background workers coordinate device connections, synchronization, and live event processing. The SDK wraps the vendor PullSDK for device operations. The tree and sampled source support these runtime paths, but the web page excerpts do not show their API calls, and the SignalR hub implementation is not sampled, so those links are left unasserted.
Main entry points: AppDbContext.cs Data context · DeviceConnectionManager.cs Connection manager · App.tsx Dashboard routes · PullSdkWrapper.cs PullSDK wrapper
Components 25
Operator dashboard
- Dashboard routes
src/EsslAccessControl.Web/src/App.tsx - Dashboard layout
src/EsslAccessControl.Web/src/components/Layout.tsx - Activity dashboard
src/EsslAccessControl.Web/src/pages/Dashboard.tsx - Device management
src/EsslAccessControl.Web/src/pages/Devices.tsx - User management
src/EsslAccessControl.Web/src/pages/Users.tsx
Management API
- Authentication endpoints
src/EsslAccessControl.Api/Controllers/AuthController.cs - JWT login
src/EsslAccessControl.Api/Services/AuthService.cs - Device and door endpoints
src/EsslAccessControl.Api/Controllers/DevicesController.cs - Other API endpoints
src/EsslAccessControl.Api/Controllers/AllControllers.cs - Realtime hub
src/EsslAccessControl.Api/Hubs/RealTimeHub.cs
Background processing
- Connectivity worker
src/EsslAccessControl.Service/Workers/HeartbeatWorker.cs - Live log worker
src/EsslAccessControl.Service/Workers/RealTimeLogWorker.cs - Scheduled sync worker
src/EsslAccessControl.Service/Workers/SyncWorker.cs
Persistence
- Data context
src/EsslAccessControl.Api/Data/AppDbContext.cs - Domain entities
src/EsslAccessControl.Api/Data/Entities/AllEntities.cs - PostgreSQL database
src/Database/001_initial_schema.sql
Device integration
- Connection manager
src/EsslAccessControl.Api/Services/DeviceConnectionManager.cs - Device synchronization
src/EsslAccessControl.Api/Services/DeviceSyncService.cs - PullSDK wrapper
src/EsslSdk/PullSdkWrapper.cs - Native SDK binding
src/EsslSdk/PullSdkNative.cs - Device data models
src/EsslSdk/Models/DeviceModels.cs - Access data models
src/EsslSdk/Models/DataModels.cs - Event type definitions
src/EsslSdk/Enums/EventType.cs
Other components
- Operator
- eSSL access device
Connections 27
- Operator → Dashboard routes: uses
src/EsslAccessControl.Web/src/App.tsx - Dashboard routes → Dashboard layout: renders
src/EsslAccessControl.Web/src/App.tsx - Dashboard routes → Activity dashboard: routes to
src/EsslAccessControl.Web/src/App.tsx - Dashboard routes → Device management: routes to
src/EsslAccessControl.Web/src/App.tsx - Dashboard routes → User management: routes to
src/EsslAccessControl.Web/src/App.tsx - Authentication endpoints → JWT login: delegates to
src/EsslAccessControl.Api/Controllers/AuthController.cs - JWT login → Data context: reads and updates
src/EsslAccessControl.Api/Services/AuthService.cs - Device and door endpoints → Data context: reads and writes
src/EsslAccessControl.Api/Controllers/DevicesController.cs - Device and door endpoints → Connection manager: manages connections
src/EsslAccessControl.Api/Controllers/DevicesController.cs - Device and door endpoints → Device synchronization: requests sync
src/EsslAccessControl.Api/Controllers/DevicesController.cs - Other API endpoints → Data context: reads and writes
src/EsslAccessControl.Api/Controllers/AllControllers.cs - Other API endpoints → Connection manager: uses
src/EsslAccessControl.Api/Controllers/AllControllers.cs - Connection manager → PullSDK wrapper: creates connection
src/EsslAccessControl.Api/Services/DeviceConnectionManager.cs - PullSDK wrapper → Native SDK binding: invokes
src/EsslSdk/PullSdkWrapper.cs - PullSDK wrapper → Device data models: uses
src/EsslSdk/PullSdkWrapper.cs - PullSDK wrapper → Access data models: uses
src/EsslSdk/PullSdkWrapper.cs - Connectivity worker → Data context: reads and updates
src/EsslAccessControl.Service/Workers/HeartbeatWorker.cs - Connectivity worker → Connection manager: checks and reconnects
src/EsslAccessControl.Service/Workers/HeartbeatWorker.cs - Live log worker → Connection manager: polls logs
src/EsslAccessControl.Service/Workers/RealTimeLogWorker.cs - Live log worker → Data context: stores events
src/EsslAccessControl.Service/Workers/RealTimeLogWorker.cs - Live log worker → Realtime hub: broadcasts events
src/EsslAccessControl.Service/Workers/RealTimeLogWorker.cs - Scheduled sync worker → Device synchronization: requests sync
src/EsslAccessControl.Service/Workers/SyncWorker.cs - Device synchronization → Connection manager: gets device connection
src/EsslAccessControl.Api/Services/DeviceSyncService.cs - Device synchronization → Data context: reads and writes
src/EsslAccessControl.Api/Services/DeviceSyncService.cs - Data context → Domain entities: maps
src/EsslAccessControl.Api/Data/AppDbContext.cs - Data context → PostgreSQL database: persists
- eSSL access device → PullSDK wrapper: device I/O