Skip to content

Berkay-Sari/inveon-final-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CourseMarket

Onion Architecture yaklaşımı ile kurgulanmış bir Kurs Satış Platformu.

🚀 Başlarken

Projeyi çalıştırmak için aşağıdaki adımları takip edebilirsiniz:

  1. Visual Studio'yu açın.
  2. "Clone a repository" seçeneği üzerinden projeyi klonlayın.
  3. Backend klasörüne gidin ve CourseMarket.API.sln dosyasını çift tıklayarak açın.
  4. NuGet Package Manager Console'u açın:
    • Menüden Tools (Araçlar) > NuGet Package Manager > Package Manager Console yolunu izleyin.
    • Default project olarak CourseMarket.Infrastructure seçin ve ardından Update-Database komutunu çalıştırarak veritabanını oluşturun.
    • Visual Studio üzerinde backendi ayağa kaldırın (https run)
  5. Seed Data:
    • pgAdmin'i açın ve CourseMarketAPIDb veritabanına sağ tıklayarak Query Tool'u seçin.
    • Query Tool penceresinde dosya simgesine tıklayın, seed-data klasörü altındaki seed.sql dosyasını seçin ve çalıştırın. Veriler veritabanına yüklenecektir.
    • Eğitmen giriş bilgileri = username : instructor1 password: aslan1905
    • Kullanıcı giriş bilgileri = username : user1 password: pwd2001pwd ve username: user2 password: pwd2002pwd
  6. (Opsiyonel) Seq ile Log Analizi:
    • Seq'i kullanmak için aşağıdaki komutu Docker üzerinde çalıştırın:
      docker run --name Seq -e ACCEPT_EULA=Y -p 5341:80 datalust/seq:latest
    • Seq arayüzüne http://localhost:5341 adresinden erişebilirsiniz. Backend çalışmaya başladıktan sonra veya Frontend'de bazı işlemleri gerçekleştirdikten sonra logları analiz edebilirsiniz.

📂 Proje Yapısı

  • Exception Handling:

    • Beklenmeyen veya kritik hatalar için ConfigureExceptionHandlerExtension kullanılmıştır.
    • İş kuralları hataları ve tahmin edilebilir durumlar için ServiceResult.Error mekanizması kullanılmıştır.
  • Logging:

    • Loglar, Serilog ile hem lokal text dosyasına hem de veritabanına kaydedilmektedir.
    • Logların görselleştirilmesi ve analizi için Seq aracı entegre edilmiştir.
  • File Management:

    • Dosyalar, veritabanında Table Per Hierarchy (TPH) yapısı ile URL olarak saklanmaktadır.
    • Gelecekte AWS veya diğer bulut tabanlı depolama sistemlerine geçiş için mimaride soyutlama yapılmıştır.
  • Validation:

    • Backend'de FluentValidation ile validasyon sağlanmıştır.
    • Frontend tarafında Pure JavaScript ve Regex kullanılarak input doğrulama yapılmıştır.
  • Authentication:

    • Kullanıcı yetkilendirme JWT Token ile sağlanmıştır.
    • Refresh Token kullanıcı tablosuna eklenmiştir.
    • Frontend'de Axios Interceptor ile token yenileme ve Authorization header'ı ekleme işlemleri gerçekleştirilmiştir.

🛠️ Kullanılan Teknolojiler


📜 API Dökümantasyonu

API dökümantasyonu bir Postman Collection olarak sağlanmıştır. Aşağıdaki adımları takip ederek API'yi kolayca test edebilirsiniz:

  1. Postman'i açın.
  2. Sol üst köşeden Import butonuna tıklayın.
  3. Repository'deki collection dosyasını sürükleyip bırakın.

📸 Görseller

Homepage Kurs Detayı (Sahip Değil) Kurs Detayı (Sahip)
Homepage CourseDetail(not-owned) CourseDetail(owned)
Profil Sipariş Geçmişi
Profil Orderhistory
Login (Alertify ile) Register
Login(with-alertify) Register
Kurs Oluşturma Sepet ve Ödeme
CreateCourse Basket-Payment
Dosya Yönetimi Seq Log Ekranı
FileManagment seq-visualizer

Veritabanı İlişkileri
image

|

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages