ECommerceApp, .NET 9 kullanılarak geliştirilmiş modern bir e-ticaret web uygulamasıdır. Clean Architecture (Temiz Mimari) prensiplerine uygun olarak tasarlanmış ve katmanlı mimari yapısı ile ölçeklenebilir bir yapıya sahiptir.
Proje, Clean Architecture prensiplerine uygun olarak 4 ana katmandan oluşmaktadır:
- Domain Layer - İş mantığı ve varlıklar
- Infrastructure Layer - Veri erişimi ve dış servisler
- Application Layer - Uygulama servisleri ve iş kuralları
- Presentation Layer - Kullanıcı arayüzü ve API'ler
- Admin: Sistem yönetimi, kullanıcı ve ürün yönetimi
- Seller: Ürün ekleme, düzenleme ve satış yönetimi
- User: Alışveriş yapma, ürün inceleme
- Ürün kategorileri ve arama
- Sepet yönetimi
- Ürün değerlendirme ve yorumları
- Kullanıcı profili yönetimi
- Admin ve satıcı panelleri
- Responsive tasarım (Bootstrap 5)
- Modern ve kullanıcı dostu arayüz
- Font Awesome ikonları
- Türkçe dil desteği
- .NET 9 - Ana framework
- ASP.NET Core MVC - Web framework
- Entity Framework Core 9 - ORM
- SQL Server - Veritabanı
- AutoMapper - Nesne eşleme
- Autofac - Dependency Injection
- ASP.NET Core Identity - Kimlik doğrulama
- Bootstrap 5 - CSS framework
- jQuery - JavaScript kütüphanesi
- Font Awesome 6 - İkon kütüphanesi
- Razor Views - Template engine
ECommerceApp/
├── ECommerceApp.DomainLayer/ # Domain katmanı
│ ├── Entities/ # Varlıklar
│ │ ├── Concrete/ # Somut varlıklar
│ │ │ ├── AppUser.cs # Kullanıcı varlığı
│ │ │ ├── Product.cs # Ürün varlığı
│ │ │ ├── Category.cs # Kategori varlığı
│ │ │ ├── ProductReview.cs # Ürün değerlendirmesi
│ │ │ └── AppRole.cs # Rol varlığı
│ │ └── Interface/ # Varlık arayüzleri
│ ├── Repository/ # Repository arayüzleri
│ └── UnitOfWork/ # Unit of Work arayüzü
├── ECommerceApp.InfrastructureLayer/ # Altyapı katmanı
│ ├── Context/ # DbContext
│ ├── Repository/ # Repository implementasyonları
│ ├── Mapping/ # Entity Framework mapping'leri
│ ├── Data/ # Seed data
│ └── UnitOfWork/ # Unit of Work implementasyonu
├── ECommerceApp.ApplicationLayer/ # Uygulama katmanı
│ ├── Services/ # İş mantığı servisleri
│ │ ├── Interface/ # Servis arayüzleri
│ │ └── Concrete/ # Servis implementasyonları
│ ├── Model/DTOs/ # Data Transfer Objects
│ ├── Mapper/ # AutoMapper konfigürasyonu
│ └── IOC/ # Dependency Injection
└── ECommerceApp.PresentationLayer/ # Sunum katmanı
├── Controllers/ # MVC Controller'ları
├── Views/ # Razor View'ları
├── Areas/ # Area'lar (Admin, Seller)
├── Models/ # View Model'ler
└── wwwroot/ # Statik dosyalar
- AppUser: Kullanıcı bilgileri (Identity tabanlı)
- AppRole: Kullanıcı rolleri
- Product: Ürün bilgileri
- Category: Kategori bilgileri
- ProductReview: Ürün değerlendirmeleri
- AppUserToProduct: Kullanıcı-ürün ilişkisi
- Kullanıcılar rollere sahip olabilir (Admin, Seller, User)
- Ürünler kategorilere ait olabilir
- Ürünler satıcılara ait olabilir
- Kullanıcılar ürünleri değerlendirebilir
- .NET 9 SDK
- SQL Server (Express veya üzeri)
- Visual Studio 2022 veya VS Code
-
Projeyi klonlayın
git clone https://github.com/SametDulger/ECommerceApp.git cd ECommerceAppProject
-
Veritabanı bağlantısını yapılandırın
ECommerceApp.PresentationLayer/appsettings.json
dosyasındaki connection string'i güncelleyin
"ConnectionStrings": { "DefaultConnection": "Server=YOUR_SERVER;Database=ECommerceApp;Trusted_Connection=True;MultipleActiveResultSets=True;TrustServerCertificate=True;" }
-
Veritabanını oluşturun
cd ECommerceApp.PresentationLayer dotnet ef database update
-
Projeyi çalıştırın
dotnet run
-
Tarayıcıda açın
https://localhost:5001
Uygulama ilk çalıştırıldığında aşağıdaki kullanıcılar otomatik olarak oluşturulur:
Rol | Kullanıcı Adı | E-posta | Şifre |
---|---|---|---|
Admin | admin | [email protected] | Admin123! |
Seller | seller | [email protected] | Seller123! |
User | user | [email protected] | User123! |
- Kayıt ol veya giriş yap
- Ürünleri kategorilere göre keşfet
- Ürün detaylarını incele
- Sepete ürün ekle
- Ürün değerlendirmesi yap
- Profil bilgilerini güncelle
- Satıcı hesabıyla giriş yap
- Satıcı paneline eriş
- Ürün ekle, düzenle, sil
- Satış istatistiklerini görüntüle
- Ürün stoklarını yönet
- Admin hesabıyla giriş yap
- Admin paneline eriş
- Kullanıcıları yönet
- Kategorileri yönet
- Tüm ürünleri görüntüle ve yönet
- Sistem istatistiklerini incele
- Session tabanlı sepet yönetimi
- Ürün ekleme/çıkarma
- Miktar güncelleme
- Sepet özeti
- 1-5 yıldız puanlama sistemi
- Yorum yazma
- Ortalama puan hesaplama
- Değerlendirme sayısı
- Ürün adına göre arama
- Kategori bazlı filtreleme
- Fiyat aralığı filtreleme
- Mobil uyumlu arayüz
- Bootstrap 5 grid sistemi
- Touch-friendly butonlar
- ASP.NET Core Identity ile kimlik doğrulama
- Role-based authorization
- CSRF koruması
- Input validation
- SQL injection koruması
- Entity Framework Core ile optimize edilmiş sorgular
- Lazy loading ve eager loading
- Memory cache kullanımı
- Statik dosya optimizasyonu
- Ödeme sistemi entegrasyonu
- E-posta bildirimleri
- Sipariş takip sistemi
- Çoklu dil desteği
- API endpoints
- Mobil uygulama
- Gelişmiş arama (Elasticsearch)
- Redis cache
- Docker containerization
- Fork yapın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature
) - Değişikliklerinizi commit edin (
git commit -m 'Add some amazing feature'
) - Branch'inizi push edin (
git push origin feature/amazing-feature
) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır.
Not: Bu proje eğitim amaçlı geliştirilmiştir ve production ortamında kullanmadan önce güvenlik testleri yapılması önerilir.