Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

duc01226/EasyPlatform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

166 Commits

Repository files navigation

Easy.Platform Framework

.NET 9 Angular 19 Clean Architecture CQRS

Easy.Platform is a comprehensive framework for building enterprise applications with .NET 9 backend and Angular 19 frontend, featuring Clean Architecture, CQRS, Domain-Driven Design, and event-driven patterns.

Quick Navigation

I am a... Start Here Learn More
New Developer Getting Started Learning Paths
Backend Dev Backend Quickref CLAUDE.md Patterns
Frontend Dev Frontend Quickref CLAUDE.md Patterns
AI Agent CLAUDE.md docs/claude/

What is Easy.Platform?

Easy.Platform provides a complete foundation for enterprise application development:

  • Clean Architecture: Four-layer architecture (Domain, Application, Infrastructure, Presentation) ensuring separation of concerns and testability
  • CQRS Pattern: Command Query Responsibility Segregation with fluent validation and event-driven side effects
  • Event-Driven Architecture: Domain events and RabbitMQ message bus for cross-service communication
  • Multi-Database Support: MongoDB, SQL Server, PostgreSQL with unified repository patterns
  • Angular Integration: PlatformVmStore state management, base components, and reactive forms

The framework is battle-tested in production enterprise applications and provides patterns for common challenges like background jobs, data migrations, authorization, and multi-tenancy.


Quick Start (30 seconds)

# Backend
dotnet run --project src/Backend/PlatformExampleApp.TextSnippet.Api
# Frontend
cd src/Frontend && npm install && nx serve playground-text-snippet
# Infrastructure
docker-compose -f src/platform-example-app.docker-compose.yml -f src/platform-example-app.docker-compose.override.yml up -d

Detailed setup: Getting Started Guide


Documentation

Doc Purpose
Getting Started Prerequisites, setup, commands, troubleshooting
Architecture Overview System design, project structure, diagrams
Backend Quickref Backend decision tree and key patterns
Frontend Quickref Frontend decision tree and key patterns
Learning Paths Developer onboarding by role
CLAUDE.md Complete code patterns, AI agent instructions
Business Features Module documentation, features, APIs

Business Documentation: For detailed business module documentation (requirements, workflows, APIs, test specs), see docs/business-features/ with docs/BUSINESS-FEATURES.md as the master index.


AI-Assisted Team Collaboration

This project includes a complete team collaboration system for AI agents, supporting agile workflows from idea capture to release.

Team Roles & Commands

Role Commands Purpose
Product Owner /team-idea, /team-prioritize Capture ideas, backlog prioritization
Business Analyst /team-refine, /team-story PBI refinement, user story creation
QA Engineer /team-test-spec, /team-test-cases Test specification, test case generation
UX Designer /team-design-spec, /team-figma-extract UI specs, Figma design extraction
QC Specialist /team-quality-gate Pre-dev/QA/release quality gates
Project Manager /team-status, /team-dependency, /team-team-sync Status reports, dependency mapping, meetings

Artifact Management

team-artifacts/
├── ideas/ # Raw ideas (IDEA-YYMMDD-NNN)
├── pbis/ # Product Backlog Items (PBI-YYMMDD-NNN)
├── test-specs/ # Test specifications (TS-MOD-NNN)
├── design-specs/ # UI/UX specifications
├── qc-reports/ # Quality gate reports
└── templates/ # Artifact templates

Full guide: Team Collaboration Guide


Architecture Overview

graph TB
 subgraph "Frontend - Nx Workspace"
 subgraph "Apps"
 PLAYGROUND["playground-text-snippet"]
 end
 subgraph "Libraries"
 PLATFORM_CORE["platform-core"]
 PLATFORM_COMP["platform-components"]
 APPS_DOMAINS["apps-domains"]
 end
 PLAYGROUND --> PLATFORM_CORE
 PLAYGROUND --> APPS_DOMAINS
 end
 subgraph "Backend - .NET 9"
 API["TextSnippet.Api"]
 APP["TextSnippet.Application"]
 DOMAIN["TextSnippet.Domain"]
 PERSIST["TextSnippet.Persistence"]
 end
 subgraph "Infrastructure"
 RABBIT["RabbitMQ"]
 REDIS["Redis"]
 DB["MongoDB/SQL/Postgres"]
 end
 PLAYGROUND --> API
 API --> APP
 APP --> DOMAIN
 APP --> PERSIST
 PERSIST --> DB
 APP --> RABBIT
 APP --> REDIS
Loading

Technology Stack

Layer Technologies
Backend .NET 9, ASP.NET Core, CQRS
Frontend Angular 19, TypeScript, RxJS, PlatformVmStore
Data MongoDB, SQL Server, PostgreSQL
Messaging RabbitMQ
Caching Redis
Jobs Hangfire

Full architecture details: Architecture Overview


Project Structure

Backend

src/Platform/ # Easy.Platform framework
├── Easy.Platform/ # Core (CQRS, validation, repositories)
├── Easy.Platform.AspNetCore/ # ASP.NET Core integration
├── Easy.Platform.MongoDB/ # MongoDB patterns
├── Easy.Platform.RabbitMQ/ # Message bus
└── Easy.Platform.*/ # Other modules
src/Backend/ # Example microservice
├── *.Api/ # Web API layer
├── *.Application/ # CQRS handlers, jobs, events
├── *.Domain/ # Entities, domain events
├── *.Infrastructure/ # External concerns (storage, external APIs)
└── *.Persistence*/ # Database implementations

Frontend

src/Frontend/ # Angular 19 Nx workspace
├── apps/
│ └── playground-text-snippet/ # Example app
└── libs/
 ├── platform-core/ # Base classes, utilities
 ├── platform-components/ # Reusable UI components
 ├── apps-domains/ # Business domain code
 ├── apps-domains-components/ # Domain-specific components
 └── apps-shared-components/ # Shared app components

Key Principles

Backend

  1. Repository Pattern: Use IPlatformQueryableRootRepository<TEntity, TKey>
  2. Validation: Use PlatformValidationResult fluent API (never throw)
  3. Side Effects: Use entity event handlers (never in command handlers)
  4. CQRS: Command + Result + Handler in ONE file
  5. DTO Mapping: DTOs own mapping via MapToEntity()

Frontend

  1. Component Hierarchy: AppBaseComponent → Feature Component
  2. State Management: PlatformVmStore for complex state
  3. API Services: Extend PlatformApiService
  4. Subscriptions: Always use untilDestroyed()
  5. CSS Naming: BEM convention (block__element --modifier)

Complete patterns: CLAUDE.md


Development Commands

# Backend
dotnet build src/Easy.Platform.sln
dotnet run --project src/Backend/PlatformExampleApp.TextSnippet.Api
dotnet test [Project].csproj
# Frontend
cd src/Frontend
npm install
nx serve playground-text-snippet
nx build playground-text-snippet
nx test platform-core

Getting Help

  1. Study Examples: src/Backend/ for backend, src/Frontend/apps/playground-text-snippet/ for frontend
  2. Search Codebase: Use grep/glob to find existing patterns
  3. Check Documentation: docs/ directory for guides, CLAUDE.md for patterns
  4. Read Base Classes: Check platform-core source for available APIs

Version Information

  • Platform Version: Easy.Platform 1.0
  • Backend Framework: .NET 9
  • Frontend Framework: Angular 19
  • Last Updated: February 2026

For detailed code patterns and complete examples, see CLAUDE.md and the working examples in src/Backend/.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /