Proje kapsamında sadece dijital ürünler satan bir platform geliştirilmesi beklenmektedir. Hedefimiz Mobil ve web uygulaması olmak üzere 3 farklı kanal üzerinden satış yapan bir platform için uygulama geliştirmektir. ( Android,IOS,Web).
Proje kapsamında dijital ürün veya ürün lisansları satışı yapılmaktadır. Kullanıcılar dijital ürün veya ürün lisansları satan sisteme kayıt yaptırarak alışveriş yapabilirler.
Sadakat sistemi ile çalışan bu sistemde kullanıcılar alışveriş yaptıkça extra puan kazanmaktadır.
Kullanıcılar kazandıkları puanları bir sonraki alışverişte kullanarak yeni ürünleri indirimli bir şekilde alabilmektedirler. Bununla birlike kupon sistemi sayesinde hediye kuponlar ile sepet tutarı üzerinden daha uygun fiyatlı alışveriş yapabilmektedir.
- .Net 6.0
- Entity Framework Core
- AutoMapper
- Fluent Validation
- Swagger
- RabbitMQ
- Redis
- InMemoryCache
- MsSQL
- Docker Compose
- Serilog
- Postman
- XUnit
- Moq
Proje aşağıdaki bileşenlere ayrılmıştır:
- API: Web API katmanı, HTTP isteklerini karşılar ve yanıtlar.
- Controllers: API isteklerini karşılayan controller sınıflarını içeren klasördür.
- Extensions: API katmanı için extension metodları içeren klasördür.
- logs: Proje içerisinde oluşan logların tutulduğu klasördür.
- serilog.json: Serilog ayarlarının tutulduğu yapılandırma dosyasıdır.
- Application: Uygulama katmanı, API ile UI/CLI arasındaki iletişimi sağlar ve iş mantığını yönetir.
- Contracts: Uygulama katmanı için contract sınıflarını içeren klasördür.
- Constants: Uygulama katmanı için sabitleri içeren klasördür.
- Mapper: AutoMapper konfigürasyonlarını içeren klasördür.
- Repositories: Repository arayüzlerini içeren klasördür.
- Requests: İstek modellerini içeren klasördür.
- Responses: Yanıt modellerini içeren klasördür.
- Services: İş sınıfları için arayüzleri içeren klasördür.
- Validations: Fluent Validation doğrulama kurallarını içeren klasördür.
- Services: İş sınıflarını içeren klasördür.
- ApplicationExtensions.cs: Uygulama katmanı için extension metodları içeren sınıftır.
- Contracts: Uygulama katmanı için contract sınıflarını içeren klasördür.
- Core: Çekirdek katmanı, tüm katmanlar tarafından kullanılan temel bileşenleri içerir.
- Application: Uygulama katmanı için temel bileşenleri içeren klasördür.
- CrossCuttingConcerns: Harici bileşenlerle ilgili temel bileşenleri içeren klasördür.
- Domain: Veritabanı nesneleri için temel bileşenleri içeren klasördür.
- Persistence: Veritabanı katmanı için temel bileşenleri içeren klasördür.
- Utilities: Yardımcı bileşenleri içeren klasördür.
- CoreExtensions.cs: Çekirdek katmanı için extension metodları içeren sınıftır.
- Domain: Veritabanı nesnelerini içeren klasördür.
- Entities: Veritabanı nesnelerini içeren klasördür.
- Enums: Veritabanı nesneleri için enumları içeren klasördür.
- Infrastructure: Altyapı katmanı, harici bileşenlerle ilgili bileşenleri içerir.
- Notification: Harici bildirim bileşenlerini içeren klasördür.
- Payment: Harici ödeme bileşenlerini içeren klasördür.
- InfrastructureExtensions: Altyapı katmanı için extension metodları içeren sınıftır.
- Notification.Consumer: RabbitMQ üzerinden gelen bildirimleri dinleyen konsol uygulamasıdır.
- Persistence: Veritabanı katmanı, veritabanı işlemlerini yönetir.
- Contexts: Veritabanı nesnelerinin DbContext sınıflarını içeren klasördür.
- EntityConfigurations: Veritabanı nesnelerinin yapılandırma sınıflarını içeren klasördür.
- Migrations: Veritabanı nesneleri için migration dosyalarını içeren klasördür.
- Repositories: Veritabanı nesneleri için repository sınıflarını içeren klasördür.
- PersistenceExtensions: Veritabanı katmanı için extension metodları içeren sınıftır.
Projenin testleri aşağıdaki bileşenlere ayrılmıştır:
- Application.Tests: Uygulama katmanı testleri.
- Extensions: Uygulama katmanı testleri için extension metodları içeren klasördür.
- Mocks: Uygulama katmanı testleri için mock bileşenleri içeren klasördür.
- Services: Uygulama katmanı testleri için iş sınıflarını içeren klasördür.
- Core.Tests: Çekirdek katmanı testleri.
- Utilities: Çekirdek katmanındaki yardımcı sınıfların testlerini içeren klasördür.
🔒Varsayılan Admin Giriş Bilgileri :
{
"email": "admin@system.com",
"password": "1234"
}
git clone https://github.com/P259-Simpra-NET-Bootcamp/final-BerkayMehmetSert.git
dotnet restore
dotnet ef database update
PaymentService.cs
içerisindeki NotificationType değişkenini NotificationType.Console olarak değiştirmeniz yeterlidir.
CartService.cs
ve CouponService.cs
içerisindeki CacheType değişkenini CacheType.Memory olarak değiştirmeniz yeterlidir.
docker-compose up -d
dotnet run