feat(frontend): Replace React with Blazor frontend

This commit is contained in:
2025-08-30 19:29:40 -04:00
parent 3b9c074bc7
commit 6063ed62e0
82 changed files with 22786 additions and 3435 deletions

View File

@@ -7,7 +7,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
NimbusFlow is a scheduling system with a **monorepo structure** containing separate backend and frontend applications:
- **Backend**: Python-based scheduling service using SQLite with a repository pattern
- **Frontend**: React + TypeScript + Vite application
- **Frontend**: .NET Blazor Server application with Bootstrap UI
### Backend Architecture
@@ -33,10 +33,26 @@ backend/
### Frontend Architecture
React application using:
- TypeScript for type safety
- Vite for fast development and building
- ESLint for code linting
.NET 8 Blazor Server application with the following structure:
```
frontend/
├── Components/
│ ├── Layout/ # Layout components (NavMenu, MainLayout)
│ └── Pages/ # Razor pages (Dashboard, Members, Schedules, Services)
├── Models/ # C# models matching backend data structure
├── Services/ # HTTP client services for API communication
└── wwwroot/ # Static files and assets
```
**Key Components:**
- **ApiService** (`Services/ApiService.cs`): HTTP client wrapper for Python backend API communication
- **Models** (`Models/Member.cs`): C# data models (Member, Schedule, Service, Classification, etc.)
- **Razor Components**: Interactive pages for member management, scheduling, and service administration
- **Bootstrap UI**: Responsive design with Bootstrap 5 styling
The frontend communicates with the Python backend via HTTP API calls, expecting JSON responses that match the C# model structure.
## Development Commands
@@ -72,22 +88,28 @@ python main.py
**Setup:**
```bash
cd frontend
npm install
# Restore NuGet packages
dotnet restore
```
**Development:**
```bash
cd frontend
# Start development server
npm run dev
# Start development server (with hot reload)
dotnet watch
# Or run without watch
dotnet run
# Build for production
npm run build
# Run linting
npm run lint
# Preview production build
npm run preview
dotnet build
# Publish for deployment
dotnet publish -c Release
```
**Access:**
- Development: https://localhost:5001 (HTTPS) or http://localhost:5000 (HTTP)
- The application expects the Python backend API to be available at http://localhost:8000/api/
## Core Business Logic
The **SchedulingService** implements a sophisticated member scheduling algorithm: