Skip to content

Project Overview

Club Wilo Platform is a comprehensive management system for Club Wilo Valdelagrana, a social sports club in El Puerto de Santa María, Cádiz. The platform manages members, padel courts, gym, clinic, restaurant, shop, and events.

Architecture

The platform is built as a Vertical Slices + Screaming Architecture + Modular Monolith with event-driven inter-module communication. Modules never reference each other directly; all communication goes through Wilo.Contracts types.

wilo/
├── src/                           .NET backend projects
│   ├── Wilo.Api/                  Composition root (ASP.NET 10 + Minimal APIs)
│   ├── Wilo.Common/               Shared kernel (zero project refs — pure utilities)
│   ├── Wilo.Contracts/            Inter-module contracts (events, requests, DTOs)
│   ├── Wilo.Infrastructure/       Technical cross-cutting (email, storage, outbox, audit)
│   ├── Wilo.Modules.Identity/     Authentication & Identity
│   ├── Wilo.Modules.Members/      Member Management
│   └── Wilo.Modules.Storage/      File storage endpoints
├── sites/                         Client applications
│   └── Wilo.App/                  Vue 3 SPA (Vite + TypeScript)
├── services/                      Backend services
│   └── Wilo.Email/                React Email + Hono renderer (Bun/TypeScript)
├── webs/                          Public-facing websites
│   └── Wilo.Docs/                 VitePress documentation (this site)
└── tests/                         Test projects
    ├── Wilo.Api.UnitTests/
    ├── Wilo.Api.IntegrationTests/
    ├── Wilo.ArchitectureTests/
    ├── Wilo.Modules.Identity.Tests/
    ├── Wilo.Modules.Members.Tests/
    └── Wilo.Modules.Storage.Tests/

Project Dependencies

ProjectReferencesCANNOT reference
Wilo.CommonNuGet packages onlyAny project
Wilo.ContractsWilo.CommonModules, Infrastructure, Api
Wilo.InfrastructureWilo.Common, Wilo.ContractsModules, Api
Wilo.Modules.*Wilo.Common, Wilo.Contracts, Wilo.InfrastructureOther modules, Api
Wilo.ApiEverything

Business Modules

The platform delivers 25 modules across incremental phases:

ModuleDescription
Platform / IdentityCore user management, authentication, RBAC
MembersMembership management and club operations
Marketing & CRMCustomer relationship and campaigns
ShopMerchandise and e-commerce
ClinicHealth and wellness services
PadelCourt reservations and competitions
BoxGroup fitness classes and attendance
Personal TrainingTrainer scheduling and programs
RestaurantMenu, orders, and reservations
Events & CompetitionsSports events and leaderboards
AdministrationBilling, banking, and operations
SupportHelp center and ticket system

Cross-Cutting Services

Shared modules used by multiple business modules:

  • Identity — JWT auth, HttpOnly cookies, RBAC, sessions
  • Audit — Immutable audit logs in ClickHouse via outbox pipeline
  • Storage — MinIO-backed file storage with presigned URLs (S3-compatible)
  • Email — MailKit SMTP + React Email template rendering
  • Notifications — Multi-channel notification delivery
  • Reservations — Shared booking engine
  • Billing — Invoice and payment processing
  • Inventory — Stock management
  • Staff Scheduling — Work schedules and shifts
  • Communication — Internal messaging
  • Promotions — Discounts and campaigns
  • Reports — Analytics and data export

Current Phase

Phases 0–2 complete. The platform has full member management, subscriptions, and authentication infrastructure.

PhaseDescriptionStatus
0Base infrastructure✅ Complete
1aOutbox Pattern✅ Complete
1bAudit Logging✅ Complete
1cRBAC & Permissions✅ Complete
1dAuthentication & Identity✅ Complete
2Member Management✅ Complete

See the Architecture Overview for technical details.