پروژه EduShopBackend یک API قدرتمند و مقیاسپذیر برای فروشگاه اینترنتی است که با استفاده از ASP.NET Core Web API توسعه داده شده است. این پروژه به صورت ماژولار طراحی شده و از معماری Clean Architecture بهره میبرد. تمامی بخشهای آن از یکدیگر مستقل هستند و میتوانند به صورت جداگانه توسعه داده شوند.
این پروژه در کنار EduShopClient (فرانتاند توسعهیافته با Angular) یک فروشگاه اینترنتی کامل و حرفهای را تشکیل میدهد.
✅ استفاده از Clean Architecture برای جداسازی لایهها و افزایش خوانایی کد
✅ استفاده از CQRS برای مدیریت درخواستها و بهینهسازی عملکرد
✅ استفاده از JWT برای احراز هویت کاربران
✅ پشتیبانی از Repository Pattern و Unit Of Work
✅ بهرهگیری از Fluent Validation برای اعتبارسنجی درخواستها
✅ استفاده از Redis برای کش کردن دادهها و افزایش سرعت
✅ پرداخت آنلاین از طریق زرین پال
✅ پشتیبانی از Docker و Docker-Compose برای اجرای آسان سرویسها
✅ Unit Testing با استفاده از XUnit و NUnit
✅ پشتیبانی از پایگاههای داده مختلف (SQL Server, PostgreSQL)
✅ پشتیبانی از GitHub Actions برای CI/CD
برای اجرای این پروژه، نیاز به نرمافزارهای زیر خواهید داشت:
- Visual Studio 2022 یا جدیدتر
- .NET 8 SDK
- SQL Server / PostgreSQL
- Docker & Docker-Compose (اختیاری)
- Redis (اختیاری برای بهبود عملکرد)
ابتدا سورس کد را از GitHub کلون کنید:
git clone https://github.com/aliChavoshi/EduShopBackend.git
cd EduShopBackendفایل appsettings.json را باز کنید و تنظیمات دیتابیس را تغییر دهید:
"ConnectionStrings": {
"DefaultConnection": "Server=YOUR_SERVER;Database=EduShopDB;User Id=YOUR_USER;Password=YOUR_PASSWORD;"
}برای راهاندازی دیتابیس، دستورات زیر را اجرا کنید:
dotnet ef database updatedotnet runEduShopBackend/
│── src/
│ ├── Application/ # لایهی منطقی و پردازش درخواستها
│ ├── Domain/ # مدلهای اصلی پروژه
│ ├── Infrastructure/ # ارتباط با دیتابیس و سرویسهای جانبی
│ ├── Presentation/ # کنترلرها و API های پروژه
│── tests/ # تستهای واحد
│── docker-compose.yml # تنظیمات Docker
│── appsettings.json # تنظیمات پروژه
ورود به سیستم
POST /api/auth/login{
"email": "user@example.com",
"password": "password123"
}ثبتنام
POST /api/auth/register{
"name": "Ali Chavoshi",
"email": "ali@example.com",
"password": "password123"
}دریافت لیست محصولات
GET /api/productsافزودن محصول جدید
POST /api/productsدریافت سبد خرید کاربر
GET /api/basketافزودن آیتم به سبد خرید
POST /api/basket/addثبت سفارش جدید
POST /api/ordersبرای تست پروژه از XUnit استفاده شده است. اجرای تستها:
dotnet test- Fork کنید، تغییرات خود را اعمال کنید و Pull Request ارسال کنید.
- پیشنهادات و مشکلات را از طریق GitHub Issues ثبت کنید.
- فرانتاند پروژه (EduShopClient): EduShopClient GitHub
- صفحه آموزش دوره: دوره آموزش طراحی فروشگاه اینترنتی
مدرس: علی چاوشی 🚀