Skip to content

Latest commit

 

History

294 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NTechBackend

⬇️ Used Technologies ⬇️

  • .Net 6
  • Entity Framework Core 6
  • Autofac
  • Serilog
  • FluentValidation
  • RabbitMq
  • Hangfire and BackgroundService
  • Redis Cache
  • Microsoft Memory Cache
  • AutoMapper
  • Docker
  • JWT

Async Programming ⚙️
Aspect Oriented Programming ⚙️
Hashing Password 🔑
Email Service 📧

Cache and Cache Remove Aspect 🧰
Performance Aspecs 🚀
Validation Aspect ✔️
Secure Aspect 🛡️
Log Aspect 📓
Exception Log Aspect ❌

Startup

⬇️ Connection Strings in appsettings.json ⬇️

"ConnectionStrings": {
    "SqlServer": "Server=DESKTOP-HVLQH67\\SQLEXPRESS;Database=NTechDb;integrated security=true",
    "PostgreSql": "User ID=postgres;Password=123;Host=localhost;Port=5432;Database=NTechDb;"
  },

⬇️ Select Database in appsettings.json - PostgreSql or SqlServer ⬇️

"Database": "PostgreSql"

⬇️ Configure AdminUser appsettings.json ⬇️

"AdminUser": {
    "FirstName": "admin_first_name",
    "LastName": "admin_last_name",
    "Email": "admin_email",
    "Password": "admin_password"
  }

⬇️ Add Migration - Package Manager Console ⬇️

⚠️ if you use postgresql and hangfire, create the "NTechDb" database in SqlServer ⚠️

⬇️ Use Hangfire or BackgroundService in appsettings.json ⬇️

  "UseHangFire": false,
  "UseBackgroundServices": true

⬇️ Jwt Options in appsettings.json ⬇️

"AccessTokenOptions": {
    "Audience": "emir57",
    "Issuer": "www.ntech.com.tr",
    "AccessTokenExpiration": 60,
    "SecurityKey": "nCsFlhJlNp62k1iM49q2-+?caSrvNte"
  }

⬇️ Redis Configuration in appsettings.json ⬇️

"RedisConfiguration": {
    "Host": "localhost",
    "Port": 49153,
    "Password": "redispw"
  }

⬇️ Email Configuration in appsettings.json ⬇️

"EmailConfiguration": {
    "Port": 587,
    "Server": "smtp.office365.com",
    "EnableSsl": true,
    "Username": "username@hotmail.com",
    "Password": "***"
  }

⬇️ Email Messages in appsettings.json ⬇️

"EmailMessages": {
    "AcceptOfferSubject": "Teklifiniz Onaylandı",
    "AcceptOfferBody": "Merhaba {0} {1}, teklifiniz onaylandı :)",
    "DenyOfferSubject": "Teklifiniz Reddedildi",
    "DenyOfferBody": "Merhaba {0} {1}, teklifiniz reddedildi :(",
    "LockAccountSubject": "Uyarı",
    "LockAccountBody": "Sayın {0} {1} üç defa başarısız giriş sonucunda hesabınız kilitlenmiştir. 3 dakika sonra tekrar deneyiniz.",
    "LoginSubject": "Giriş Başarılı",
    "LoginBody": "Hoşgeldiniz {0} {1}"
  }

⬇️ RabbitMq Configuration in appsettings.json ⬇️

"MessageBrokerOptions": {
    "HostName": "localhost",
    "UserName": "admin",
    "Password": "123456"
  }

⬇️ SeriLog Configuration in appsettings.json ⬇️

"SeriLogConfigurations": {
    "FileLogConfiguration": {
      "FolderPath": "/logs/"
    }
  }

⬇️ Upload Image Path in appsettings.json ⬇️

"UploadImagePath": "wwwroot/images/"

⬇️ Select Language in appsettings.json - Tr or En ⬇️

"MessageResultLanguage": "Tr"

Email send is 5 times trying. And saving it in database.


If the function run time exceeded five seconds sending email to admin

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages