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.