Bu repository, Murat Yücedağ’ın Udemy üzerindeki .Net Core MultiShop Mikroservis E-Ticaret kursu kapsamında, eğitim sürecim boyunca geliştirdiğim MultiShop projesini içermektedir. Bu proje, kursta edinilen teorik bilgilerin uygulamaya dökülmesini sağlamak amacıyla yapılandırılmış, gerçek dünya senaryolarına uygun şekilde, mikroservis mimarisi temel alınarak geliştirilmiştir.
MultiShop projesi, modern yazılım mimarilerine uygun olarak geliştirilmiş, mikroservis mimarisi ile çalışan ölçeklenebilir bir e-ticaret platformudur. Kullanıcılar sisteme ziyaretçi ya da kayıtlı kullanıcı olarak giriş yapabilir, ürünleri inceleyebilir, sepetine ekleyebilir, sipariş verebilir ve bu siparişleri takip edebilir.
Proje, hem frontend hem de backend tarafında farklı teknolojileri ve veritabanlarını entegre ederek yüksek erişilebilirlik, modülerlik, bağımsız geliştirme ve kolay ölçeklenebilirlik gibi mikroservislerin temel avantajlarını sunar.
Proje aşağıdaki gibi katmanlı bir mimariye sahiptir:
ApiGateway
├── MS.OcelotGateway
Frontends
├── MS.UI.DtoLayer
└── MS.WebUI
IdentityServer
└── MS.IdentityServer
RapidApi
└── MS.RapidApiWebUI
Services
├── Basket
├── Cargo
├── Catalog
├── Comment
├── Discount
├── Image
├── Message
├── Order
├── Payment
├── RabbitMQMessage
└── SignalRRealTimeApi
Aşağıdaki diyagram, projenin katmanlarını ve servisler arası iletişimi göstermektedir.

- 🤖 ASP.NET Core 8.0 Web Application
- 🌐 ASP.NET Core Web API
- 💾 Entity Framework Core
- 💾 Dapper
- 🚀 RapidAPI
- 🏛️ Onion Architecture
- 🏛️ N-Tier Architecture
- 📜 CQRS Design Pattern
- 📜 Mediator Design Pattern
- 📜 Repository Design Pattern
- 🔒 IdentityServer4
- 🪙 Json Web Token (JWT)
- 📧 MailKit
- 🌀 Ocelot API Gateway
- 🔍 Discovery
- 🗃️ MSSQL
- 🐘 PostgreSQL
- 🍃 MongoDB
- 🚀 Redis
- ☁️ Google Cloud Storage
- 🐇 RabbitMQ
- 🔄 SignalR
- 🐳 Docker
- 🛠️ Postman
- 🛠️ Swagger
- 🖥️ DBeaver
- 📝 HTML
- 🖌️ CSS
- ⚡ JavaScript
- 📐 Bootstrap
- 🌐 Localization
Aşağıdaki yazılımların sisteminizde kurulu olması gerekir:
- .NET 8.0 SDK
- Docker
- Visual Studio 2022+ veya Rider
- DBeaver (Opsiyonel - Veritabanı kontrolü için)
- Projeyi Klonlayın
git clone https://github.com/zehraseren/MultiShopProject
cd multishopproject
- Docker Servislerini Başlatın
docker-compose up -d
Docker ile birlikte şunlar ayağa kalkacaktır:
- MSSQL, MongoDB, Redis, PostgreSQL
- RabbitMQ
- Ocelot Gateway
- IdentityServer
- Mikroservislerin bağlı olduğu veritabanları
- Veritabanlarını Oluşturun ve Migrationları Uygulayın
Visual Studio üzerinde aşağıdaki servis projelerine sağ tıklayıp
Set as Startup Projectseçin ve migrationları çalıştırın:
Komut satırından çalıştırmak isterseniz:
cd Services/Catalog/MS.Catalog
dotnet ef database update
(Tüm servisler için bu işlemi tekrarlayın.)
🧠 4. Servisleri Çalıştırın Servisleri sırasıyla aşağıdaki sırayla çalıştırmanız önerilir:
- MS.IdentityServer
- MS.OcelotGateway
- MS.WebUI
- Mikroservisler (Basket, Catalog, Order, Payment, vb.)
Visual Studio'da Solution Items altındaki
.slndosyasını açarak çoklu başlatmayı da ayarlayabilirsiniz.
- Uygulamaya Erişim
- WebUI (Kullanıcı Arayüzü): http://localhost:5000
- Ocelot Gateway: http://localhost:5001
- Swagger (API Dokümantasyonları): -> http://localhost:7070/swagger/index.html (örnek: Catalog API)
Diğer servislerin portlarına göre değişkenlik gösterebilir.
- Test Araçları (Opsiyonel)
- API testleri için Postman veya Swagger UI kullanılabilir.
- Geliştirme sırasında log takibi için Docker loglarını izleyebilirsiniz:
docker logs -f ms.catalog
📌 Zehra Şeren
📧 [email protected]
🔗 LinkedIn
Bu proje açık kaynak değildir ve yalnızca eğitim amaçlı kullanılabilir.




