Spyping, ASP.NET Core MVC mimarisi üzerine inşa edilmiş, çok katmanlı bir sunucu sağlık izleme ve bildirim sistemidir.
Kullanıcılar yalnızca kendi tanımlı sunucu/IP listelerini yönetebilir, sistem ise arka planda periyodik ping testleri gerçekleştirir ve kesinti durumlarında e-posta bildirimi gönderir.
- Katmanlı mimari: MVC prensibine uygun, düzenli ve ölçeklenebilir yapı.
- Sunucu izleme: Belirli periyotlarda otomatik ping testleri.
- E-posta bildirimleri: Sunucu erişilemez olduğunda ilgili kullanıcıya SMTP üzerinden e-posta gönderimi.
- Çok kullanıcılı yapı: Kullanıcılar yalnızca kendi tanımladıkları sunucuları görebilir.
- PostgreSQL + EF Core: Güvenli, performanslı ve modern veritabanı yönetimi.
Spyping/
├── Controllers/ # İş mantığını yöneten sınıflar
│ ├── AppController.cs
│ └── HomeController.cs
│
├── Data/
│ └── AppDbContext.cs # Entity Framework Core veritabanı context'i
│
├── Migrations/ # Veritabanı şema değişiklikleri
│
├── Models/ # Veri modelleri
│ ├── Users.cs
│ ├── ServerInfo.cs
│ ├── EmailSettings.cs
│ └── ErrorViewModel.cs
│
├── Services/ # Arka plan servisleri
│ ├── PingService.cs
│ └── EmailService.cs
│
├── Views/ # UI katmanı
│ ├── App/
│ ├── Home/
│ └── Shared/
│
├── wwwroot/ # Statik dosyalar (css, js, ikonlar)
│
├── Program.cs # Uygulamanın giriş noktası
├── Spyping.csproj # Proje ayarları
├── Spyping.sln # Çözüm dosyası
└── appsettings.example.json # Yapılandırma şablonu
- ASP.NET Core MVC – Web uygulaması çatısı
- Entity Framework Core – ORM & veritabanı yönetimi
- PostgreSQL – Veritabanı
- BackgroundService – Otomatik periyodik işlemler
- SMTP (Gmail) – E-posta bildirimleri
Uygulama yapılandırması appsettings.json dosyasında yapılır.
Repoda örnek olarak appsettings.example.json verilmiştir.
Kendi ortamınız için appsettings.json oluşturup doldurmanız gerekir.
Kendi ortamında çalıştırmadan önce dosyayı kopyalayarak gerekli alanları doldur:
cp appsettings.example.json appsettings.jsonUygulamanın e-posta gönderebilmesi için uygulama şifresi (App Password) gerekir.
- Google hesabınıza giriş yapın → https://myaccount.google.com
- 2 Adımlı Doğrulama (2FA) özelliğini açın.
- "Güvenlik" → "Uygulama şifreleri" menüsüne gidin.
- Yeni bir şifre oluşturun (örneğin Mail → Windows Computer).
- Google size 16 karakterlik bir uygulama şifresi verecektir. Bu şifreyi
appsettings.jsoniçine koyun.
# Bağımlılıkları yükle
dotnet restore
# Veritabanını migrate et
dotnet ef database update
# Uygulamayı çalıştır
dotnet runUygulama varsayılan olarak https://localhost:5001 adresinde çalışacaktır.
- PingService → Belirli periyotlarla tanımlı sunuculara ping atar.
- EmailService → Sunucu erişilemez hale gelirse ilgili kullanıcıya e-posta bildirimi gönderir.