# NimbusFlow Frontend - Blazor Server Application A modern web application built with .NET 8 Blazor Server for managing member scheduling in the NimbusFlow system. ## Features - **Dashboard**: Overview of system statistics and recent activities - **Member Management**: Complete CRUD operations for choir members - **Schedule Management**: View, accept, decline, and manage member schedules - **Service Management**: Create and manage service events - **Real-time Updates**: Server-side rendering with SignalR for real-time updates - **Responsive Design**: Bootstrap-based UI that works on all devices ## Architecture This Blazor Server application follows a clean architecture pattern: - **Components/Pages**: Razor components for each major feature - **Services**: HTTP client services for backend API communication - **Models**: C# data models matching the Python backend schema - **Layout**: Consistent navigation and layout components ## Prerequisites - .NET 8.0 SDK - Python backend API running on http://localhost:8000/api/ ## Getting Started 1. **Restore packages**: ```bash dotnet restore ``` 2. **Run the application**: ```bash dotnet watch # with hot reload # or dotnet run # without hot reload ``` 3. **Access the application**: - HTTPS: https://localhost:5001 - HTTP: http://localhost:5000 ## API Configuration The application is configured to communicate with the Python backend API. Update the base URL in `Program.cs` if your backend runs on a different port: ```csharp builder.Services.AddHttpClient(client => { client.BaseAddress = new Uri("http://localhost:8000/api/"); }); ``` ## Project Structure ``` ├── Components/ │ ├── Layout/ │ │ ├── MainLayout.razor # Main page layout │ │ └── NavMenu.razor # Navigation menu │ └── Pages/ │ ├── Home.razor # Dashboard page │ ├── Members.razor # Member management │ ├── Schedules.razor # Schedule management │ └── Services.razor # Service management ├── Models/ │ └── Member.cs # Data models ├── Services/ │ ├── IApiService.cs # Service interface │ └── ApiService.cs # HTTP API client ├── wwwroot/ # Static files ├── Program.cs # Application startup └── appsettings.json # Configuration ``` ## Key Features ### Dashboard - System statistics (active members, pending schedules, etc.) - Recent schedule activities - Quick action buttons ### Member Management - List all members with filtering options - Add/edit member information - View member scheduling history - Manage member classifications ### Schedule Management - View all schedules with filtering - Accept/decline pending schedules - Remove schedules - View schedule details ### Service Management - Create and manage service events - View service schedules and assignments - Filter by date and service type ## Development The application uses Blazor Server which provides: - Real-time UI updates via SignalR - Server-side rendering for better performance - C# development throughout the stack - Automatic state management ## Deployment To build for production: ```bash dotnet publish -c Release ``` The published application will be in `bin/Release/net8.0/publish/`. ## Dependencies - ASP.NET Core 8.0 - Blazor Server - Bootstrap 5 (included in template) - System.Text.Json for API serialization