



A modern, feature-rich e-commerce backend built with .NET Core 8.0, implementing clean architecture principles. This API provides comprehensive endpoints for product management, order processing, payment handling, and customer management, using PostgreSQL for data persistence.
- ✅ CRUD operations for products
- ✅ Product categorization and filtering
- ✅ Brand management
- ✅ Price and inventory tracking
- ✅ Order creation and management
- ✅ Order status tracking
- ✅ Multiple payment methods
- ✅ Order history
- ✅ Secure payment handling
- ✅ Multiple payment methods (Credit Card, PayPal, etc.)
- ✅ Payment status tracking
- ✅ Transaction history
- ✅ Customer profiles
- ✅ Order history
- ✅ Address management
- ✅ Stock level tracking
- ✅ Low stock alerts
- ✅ Stock updates
- ✅ Stock availability checks
RetailShop/
├── API/ # Web API Layer
│ ├── Controllers/ # API endpoints
│ ├── DTOs/ # Data transfer objects
│ ├── Helpers/ # Utility classes
│ └── Middleware/ # Custom middleware
├── Core/ # Domain Layer
│ ├── Entities/ # Domain models
│ ├── Interfaces/ # Core abstractions
│ ├── Services/ # Domain services
│ └── Specifications/ # Query specifications
└── Infrastructure/ # Data Layer
├── Data/ # Database context
├── Repositories/ # Data access
└── Services/ # External services
- 🏛️ Clean Architecture
- 📚 Repository Pattern
- 🔍 Specification Pattern
- ✨ SOLID Principles
- 🔄 DRY (Don’t Repeat Yourself)
Database schema showing relationships between core entities
High-level overview of the application’s data flow
Request/response flow for key operations
- ⚡ .NET Core 8.0
- 🗄️ Entity Framework Core 8.0
- 🐘 PostgreSQL
- 🔄 AutoMapper
- 📚 Swagger/OpenAPI
- .NET Core SDK 8.0
- PostgreSQL
- Visual Studio Code or Visual Studio 2022
- Clone Repository
git clone https://github.com/Floyden-Monteiro/RetailShop.git
cd RetailShop
- Configure Database
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=retailshop;Username=your_username;Password=your_password"
}
}
- Run Migrations
dotnet ef database update -p Infrastructure -s API
- Start Application
cd API
dotnet run
GET /api/products
– List all productsGET /api/products/{id}
– Get product detailsPOST /api/products
– Create productPUT /api/products/{id}
– Update productDELETE /api/products/{id}
– Delete product
GET /api/orders
– List all ordersGET /api/orders/{id}
– Get order detailsPOST /api/orders
– Create orderPUT /api/orders/{id}/status
– Update status
GET /api/payments
– List all paymentsGET /api/payments/{id}
– Get payment detailsPOST /api/payments
– Process paymentGET /api/payments/order/{orderId}
– Get order payment
GET /api/customers
– List all customersGET /api/customers/{id}
– Get customer detailsPOST /api/customers
– Create customerPUT /api/customers/{id}
– Update customer
GET /api/inventory/low-stock
– Check low stockPUT /api/inventory/update-stock/{id}
– Update stockGET /api/inventory/check-stock/{id}
– Check availability
Check Low Stock
GET /api/inventory/low-stock?threshold=5
Update Stock
PUT /api/inventory/update-stock/1
Content-Type: application/json
{
"quantity": 100
}
Check Availability
GET /api/inventory/check-stock/1?quantity=5
- Fork repository
- Create feature branch (
git checkout -b feature/NewFeature
) - Commit changes (
git commit -m 'Add NewFeature'
) - Push to branch (
git push origin feature/NewFeature
) - Open Pull Request

Leave a Reply