Skip to content

215-Protein-NET-Bootcamp/FinalProject-Emir-Gurbuz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published