How jp-raub/sem works
This repository implements SEM, an event-management web application with a demo mode and an authenticated product mode. The principal workflow is a user entering through the web UI, authenticating in product mode, and reading event lists or event details assembled from persisted event data. The tree also shows substantial account, appearance, invitation, messaging, notification, profile, and event-management UI capabilities. Those branches are represented, but their runtime wiring is not established by the sampled excerpts; edges therefore focus on relationships visible in the index or source.
Main entry points: Program.cs Web host · EventDetailReader.cs Event detail reader · AuthenticationPipeline.cs Authentication pipeline · AuthenticationSession.cs Session validation
Components 28
Web runtime
- Web host
src/Sem.Web/Program.cs - Product settings
src/Sem.Hosting/ProductSettings.cs
Authentication
- Authentication pipeline
src/Sem.Authentication/AuthenticationPipeline.cs - Login endpoints
src/Sem.Authentication/ApplicationLoginEndpoints.cs - Session validation
src/Sem.Authentication/AuthenticationSession.cs - Login attempts
src/Sem.Authentication/LoginAttemptStore.cs - Authentication settings
src/Sem.Authentication/AuthenticationSettings.cs
Event experience
- Event list reader
src/Sem.Web/Runtime/EventListReader.cs - Event detail reader
src/Sem.Web/Runtime/EventDetailReader.cs - Event detail endpoints
src/Sem.Web/Runtime/EventDetailEndpoints.cs - Timetable calculator
src/Sem.Web/Core/TimetableCalculator.cs - Location links
src/Sem.Web/Core/EventLocationLink.cs - Public answer projection
src/Sem.Web/Runtime/PublicAnswerProjection.cs
Storage and domain
- Storage opening
src/Sem.Hosting/ProductStorage.cs - Storage lease
src/Sem.Hosting/StorageLease.cs - SQLite initialization
src/Sem.Storage/Data/SqliteStorageInitializer.cs - Application database
src/Sem.Storage/Data/ApplicationDbContext.cs - User model
src/Sem.Storage/Models/Data/ApplicationUser.cs
Product UI
- Event interface
src/Sem.Web/ProductUI/event-view.js - Authentication interface
src/Sem.Web/ProductUI/authentication.js - Profile interface
src/Sem.Web/ProductUI/profile-view.js - Account interface
src/Sem.Web/ProductUI/account-view.js - Appearance interface
src/Sem.Web/ProductUI/appearance-view.js - Invitation interface
src/Sem.Web/ProductUI/invitation-view.js - Invitation administration
src/Sem.Web/ProductUI/invitation-administration-view.js - Messaging interface
src/Sem.Web/ProductUI/message-view.js - Notification interface
src/Sem.Web/ProductUI/notification-view.js
Other components
- User
Connections 33
- User → Web host: requests pages
src/Sem.Web/Program.cs - Web host → Product settings: loads configuration
src/Sem.Web/Program.cs - Web host → Storage opening: opens product storage
src/Sem.Web/Program.cs - Storage opening → Storage lease: acquires lease
src/Sem.Hosting/ProductStorage.cs - Storage opening → Application database: creates context
src/Sem.Hosting/ProductStorage.cs - Storage opening → SQLite initialization: initializes schema
src/Sem.Hosting/ProductStorage.cs - Web host → Authentication pipeline: registers and uses
src/Sem.Web/Program.cs - Web host → Event list reader: maps list routes
src/Sem.Web/Program.cs - Web host → Event detail endpoints: maps detail routes
src/Sem.Web/Program.cs - Authentication pipeline → Authentication settings: configures authentication
src/Sem.Authentication/AuthenticationPipeline.cs - Authentication pipeline → Login attempts: registers store
src/Sem.Authentication/AuthenticationPipeline.cs - Authentication pipeline → Session validation: validates principals
src/Sem.Authentication/AuthenticationPipeline.cs - Login endpoints → Session validation: uses session checks
src/Sem.Authentication/ApplicationLoginEndpoints.cs - Login endpoints → Login attempts: uses attempt store
src/Sem.Authentication/ApplicationLoginEndpoints.cs - Login endpoints → Application database: queries and updates
src/Sem.Authentication/ApplicationLoginEndpoints.cs - Session validation → Application database: checks user and revocation
src/Sem.Authentication/AuthenticationSession.cs - Authentication pipeline → User model: configures identity
src/Sem.Authentication/AuthenticationPipeline.cs - Event list reader → Application database: reads event data
src/Sem.Web/Runtime/EventListReader.cs - Event list reader → Session validation: validates session
src/Sem.Web/Runtime/EventListReader.cs - Event detail reader → Application database: reads event data
src/Sem.Web/Runtime/EventDetailReader.cs - Event detail reader → Session validation: validates session
src/Sem.Web/Runtime/EventDetailReader.cs - Event detail reader → Timetable calculator: calculates timetable
src/Sem.Web/Runtime/EventDetailReader.cs - Event detail reader → Location links: uses location links
src/Sem.Web/Runtime/EventDetailReader.cs - Event detail reader → Public answer projection: reads projection
src/Sem.Web/Runtime/EventDetailReader.cs - Web host → Authentication interface: serves asset
src/Sem.Web/Program.cs - Web host → Event interface: serves asset
src/Sem.Web/Program.cs - User → Profile interface: uses profile features
- User → Account interface: uses account features
- User → Appearance interface: uses appearance features
- User → Invitation interface: uses invitations
- User → Invitation administration: administers invitations
- User → Messaging interface: uses messaging
- User → Notification interface: uses notifications