Skip to content

SametDulger/ECommerceApp

Repository files navigation

ECommerceApp - E-Ticaret Uygulaması

📋 Proje Hakkında

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.

🏗️ Mimari Yapı

Proje, Clean Architecture prensiplerine uygun olarak 4 ana katmandan oluşmaktadır:

📁 Katmanlar

  1. Domain Layer - İş mantığı ve varlıklar
  2. Infrastructure Layer - Veri erişimi ve dış servisler
  3. Application Layer - Uygulama servisleri ve iş kuralları
  4. Presentation Layer - Kullanıcı arayüzü ve API'ler

🚀 Özellikler

👥 Kullanıcı Rolleri

  • 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

🛍️ E-Ticaret Özellikleri

  • Ürün kategorileri ve arama
  • Sepet yönetimi
  • Ürün değerlendirme ve yorumları
  • Kullanıcı profili yönetimi
  • Admin ve satıcı panelleri

🎨 Kullanıcı Arayüzü

  • Responsive tasarım (Bootstrap 5)
  • Modern ve kullanıcı dostu arayüz
  • Font Awesome ikonları
  • Türkçe dil desteği

🛠️ Teknolojiler

Backend

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

Frontend

  • Bootstrap 5 - CSS framework
  • jQuery - JavaScript kütüphanesi
  • Font Awesome 6 - İkon kütüphanesi
  • Razor Views - Template engine

📦 Proje Yapısı

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

🗄️ Veritabanı Yapısı

Ana Varlıklar

  • 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

İlişkiler

  • 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

🔧 Kurulum ve Çalıştırma

Gereksinimler

  • .NET 9 SDK
  • SQL Server (Express veya üzeri)
  • Visual Studio 2022 veya VS Code

Kurulum Adımları

  1. Projeyi klonlayın

    git clone https://github.com/SametDulger/ECommerceApp.git
    cd ECommerceAppProject
  2. 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;"
    }
  3. Veritabanını oluşturun

    cd ECommerceApp.PresentationLayer
    dotnet ef database update
  4. Projeyi çalıştırın

    dotnet run
  5. Tarayıcıda açın

    https://localhost:5001
    

Varsayılan Kullanıcılar

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!

🎯 Kullanım Senaryoları

👤 Normal Kullanıcı

  1. Kayıt ol veya giriş yap
  2. Ürünleri kategorilere göre keşfet
  3. Ürün detaylarını incele
  4. Sepete ürün ekle
  5. Ürün değerlendirmesi yap
  6. Profil bilgilerini güncelle

🏪 Satıcı

  1. Satıcı hesabıyla giriş yap
  2. Satıcı paneline eriş
  3. Ürün ekle, düzenle, sil
  4. Satış istatistiklerini görüntüle
  5. Ürün stoklarını yönet

👨‍💼 Admin

  1. Admin hesabıyla giriş yap
  2. Admin paneline eriş
  3. Kullanıcıları yönet
  4. Kategorileri yönet
  5. Tüm ürünleri görüntüle ve yönet
  6. Sistem istatistiklerini incele

📊 Özellik Detayları

🛒 Sepet Sistemi

  • Session tabanlı sepet yönetimi
  • Ürün ekleme/çıkarma
  • Miktar güncelleme
  • Sepet özeti

⭐ Ürün Değerlendirme

  • 1-5 yıldız puanlama sistemi
  • Yorum yazma
  • Ortalama puan hesaplama
  • Değerlendirme sayısı

🔍 Arama ve Filtreleme

  • Ürün adına göre arama
  • Kategori bazlı filtreleme
  • Fiyat aralığı filtreleme

📱 Responsive Tasarım

  • Mobil uyumlu arayüz
  • Bootstrap 5 grid sistemi
  • Touch-friendly butonlar

🔒 Güvenlik

  • ASP.NET Core Identity ile kimlik doğrulama
  • Role-based authorization
  • CSRF koruması
  • Input validation
  • SQL injection koruması

🚀 Performans

  • Entity Framework Core ile optimize edilmiş sorgular
  • Lazy loading ve eager loading
  • Memory cache kullanımı
  • Statik dosya optimizasyonu

📈 Gelecek Özellikler

  • Ö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

🤝 Katkıda Bulunma

  1. Fork yapın
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Değişikliklerinizi commit edin (git commit -m 'Add some amazing feature')
  4. Branch'inizi push edin (git push origin feature/amazing-feature)
  5. Pull Request oluşturun

📄 Lisans

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published