Çevrimiçi Kurs Kayıt Sistemi (Online Course Registration System) Bu proje, Web Tasarımı ve Programlama II dersi kapsamında geliştirilmiş bir e-öğrenme platformu taslağıdır. Eğitmenlerin kurs oluşturabildiği, öğrencilerin ise bu kursları inceleyip kaydolabildiği dinamik bir web uygulamasıdır.
Kullanılan Teknolojiler ve Mimari Platform: ASP.NET Core MVC (Güncel LTS)
Veritabanı: Entity Framework Core (Code-First)
Güvenlik: ASP.NET Core Identity (Authentication & Role-based Authorization)
Tasarım: Bootstrap 5, HTML5, CSS3
Mimari Desen: Repository Pattern (Veri erişim mantığı Controller'dan ayrılmıştır)
Model Yönetimi: View Models / DTOs (Entity'ler doğrudan View'lara gönderilmemiştir)
Projeyi Çalıştırma Talimatları Projeyi yerel ortamınızda çalıştırmak için aşağıdaki adımları izleyiniz:
1- Projeyi Visual Studio ile açınız.
2- Araçlar (Tools) > NuGet Paket Yöneticisi > Paket Yönetici Konsolu (Package Manager Console) yolunu izleyiniz.
3- Açılan konsola aşağıdaki komutu yazarak veritabanı şemasını oluşturunuz:
Update-Database
4- Projeyi derleyip (Build) çalıştırınız (F5).
5- Varsayılan Kullanıcılar: Proje ilk çalıştığında RoleSeeder sınıfı sayesinde temel roller ve varsa test kullanıcıları otomatik olarak oluşturulacaktır.
Uygulanan Özellikler (Checklist)
-
ASP.NET Core Identity: Kayıt Ol ve Giriş Yap fonksiyonları tamamlandı.
-
Rol Yönetimi: Admin, Eğitmen ve Öğrenci rolleri için özel yetkilendirmeler yapıldı.
-
Repository Pattern: Veritabanı işlemleri ICourseRepository üzerinden yönetilmektedir.
-
ViewModel & Validation: Form verileri için özel ViewModel sınıfları kullanıldı ve sunucu taraflı veri doğrulama (Validation) kuralları eklendi.
-
İlişkisel Veri: Kurslar, Kategoriler ve Kayıtlar arasında Çoka-Çok ve Bire-Çok ilişkiler kurgulandı.
Bonus Özellikler AJAX Dinamik Kayıt Sistemi: Öğrenciler kurslara kaydolurken sayfa yenilenmeden arka planda AJAX ile işlem yapılmaktadır. İşlem sonucunda kullanıcıya dinamik geri bildirim verilmektedir.
Gelişmiş Dashboard: Admin ve Eğitmenler için yetkilerine göre özelleştirilmiş, kurs ve öğrenci yönetimini kolaylaştıran panel tasarımı eklendi.