A full-featured event management platform built with Blazor WebAssembly (.NET 8), developed with assistance from GitHub Copilot.
| # | Requirement | Implementation |
|---|---|---|
| 1 | GitHub repository | This repo β with .gitignore, README, and feature branches |
| 2 | EventCard component with two-way data binding | Components/EventCard.razor β @bind on all fields |
| 3 | Routing functionality (implemented & debugged) | App.razor router, /events/{EventId:int} route parameter, custom 404 |
| 4 | Performance & validation | DataAnnotations on all models, render-optimised computed properties |
| 5 | Registration form, session state, Attendance Tracker | Pages/Register.razor, Services/SessionStateService.cs, Pages/AttendanceTracker.razor |
| 6 | Copilot summary | Pages/CopilotSummary.razor β full step-by-step log |
# Prerequisites: .NET 8 SDK
dotnet restore
dotnet run
# β https://localhost:5001EventManagerApp/
βββ Models/
β βββ EventModel.cs # Event + AttendeeRecord models
β βββ RegistrationModel.cs # User registration + UserSession
β βββ UserSessionExtensions.cs
βββ Services/
β βββ EventService.cs # In-memory event store (singleton)
β βββ SessionStateService.cs # Auth/session state (Observer pattern)
βββ Components/
β βββ EventCard.razor # Two-way bound event card
β βββ PasswordStrengthBar.razor
βββ Pages/
β βββ Index.razor # Home page
β βββ Events.razor # /events + /events/{id}
β βββ Register.razor # Registration with full validation
β βββ AttendanceTracker.razor # Check-in dashboard
β βββ CopilotSummary.razor # Copilot development log
βββ Shared/
β βββ MainLayout.razor # Shell with sticky header
βββ wwwroot/
β βββ index.html
β βββ css/app.css # Dark editorial design system
βββ App.razor # Router + custom 404
βββ _Imports.razor
βββ Program.cs # DI registrations
- Two-way binding:
@bind/@bind:event="oninput"withEventCallback<T>for parent notification - Session state: Singleton
SessionStateServiceusing C#Actionevents +IDisposableunsubscription - Routing:
@pagewith optional int parameter; null-guard for missing IDs - Validation:
EditForm+DataAnnotationsValidator+ per-fieldValidationMessage - Performance: Computed
IEnumerableproperties;StateHasChangedonly inside event callbacks
Every development phase is documented in the in-app Copilot Log (/copilot-summary),
including the exact prompts used and what Copilot generated vs. what was hand-written.