Skip to content

zehraseren/MultiShopProject

Repository files navigation

🛒 MultiShop (.NET CORE 8.0 MICROSERVICE ARCHITECTURE)

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.

🎯Proje Hakkında

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 Görselleri

Localization Introduction Ekran görüntüsü 2025-06-15 012518 Ekran görüntüsü 2025-06-15 012541 Ekran görüntüsü 2025-06-15 012452

🧱 Mimari Yapı

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. diagram

🛠 Kullanılan Teknolojiler ve Araçlar

🧠 Backend & API Teknolojileri

  • 🤖 ASP.NET Core 8.0 Web Application
  • 🌐 ASP.NET Core Web API
  • 💾 Entity Framework Core
  • 💾 Dapper
  • 🚀 RapidAPI

🏗️ Mimari & Tasarım Desenleri

  • 🏛️ Onion Architecture
  • 🏛️ N-Tier Architecture
  • 📜 CQRS Design Pattern
  • 📜 Mediator Design Pattern
  • 📜 Repository Design Pattern

🔐 Kimlik Doğrulama & Güvenlik

  • 🔒 IdentityServer4
  • 🪙 Json Web Token (JWT)
  • 📧 MailKit

🚪 API Yönlendirme ve Gateway

  • 🌀 Ocelot API Gateway
  • 🔍 Discovery

💾 Veritabanları & Veri Yönetimi

  • 🗃️ MSSQL
  • 🐘 PostgreSQL
  • 🍃 MongoDB
  • 🚀 Redis
  • ☁️ Google Cloud Storage
  • 🐇 RabbitMQ

📡 Gerçek Zamanlı İletişim

  • 🔄 SignalR

⚙️ Geliştirme ve Test Araçları

  • 🐳 Docker
  • 🛠️ Postman
  • 🛠️ Swagger
  • 🖥️ DBeaver

🎨 Frontend Teknolojileri

  • 📝 HTML
  • 🖌️ CSS
  • ⚡ JavaScript
  • 📐 Bootstrap

🌍 Uluslararasılaştırma

  • 🌐 Localization

🚀 Nasıl Çalıştırılır?

✅ Gereksinimler

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)
  1. Projeyi Klonlayın
git clone https://github.com/zehraseren/MultiShopProject
cd multishopproject
  1. 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ı
  1. Veritabanlarını Oluşturun ve Migrationları Uygulayın Visual Studio üzerinde aşağıdaki servis projelerine sağ tıklayıp Set as Startup Project seç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:

  1. MS.IdentityServer
  2. MS.OcelotGateway
  3. MS.WebUI
  4. Mikroservisler (Basket, Catalog, Order, Payment, vb.)

Visual Studio'da Solution Items altındaki .sln dosyasını açarak çoklu başlatmayı da ayarlayabilirsiniz.

  1. Uygulamaya Erişim
  1. 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

Geliştirici

📌 Zehra Şeren
📧 [email protected]
🔗 LinkedIn


Lisans

Bu proje açık kaynak değildir ve yalnızca eğitim amaçlı kullanılabilir.