Bu proje, ISE309 Web Programlama dersi proje ödevi kapsamında ASP.NET Core MVC kullanılarak geliştirilmiştir.
Proje, ödev dökümanında belirtilen tüm zorunlu gereksinimleri karşılamaktadır:
- Platform: ASP.NET Core (.NET 8.0)
- Mimari: MVC (Model-View-Controller)
- Veri Erişimi: Entity Framework Core (Code-First & Migrations)
- Güvenlik: ASP.NET Core Identity (Bireysel Hesaplar)
- Roller: "Admin" ve "Kullanici" rolleri ile rol bazlı yetkilendirme.
- Mimari Kurallar: Dependency Injection, View Models (DTOs) ve Repository Pattern (veya Service Layer) prensipleri uygulanmıştır.
Projeyi yerel makinenizde çalıştırmak için aşağıdaki adımları izleyin:
-
Depoyu Klonlama:
git clone https://github.com/SauWebProgramming/web-programming-project-2025-Gul-Ahmet.git
-
Veritabanı Kurulumu (Zorunlu): Proje, EF Core Code-First ve Migrations yapısını kullanmaktadır. Veritabanı tablolarını (Kullanıcılar, Ürünler, Kategoriler) oluşturmak için projenin
appsettings.jsondosyasındaki bağlantı dizisini (Connection String) kendi yerel veritabanınıza (MS SQL Server, LocalDB vb.) göre güncelleyin. -
Migration (Veritabanı Oluşturma): Visual Studio'da, Package Manager Console (PMC) penceresini açın (
Tools > NuGet Package Manager > Package Manager Console).Aşağıdaki komutu çalıştırarak veritabanını oluşturun ve zorunlu rolleri ("Admin", "Kullanici") ekleyin:
Update-Database -
Projeyi Çalıştırma: Projeyi Visual Studio üzerinden F5 veya
dotnet runkomutu ile çalıştırın. -
Admin Girişi:
- Sisteme
admin@proje.come-postası ile kayıt (Register) olun. - Proje
Program.csdosyasındaki kod sayesinde, bu e-postaya sahip kullanıcıyı otomatik olarak "Admin" rolüne atayacaktır. - Giriş (Login) yaparak "Kategori Yönetimi" gibi admin panellerine erişebilirsiniz.
- Sisteme
- DataTables Entegrasyonu: Admin paneli ve Ürün listeleme sayfalarında tablolar; arama, sıralama ve sayfalama özellikleri kazanması için 3. parti "DataTables" kütüphanesi ile zenginleştirilmiştir.
- Zengin Metin Editörü: Ürün ekleme ve düzenleme sayfalarında, kullanıcıların ilan açıklamalarını biçimlendirebilmesi (kalın, italik, liste vb.) için "Summernote" editörü entegre edilmiştir.
- Gelişmiş Bildirimler (SweetAlert2): Kullanıcı deneyimini (UX) artırmak amacıyla; ürün ekleme, güncelleme ve silme işlemlerinden sonra standart sayfa yenilenmesi yerine, "SweetAlert2" kütüphanesi kullanılarak animasyonlu ve görsel başarı bildirimleri (Popup) gösterilmektedir.
- Kart Efektleri: Anasayfadaki ürün kartlarına CSS ile özel "Hover" (üzerine gelince yükselme ve gölgelenme) efektleri eklenerek modern bir görünüm sağlanmıştır.