Skip to content

mehmetyagci/FishMarket

Repository files navigation

FishMarket Uygulaması

FishMarket, bir .NET Core API ve .NET Core MVC projelerini içeren bir uygulamadır. Bu uygulama, balık pazarı işlemlerini simüle eder ve API üzerinden veri sağlar.

Kurulum

  1. Bu projenin kaynak kodlarını almak için aşağıdaki komutu kullanarak GitHub deposunu klonlayın:

    git clone https://github.com/mehmetyagci/FishMarket.git
    
  2. Ardından, klonladığınız dizine geçin:

    cd FishMarket
    
  3. FishMarket.sln solution dosyasını Visual Studio veya başka bir geliştirme ortamında açın.

  4. API projesi, SQL Server veritabanı kullanmaktadır. Veritabanının oluşturulması ve ilişkilendirilmesi gerekmektedir. Bunun için, API projesinin appsettings.json dosyasında veritabanı bağlantı bilgilerini ayarlayın ve ardından veritabanını Code First Migration kullanarak oluşturun. Bu adımı gerçekleştirmek için aşağıdaki komutları sırasıyla kullanabilirsiniz:

    dotnet ef migrations add InitialCreate
    dotnet ef database update
    
  5. FishMarket.API ve FishMarket.MVC projelerini Startup project olarak belirleyin ve Visual Studio'da çalıştırın.

  6. API ve MVC projelerini başlatın ve FishMarket uygulamasını kullanmaya başlayın.

Mimari

FishMarket uygulaması, Onion mimarisi kullanılarak tasarlanmıştır. Katmanlar, birbirinden olabildiğince bağımsız olarak geliştirilmiştir ve aşağıdaki gibi sıralanmıştır:

  • Domain: Sadece Domain Entity 'leri burada tanımlanır.
  • Data: DbContext ve veritabanı schema tanımları burada bulunur.
  • Core: Uygulamanın genel yapılandırma ve temel hizmetleri bu katmanda yer alır. Bağımlılıkları yönetir ve uygulama boyunca kullanılan çekirdek işlevleri sağlar.
  • Repository: Veritabanı ile iletişimi yöneten katmandır. Veri tabanı işlemleri bu katman aracılığıyla gerçekleştirilir.
  • Service: Uygulamanın iş mantığını uygulayan hizmetlerin bulunduğu katmandır. API katmanından gelen istekleri işler ve tüm iş mantığı burada yürütülür.
  • API: Service katmanında yazılan tüm süreçlerin kullanılabilmesini sağlayan servisler sağlar.
  • MVC: Web Katmanı, API katmanına Http istekleri yaparak merkezi olarak
  • DTO: Veri transfer nesnelerinin (DTO'ların) tanımlandığı katmandır. Veri tabanından alınan veya API'den döndürülen verilerin taşınmasında kullanılır. MVC uygulaması da aynı DTO 'ları kullanır.

Project Structure

Kullanılan Kütüphaneler

FishMarket uygulamasında aşağıdaki kütüphaneler kullanılmıştır:

  • EntityFrameworkCore: .NET Core uygulamaları için ORM (Object-Relational Mapping) kütüphanesidir. Veritabanı işlemlerini yönetmek için kullanılır.
  • Automapper: Nesneler arasında veri eşleme işlemlerini kolaylaştırmak için kullanılan bir kütüphanedir.
  • FluentValidation: Giriş validasyonlarını yapmak için kullanılan bir kütüphanedir.
  • xUnit: .NET uygulamaları için bir test çerçevesidir. Birim testlerin yazılması ve çalıştırılması için kullanılır.
  • log4Net: .NET uygulamalarında günlük dosyalarını yönetmek ve olayları kaydetmek için kullanılan bir günlükleme kütüphanesidir.
  • MailKit: .NET uygulamaları için e-posta gönderme işlemlerini yönetmek için kullanılan bir kütüphanedir.
  • JWT token ile authentication: JSON Web Token (JWT) kullanarak kimlik doğrulama ve yetkilendirme işlemlerini sağlamak için kullanılan bir kütüphanedir.

Uygulamanın Kullanımı

FishMarket uygulaması, temel olarak iki modülden oluşmaktadır: API ve Web.

  • API Modülü: Fish ve User servislerini içerir. API modülündeki tüm Fish servisleri için kimlik doğrulaması gereklidir. Bu servisler, kullanıcıların balık işlemlerini yönetmelerine olanak tanır. User servisleri için ise kimlik doğrulaması gerekli değildir.
    API Services
  • Web Modülü: Kullanıcı arayüzünü sağlar ve API üzerinden FishMarket uygulamasına erişim sağlar. Web modülü, kullanıcıların uygulamayı kullanarak balık pazarı işlemlerini gerçekleştirmelerini sağlar. Kimlik doğrulaması, kullanıcı girişi için kullanılır ve Fish servislerine erişim sağlamak için gereklidir. Web UI

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages