Skip to content

AlexSouzaDev/EventManagerApp

Repository files navigation

EventOS — Blazor WebAssembly Event Manager

A full-featured event management platform built with Blazor WebAssembly (.NET 8), developed with assistance from GitHub Copilot.

📋 Grading Criteria Coverage

# 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

🚀 Getting Started

# Prerequisites: .NET 8 SDK
dotnet restore
dotnet run
# → https://localhost:5001

🗂 Project Structure

EventManagerApp/
├── 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

🔑 Key Technical Patterns

  • Two-way binding: @bind / @bind:event="oninput" with EventCallback<T> for parent notification
  • Session state: Singleton SessionStateService using C# Action events + IDisposable unsubscription
  • Routing: @page with optional int parameter; null-guard for missing IDs
  • Validation: EditForm + DataAnnotationsValidator + per-field ValidationMessage
  • Performance: Computed IEnumerable properties; StateHasChanged only inside event callbacks

🤖 GitHub Copilot

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors