{"id":33409211,"url":"https://github.com/clifftech123/aspirecleanarch.net10","last_synced_at":"2026-05-01T21:02:09.309Z","repository":{"id":325780818,"uuid":"1102343102","full_name":"Clifftech123/AspireCleanArch.Net10","owner":"Clifftech123","description":"Enterprise-grade e-commerce platform built with .NET 10, Aspire, Clean Architecture, CQRS, DDD, gRPC, RabbitMQ, and EF Core. Features vendor management, order processing, payment integration, and real-time event-driven architecture.","archived":false,"fork":false,"pushed_at":"2025-11-23T10:09:16.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-23T12:09:12.172Z","etag":null,"topics":["clean-architecture","cqrs","ddd","domain-driven-design","dotnet","dotnet-aspire","ecommerce","entity-framework-core","grpc","jwt-authentication","masstransit","payment-gateway","rabbitmq","redis"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Clifftech123.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-23T09:31:19.000Z","updated_at":"2025-11-23T10:09:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Clifftech123/AspireCleanArch.Net10","commit_stats":null,"previous_names":["clifftech123/aspirecleanarch.net10"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Clifftech123/AspireCleanArch.Net10","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clifftech123%2FAspireCleanArch.Net10","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clifftech123%2FAspireCleanArch.Net10/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clifftech123%2FAspireCleanArch.Net10/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clifftech123%2FAspireCleanArch.Net10/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clifftech123","download_url":"https://codeload.github.com/Clifftech123/AspireCleanArch.Net10/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clifftech123%2FAspireCleanArch.Net10/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32512670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clean-architecture","cqrs","ddd","domain-driven-design","dotnet","dotnet-aspire","ecommerce","entity-framework-core","grpc","jwt-authentication","masstransit","payment-gateway","rabbitmq","redis"],"created_at":"2025-11-23T18:08:50.019Z","updated_at":"2026-05-01T21:02:09.302Z","avatar_url":"https://github.com/Clifftech123.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿\n\n[![.NET](https://img.shields.io/badge/.NET-1.0-512BD4?logo=dotnet)](https://dotnet.microsoft.com/)\n[![Aspire](https://img.shields.io/badge/Aspire-1.0-512BD4?logo=dotnet)](https://learn.microsoft.com/en-us/dotnet/aspire/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Build](https://img.shields.io/badge/build-passing-brightgreen.svg)]()\n\n\u003e **Enterprise-grade e-commerce platform** built with modern .NET technologies, Clean Architecture, CQRS, Domain-Driven Design, gRPC, and Event-Driven Architecture.\n\n![Architecture Diagram](docs/architecture-diagram.png)\n\n---\n\n## ✨ Features\n\n###  **Multi-Vendor Marketplace**\n- Vendor registration and approval workflow\n- Product catalog management\n- Real-time inventory tracking\n- Commission-based revenue model\n- Vendor analytics dashboard\n\n###  **Order Management**\n- Shopping cart with real-time stock validation\n- Multi-vendor order support\n- Order lifecycle tracking (Pending → Delivered)\n- Cancellation and refund workflows\n- Order history and tracking\n\n###  **Payment Processing**\n- Multiple payment methods (Credit Card, PayPal, Wallet)\n- Stripe and PayPal integration\n- Secure payment processing\n- Automated refund handling\n- Payment history and receipts\n\n###  **User Management**\n- ASP.NET Core Identity integration\n- JWT-based authentication\n- Role-based authorization (Customer, Vendor, Admin)\n- User profiles and address management\n- Email verification\n\n###  **Admin Dashboard**\n- System-wide metrics and analytics\n- Vendor approval and management\n- Order oversight\n- Revenue tracking\n- Real-time monitoring\n\n---\n\n##  Architecture\n\n\n### **Communication Patterns**\n\n- **REST API** - External client communication\n- **gRPC** - Internal service-to-service synchronous calls\n- **RabbitMQ** - Asynchronous event-driven messaging\n- **Redis** - Distributed caching\n\n---\n\n##  Technology Stack\n\n### **Backend**\n- **.NET 10** - Latest .NET framework\n- **ASP.NET Core** - Web API framework\n- **Entity Framework Core 10** - ORM\n- **MediatR** - CQRS implementation\n- **FluentValidation** - Input validation\n- **AutoMapper** - Object mapping\n\n### **Messaging \u0026 Communication**\n- **RabbitMQ** - Message broker\n- **MassTransit** - Distributed application framework\n- **gRPC** - High-performance RPC framework\n- **SignalR** - Real-time communication \n\n### **Data \u0026 Caching**\n- **SQL Server** - Primary database\n- **Redis** - Distributed cache\n\n\n### **Authentication \u0026 Security**\n- **ASP.NET Core Identity** - User management\n- **JWT Bearer** - Token-based authentication\n- **BCrypt** - Password hashing\n\n### **External Integrations**\n- **Stripe** - Payment processing\n- **PayPal** - Alternative payment method\n- **SendGrid** - Email notifications\n\n### **DevOps \u0026 Monitoring**\n- **.NET Aspire** - Cloud-native orchestration\n- **Docker** - Containerization\n- **OpenTelemetry** - Distributed tracing\n- **Serilog** - Structured logging\n- **Health Checks** - Service health monitoring\n\n### **Testing**\n- **xUnit** - Unit testing framework\n- **FluentAssertions** - Assertion library\n- **Moq/NSubstitute** - Mocking framework\n- **Testcontainers** - Integration testing\n\n---\n\n## 📁 Project Structure\n\n```\nAspireCleanArch.NetI0/\n├── src/\n│   ├── AspireCleanArch.Shared/              # Shared DTOs, Events, Protos\n│   ├── AspireCleanArch.Domain/              # Domain entities \u0026 business logic\n│   ├── AspireCleanArch.Application/         # CQRS, Use cases\n│   ├── AspireCleanArch.Infrastructure/      # EF Core, RabbitMQ, gRPC clients\n│   ├── AspireCleanArch.Api/                 # REST API \u0026 gRPC servers\n│   └── AspireCleanArch.AppHost/             # Aspire orchestration\n│\n├── tests/\n│   ├── Domain.Tests/                        # Domain unit tests\n│   ├── Application.Tests/                   # Application tests\n│   └── Api.Tests/                           # Integration tests\n│\n├── docs/                                     # Documentation\n├── Directory.Packages.props                  # Centralized package management\n└── Directory.Build.props                     # Common build properties\n```\n\n---\n\n##  Getting Started\n\n### **Prerequisites**\n\n- [.NET 10 SDK](https://dotnet.microsoft.com/download)\n- [Docker Desktop](https://www.docker.com/products/docker-desktop)\n- [Visual Studio 2022](https://visualstudio.microsoft.com/) or [VS Code](https://code.visualstudio.com/)\n- [SQL Server](https://www.microsoft.com/sql-server) (or use Docker)\n- [RabbitMQ](https://www.rabbitmq.com/) (or use Docker)\n\n### **Installation**\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/Clifftech123/AspireCleanArch.Net10.git\n   \n   ```\n\n\n### **Using Docker Compose** \n\n```bash\ndocker-compose up -d\n```\n\n---\n\n## 🧪 Running Tests\n\n```bash\n# Run all tests\ndotnet test\n\n# Run with coverage\ndotnet test --collect:\"XPlat Code Coverage\"\n\n# Run specific test project\ndotnet test tests/AspireCleanArch.Domain.Tests\n```\n\n\n\n##  Key Design Patterns\n\n- **Clean Architecture** - Clear separation of concerns\n- **CQRS** - Command Query Responsibility Segregation\n- **Domain-Driven Design** - Rich domain models\n- **Repository Pattern** - Data access abstraction\n- **Unit of Work** - Transaction management\n- **Result Pattern** - Functional error handling\n- **Outbox Pattern** - Reliable event publishing\n- **Gateway Pattern** - External service abstraction\n\n---\n\n##  Domain Model\n\n### **Core Entities**\n\n- **Vendor** - Marketplace sellers\n- **Product** - Product catalog\n- **Order** - Customer orders\n- **OrderItem** - Order line items\n- **Payment** - Payment transactions\n- **User** - System users\n\n### **Entity Relationships**\n\n```\nVendor (1) ──► (N) Product\nUser (1) ──► (N) Order\nOrder (1) ──► (N) OrderItem\nOrder (1) ──► (1) Payment\nOrderItem (N) ──► (1) Product\nOrderItem (N) ──► (1) Vendor\n```\n\n---\n\n##  Event Flow\n\n### **Order Creation Flow**\n\n```\n1. User creates order (REST API)\n2. Order Service validates products (gRPC → Vendor Service)\n3. Order Service reserves stock (gRPC → Vendor Service)\n4. Order Service creates order (saves to database)\n5. Order Service publishes OrderPlacedEvent (RabbitMQ)\n6. Payment Service consumes event → processes payment\n7. Payment Service publishes PaymentSucceededEvent (RabbitMQ)\n8. Order Service consumes event → confirms order\n```\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclifftech123%2Faspirecleanarch.net10","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclifftech123%2Faspirecleanarch.net10","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclifftech123%2Faspirecleanarch.net10/lists"}