Coder Social home page Coder Social logo

fishmarket's Introduction

FishMarket

Proje Dizini: -/src --/common ---client ---dto --/core ---core ---dataaccess ---entities --/integration ---api --presentation ---web --/tests ---test

Önemli:

  • Proje .net 6 ile yazıldığından visual studio 2022 kurulumu gerektirmektedir.
  • Projeyi çalıştırmak için api ve web projeleri multiple startup olarak işaretlenmelidir.
  • Veri Tabanı DB First oluşturulmuş olup remote bir MYSQL server üzerinde oluşturulmuştur. Projeyi çalıştıracak kişinin Migration için IP adresi izinleri sağlanması gerekmektedir. migraiton için dataaccess katmanını set as startup projesi olarak işaretlemeniz gerekmektedir.
  • swagger'da test etmek için bearer authorizaton gerekmektedir. Bunun için gerekli JWT Token'ı /GetToken metodundan sağlayabilirsiniz. Swagger'daki authorization için güvenlik şeması tipi http olarak oluşturulmuştur. Token'ı direk yapıştırıp (Bearer yazmadan) kullanabilirsiniz.
  • swagger şema sorunundan dolayı tüm metotlarda kilit işareti(authorizaiton) görünmektedir fakat GetToken,Login,Register ve Balık listeleme metodları public olarak erişilebilirdir.
  • Yeni kullanıcı kaydederken result olarak email doğrulama linki döndürülmektedir (ayrıca console'a link loglanmıştır). Email doğrulandıktan sonra login olunabilir. Login sonucu oluşan token ayrıca api console'da loglanmıştır Dönen linke tıklayarak email doğrulanabilir. Bunun için ayrıca bir EmailClient oluşturulup mail gönderimi yapılmamıştır.
  • service katmanındaki classların yaşam süreleri scoped olarak ayarlanmıştır. Map işlemleri için AutoMapper kullanılmıştır ve lifecycle'u singleton'dır.
  • Encryption, Decryption ve Hashing işlemleri IUitility'den implement edilen UtilityManager classında yapılmıştır.
  • .net 6'da moq'ların içerisinde dependency injection yönetiminde sorun yaşadığım için unit testler service katmanındaki bazı metotlar için yazılmıştır. Ayrıca bir entegrasyon testi yazılmamıştır.

Notlar:

  • code first oluşturulan tabloların konfigürasyonları kolay yönetilebilmesi için DataAccess/Concrete/EntityFrameworkCore/Configurations klasörü altında ayrılmıştır ve bu şekilde migration çıkılmıştır. Swagger şema konfigürasyonu hatası aldığından dolayı tekrar DbContext içerisine alınıp proje çalıştırılmıştır.
  • tablo konfigürasyonları fluent kullanılarak düzenlenmesine rağmen, foreign key ilişkileri mysql sunucusunda alınan ilişki yetkilendirme sorunundan dolayı oluşmamıştır. tablolardaki diğer unique key ve primary key'ler oluşmasında bir sorun olmamıştır.
  • Web projesinde post gönderimleri için front-end kısmında genel örnek olması açısından hem razor tag-helper'ları hem de jquery ajax gönderimleri yapılmıştır.

Genel: Proje n-Tier Architect ile olşuturulmuştur. EntityFrameworkCore 6.0.6 kullanılmıştır. Web projesinden api'ye direk erişim sağlanmamış olup Refit kullanılarak bir rest client yazılmıştır (FishMarket.Client). Gösterim açısından hard-coded alanlar şifrelenip appsettings.json dosyasında tutulmuştur. Bazı class'larda hıslı geliştirme açısından bazı katmanlarda hardcoded veriler ayrı bir settings dosyasına taşınmamıştır. Hata loglaması örnekleri api projesinde FishMarketController'da mevcuttur.

fishmarket's People

Contributors

merterhan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.