Bu proje, Definex ve Coderspace iş birliğiyle düzenlenen 1 aylık yoğun .NET Bootcamp sürecinin final projesi olarak geliştirilmiştir.
Amaç, gerçek dünya senaryolarına uygun olarak modern teknolojilerle ölçeklenebilir bir e-ticaret sistemi tasarlamaktı.
Frontend tarafında Nuxt (Vue.js), backend tarafında ise .NET Core kullanılarak, mikroservis mimarili bir demo e-ticaret uygulaması oluşturulmuştur.
Bu süreçte yalnızca teknik bilgiler değil, aynı zamanda yazılım mimarisi, proje yönetimi gibi konularda da önemli kazanımlar elde ettim.
💡 Projeye katkı sağlayan değerli bilgi ve yaklaşımları için İbrahim Gökyar hocama,
bu imkânı sağlayan Coderspace ve Definex ekibine teşekkür ederim.
Projeyi bilgisayarınıza klonladıktan sonra aşağıdaki adımları takip ederek sistemi çalıştırabilirsiniz.
Admin girişi için gerekli bilgiler:
👤 Admin Username:
admin
🔒 Admin Password:admin123
Client klasörüne girin ve aşağıdaki komutları çalıştırın:
cd ecommerce-client
npm install
npm run dev
Uygulama varsayılan olarak http://localhost:3000
adresinde çalışacaktır.
Backend tarafında her servisin ayrı ayrı build edilip çalıştırılması gerekir. Örneğin:
cd /Gateway
dotnet run
cd Services/Identity
dotnet run
cd Services/ProductApi
cd Services/MessageService
dotnet run
API Gateway varsayılan olarak
http://localhost:5000
adresinde çalışacaktır. SignalR içinhttp://localhost:5003
adresiyle haberleşiliyor.
- Nuxt.js
- Pinia
- Axios
- Bootstrap
- Swiper
- .NET Core
- SignalR
- Entity Framework Core (EF Core)
- PostgreSQL
- Ocelot
- Cloudinary
youtube linki: https://youtu.be/uoGm5_ZoU4g
Bu Bölümde proje hakkında hangi özellikleri geliştirdiğimi hangi özellikleri ise niye geliştirmediğimi açıklamak isterim. Projeyi sıfırdan herhangi bir template kullanmadan geliştirdim verilen sürede. Dolayısıyla daha iyi yapabileceğim şeyler olduğunu düşünüyorum.
-
Kendi geliştirdiğim Admin Paneli
Ürün ekleme, silme, kullanıcılarla mesajlaşma ve basit bir authentication sistemi içeriyor. -
Ürün Yönetimi
Tüm ürünleri listeleme,Filtreleme, kategoriye göre filtreleme ve ürün detay sayfasına yönlendirme işlemleri. -
Sepet İşlemleri
Kullanıcılar ürünleri sepete ekleyip çıkarabiliyor. -
SignalR Entegrasyonu
Admin ile kullanıcılar arasında gerçek zamanlı mesajlaşma sistemi kuruldu. -
Bildirim Sistemi
Kullanıcılara yapılan işlemler sonrası toast mesajlarıyla bilgilendirme yapılmakta. -
State Yönetimi için Pinia
Uygulamanın global state yönetiminde Pinia kullanıldı. -
Filtreleme Seçenekleri
Tüm ürünler çekildikten sonra üzerinde filtreleme yapılabiliyor. -
Dosya Yükleme
Admin panelinden ürün eklerken yüklenilen fotoğrafı bulut sunucuda tutuyorum. (Backendde cloudinary servisi)
-
Sepet verileri şu an Local Storage'da tutuluyor
Aslında bu yapı, kullanıcıya ait verilerin veritabanında saklanmasıyla daha güvenli ve sürdürülebilir hale getirilebilir. -
Mesaj geçmişi kayboluyor
SignalR entegrasyonu mevcut olsa da, mesajlar kalıcı olarak saklanmıyor. Redis veya benzeri bir cache mekanizması kullanılabilir. -
Kullanıcı Arayüzü (UI)
React ile daha tecrübeli olduğum için Vue tarafında UI geliştirmelerine çok fazla odaklanamadım. Temel bir görünümle ilerledim. -
Admin Girişi için Yetkilendirme Eksikliği
Şu an admin paneline giriş hardcoded şekilde sağlanıyor. Token servisinden token üretilip cliente gönderiliyor ve saklanıyor. Güvenlik açısından (xss) tokenı çerezlerle gönderebilirdim.