How lazzerman42/projectmarvin works
Project Marvin is a .NET logging platform for IoT devices and services. Devices call lightweight GET/POST endpoints; the API parses and enriches LogEntry data, persists it in SQLite, and broadcasts SignalR notifications. The Blazor Server web app authenticates users, reads the shared log store, and presents incoming entries in real time. Additional API branches provide echo, local time, database-count diagnostics, API-key protection, and local-network filtering. Sampled source confirms the main persistence and dispatch paths; some UI wiring is inferred from documented behavior.
Components 20
Ingestion API
- API Host
ProjectMarvinAPI/Program.cs - Log Endpoints
ProjectMarvinAPI/Program.cs - Utility Endpoints
ProjectMarvinAPI/Program.cs - Log Processing
ProjectMarvinAPI/Program.cs - API SignalR Hub
ProjectMarvinAPI/Hubs/LogHub.cs
Web Monitoring
- Web Host
ProjectMarvinWeb/Program.cs - Blazor Monitor
ProjectMarvinWeb/Components/Pages/Home.razor - Web SignalR Hub
ProjectMarvinWeb/Hubs/LogHub.cs - Account Pages
ProjectMarvinWeb/Components/Account/Pages
Persistence
- Identity SQLite
ProjectMarvinWeb/Databases/SQLiteLogin.db - Log SQLite
Databases/SQLiteLogData.db - API Log Context
ProjectMarvinAPI/Data/ApplicationDbContextLogData.cs - Web Log Context
ProjectMarvinWeb/Data/ApplicationDbContextLogData.cs
Security
- Auth State
ProjectMarvinWeb/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs - API Key Validator
ProjectMarvinAPI/Logic/APIKeyEndPointValidator.cs - IP Filter
ProjectMarvinAPI/Logic/IPFilterMiddleware.cs - Identity Redirects
ProjectMarvinWeb/Components/Account/IdentityRedirectManager.cs
Shared Domain
- LogEntry Model
Common/LogEntry.cs
Other components
- IoT Devices
- Web Operator
Connections 23
- IoT Devices → Log Endpoints: submits logs
- IoT Devices → Utility Endpoints: requests utilities
- API Host → IP Filter: runs middleware
- IP Filter → Log Endpoints: allows requests
- IP Filter → Utility Endpoints: allows requests
- Log Endpoints → Log Processing: handles payloads
- Log Processing → LogEntry Model: parses entries
- Log Processing → API Log Context: saves entries
- API Log Context → Log SQLite: writes logs
- Log Processing → API SignalR Hub: broadcasts updates
- Utility Endpoints → IoT Devices: returns results
- Log Endpoints → API Key Validator: checks protected route
- Web Operator → Blazor Monitor: views logs
- Blazor Monitor → Web Log Context: queries logs
- Web Log Context → Log SQLite: reads logs
- Blazor Monitor → Web SignalR Hub: receives updates
- API SignalR Hub → Blazor Monitor: pushes notifications
- Web Operator → Account Pages: signs in
- Account Pages → Auth State: establishes session
- Auth State → Identity SQLite: validates identity
- Account Pages → Identity Redirects: redirects safely
- Web Host → Blazor Monitor: serves application
- Web Host → Web SignalR Hub: maps hub