Files

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

Getting Started

  1. Restore packages:

    dotnet restore
    
  2. Run the application:

    dotnet watch  # with hot reload
    # or
    dotnet run    # without hot reload
    
  3. Access the application:

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:

builder.Services.AddHttpClient<IApiService, ApiService>(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:

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