- Bu projenin amacı bir sitede yönetici olarak sisteme sitede bulunan daireleri, dairelerde yaşayan kullanıcıları ve daire başına fatura ve aidat bilgilerini ekleyebilmektir. Ayrıca yönetici eklediği daire bilgilerini, kullanıcı bilgilerini ve fatura/aidat bilgilerini görüntüleyebilir. Kullanıcılarda sisteme giriş yaparak dairelerine atanan fatura/aidat bilgilerini görüntüleyebilir ve kredi kart bilgilerini girerek bu fatura/aidatları ödeyebilir.
- Projeyi çalıştırabilmek için gerekli programlar: Visual Studio & pgAdmin 4
- Projemi klonladıktan sonra, dizin içerisinde
.sln
uzantılı dosyayı bulup, Visual Studio yardımı ile açın. - Sonrasında pgAdmin4'ü açarak SiteManagementBillingSystemDB adında bir database oluşturun.
- Ardından projeye gelerek Tools > NuGet Package Manager > Package Manager Console açın
- Konsolda Default Project kısmından BillingSystem.Infrastructure.EFCore seçtiğinizden emin olun.
- Migrationlarım zaten hazır olduğu için
update-database
komutunu çalıştırın. - Eğer hata alırsanız BillingSystem.Infrastructure.EFCore altındaki Migrations dosyasını silerek Package Manager Console konsoluna
add-migration initMigration
komutunu yapıştırın ve tekrarupdate-database
komutunu çalıştırın. - Artık tek yapmanız gereken projeyi çalıştırmak.
- Presentation dosyasının altında bulunan BillingSystem.WebAPI projesine sağ tıklayarak Set as Startup Project seçeneğini seçip, projeyi çalıştırın.
- Bu katmanda entitylerimi tanımladım.
- Proje içerisinde beş adet entity tanımladım, bunlarden dördü BaseEntity class'ından inherit alırken; biri özel classtır.
- Bu katmanda Response ve Request modellerimi tanımladım.
- Bu katmanda projenin servislerini, validasyon işlemlerini, token işlemlerini ve mapping işlemlerini yaptım.
- Bu katmanda projenin database bağlantılarını, tablo confiragutionlarını, repositoryleri ve unit of work classının tanımlamasını yaptım.
- Bu katmanda controllerlarımı yazdım. Program.cs dosyasına proje ile ilgili gerekli ayarlamaları yaptım.
- Middlewareleri yazdım.
- Bu projeyi ödeme simülasyonu yapmak için kullandım.
- User Service standart CRUD işlemlerini yapılmasını sağlar ancak bu işlemleri yalnız Admin rolüne sahip kullanıcılar yapabilir.
- Kullanıcı oluşturulduğunda otomatik Password oluşturulur ve atanır.
- Apartment Service standart CRUD işlemlerini yapılmasını sağlar ancak bu işlemleri yalnız Admin rolüne sahip kullanıcılar yapabilir.
- Token Service içerisinde Login işlemleri ve Token generate işlemleri yapılır.
- Invoice Service içerisinde yönetici dairelere fatura bilgisi girer.
- Yönetici isterse tek tek daire idsi ile, tüm dairelere aynı anda veya toplam fatura tutarını girerek dairelere bölünmesini sağlayabilir.
- Ayrıca yönetici tüm faturaları veya ay bazlı olarak görüntüleyebilir.
- Dues Service içerisinde yönetici dairelere aidat bilgisi girer.
- Yönetici isterse tek tek daire idsi ile veya tüm dairelere aynı anda aidat tutarını girebilir.
- Ayrıca yönetici tüm aidatları veya ay bazlı olarak görüntüleyebilir.
- Payment Service içerisinde, ödeme yapılamak istenen tipe göre (aidat veya fatura) ödeme bilgileri sisteme eklenir.
- Automapper
- FluentValidation
- Entity Framework Core
- JWT Bearer
- Postgres