Bu proje, arka uç için mikroservis mimarisi kullanan ve ön uçta React tabanlı bir e-ticaret uygulamasıdır. Aşağıda özellikler, kurulum talimatları ve mimariye dair detaylı bir açıklama bulabilirsiniz.
Bu uygulama, ürün yönetimi ve kullanıcı doğrulama gibi farklı sorumlulukları ele alan çeşitli mikroservisleri barındıran modern bir e-ticaret platformu örneği sunmaktadır. Ön uç React ile, arka uç ise .NET Core ve birkaç mikroservis ile oluşturulmuştur.
- Ürünler, ürün kataloğunu yönetmekten sorumlu
ProductAPI
mikroservisinden çekilmektedir. - Ürün kataloğu, ön uç uygulamada zenginleştirilip görüntülenmektedir, böylece uygulama genelinde tutarlı bir yapı korunmaktadır.
- SignalR kullanılarak gerçek zamanlı bir sohbet servisi oluşturuldu ve arka uçta bir Web API olarak entegre edildi.
- Ön uçta, kullanıcıların sohbet servisine erişebilmesi için bir sohbet butonu yerleştirildi.
- Önceki giriş fonksiyonu kaldırıldı ve uygulama genelinde yetkilendirme sağlayan bir Identity mikroservisi kullanıldı.
- Orijinal giriş sistemi iptal edilmiş olmasına rağmen,
localhost:3000/login
velocalhost:3000/register
adreslerinde bulunan formlar, validasyon yeteneklerini sergilemek amacıyla bırakıldı. Bu formlar, gerekli React validasyon mantığını içermektedir.
- Kritik bileşenlerin güvenilirliğini sağlamak için birim testleri eklendi:
- React: Testler, veri çekme ve giriş işlemlerini kapsamaktadır.
- .NET: Testler,
ProductAPI
mikroservisi içindekiProductRepository
üzerinde yoğunlaşmaktadır.
- Kategoriler/filtreleme bölümünde yer alan arama çubuğu, kullanıcıların arama kriterlerine göre ürünleri filtrelemesini sağlayacak şekilde fonksiyonel hale getirildi.
- Müşteri destek sohbet servisi, yalnızca doğrulanmış kullanıcıların erişebilmesi için
OidcSecure
kullanılarak güvenli hale getirildi. - Identity mikroservisinden alınan kullanıcı verileri, ön uç uygulamasındaki kullanıcı sistemine sorunsuzca entegre edildi, bu sayede uygulama genelinde global olarak tanınır hale geldi.
- Ön Uç:
ecommerce-app-2
dizininde bulunan React.js uygulaması. - Arka Uç:
ecommerceradoreornek
dizininde bulunan .NET Core mikroservisleri, şunları içermektedir:ProductAPI
IdentityAPI
ChatService
(SignalR)- Alışveriş sepeti ve kupon yönetimi için ek mikroservisler.
- Ön uç dizinine gidin:
cd ecommerse-app-2
- Bağımlılıkları yükleyin:
npm install
- React uygulamasını çalıştırın:
npm start
- Uygulamayı açın: Tarayıcınızda http://localhost:3000 adresini açın.
-
Arka uç dizinine gidin:
cd ecommerceradoreornek
-
Mikroservisleri başlatın: Gerekli tüm mikroservislerin çalıştığından emin olun. Bu genellikle Docker üzerinden veya her projeyi Visual Studio veya komut satırı ile ayrı ayrı çalıştırarak yapılabilir.
Bir mikroservisi çalıştırma örneği:
dotnet run --project ./Radore.Services.ProductAPI/ProductAPI.csproj
-
Servislerin çalıştığını doğrulayın: Konfigürasyonda tanımlanan ilgili URL'ler üzerinden servislerin erişilebilir olduğunu doğrulayın.
React birim testlerini çalıştırmak için:
npm test
.NET birim testlerini çalıştırmak için:
dotnet test
Bu testler şunları kapsar:
- React uygulamasında veri çekme ve giriş işlemleri.
- ProductAPI mikroservisinde ürün CRUD işlemleri.
- Global Entegrasyon: Identity mikroservisinden gelen kullanıcı verileri, ön uç kullanıcı sistemine tam entegre edilmiştir, bu sayede veri uygulama genelinde global olarak tanınır hale gelir.
- Ürün Kataloğu: ProductAPI mikroservisinden çekilen ürünler mevcut ürün kataloğuna eklenmiştir, bu da uygulamanın ürün yapısını koruyarak zenginleştirmiştir.
- EcommerceRadoreOrnek içerisindeki frontend MVC projesindeki ürünler kısmı çalışmıyordu. Bu kısım düzeltildi. Role bağlı butonların gösterimi sağlandı.