ECommerce Management System ?
A robust and scalable ECommerce backend built with ASP.NET Core 9.0, following Clean Architecture principles and utilizing MongoDB for data persistence.
? Technologies Used
Back-End Framework: ASP.NET Core 9.0
Database: MongoDB
Identity: ASP.NET Identity with MongoDB support (AspNetCore.Identity.Mongo)
Architecture: Clean Architecture / Onion Architecture
Messaging/Pattern: MediatR (CQRS Pattern)
Validation: FluentValidation
Mapping: AutoMapper
Authentication: JWT (JSON Web Token) with custom validation middleware
Documentation: Swagger/OpenAPI (Swashbuckle)
Email Service: MailKit & MimeKit
Security: BCrypt.Net for password hashing
? Project Structure
The project follows a clean separation of concerns:
ECommerce.API: Presentation Layer (Controllers, Middleware, Program.cs)
ECommerce.Core: Application Layer (Business Logic, MediatR Handlers, Validators, Mapping)
ECommerce.Domain: Domain Layer (Entities, Models)
ECommerce.Infrastructure: Data Layer (MongoDB Context, Repositories)
ECommerce.Services: Infrastructure Services (Email, File Upload)
ECommerce.Shared: Shared Layer (DTOs, Project Settings, Utility Classes)
✨ Key Features
User Authentication: Secure Login, Registration, and Identity Management.
Role-Based Access: Authorization handled via JWT roles.
Product & Inventory: Complete management for Products, Categories, and Subcategories.
Email Notifications: Automated email services for user verification and alerts.
File Management: Image and document upload support for products and users.
Interactive Documentation: Full Swagger UI integration for API exploration and testing.
Resilient Middleware: Global error handling and JWT validation filters.
?️ Getting Started
Prerequisites
.NET SDK 9.0
MongoDB Server (Local or Cloud)
Configuration
Update appsettings.json with your MongoDB credentials:
"ConnectionStrings": {
"MongoDB": "your_mongodb_connection_string",
"DatabaseName": "ECommerceDB"
}
Configure your JWT settings and Mail settings in appsettings.json.
Running the API
Clone the repository.
Open Ecommerce.API.sln.
Set ECommerce.APi as the Startup Project.
Press F5 to run or use CLI:
dotnet run --project ECommerce.APi
Swagger will open automatically at the root URL.