Skip to content

etartar/PhoneBookApp

Repository files navigation

Proje Hakkında

Birbirleri ile haberleşen minimum iki microservice'in olduğu bir yapıdır. Basit bir telefon rehberi uygulaması ve konuma göre telefon rehberinin raporlanması sağlanmıştır.

Çalıştırma ve Kullanımı

Proje docker ortamında docker compose ile çalışabilmektedir.

docker compose up : Bu komutu proje ana dizini içerisinde çalıştırarak projeyi ayağa kaldırabilirsiniz.

docker compose down : container'ları silmek için kullanabilirsiniz. Image'lar silinmez.

API Contact Service Endpoint (CONTACT_SERVICE_ENDPOINT) : https://localhost:5001/

API Report Service Endpoint (REPORT_SERVICE_ENDPOINT) : https://localhost:5101/

Contact Endpoints

Kişi listeleme: [HttpGet] [CONTACT_SERVICE_ENDPOINT]/api/Persons/GetPersons

Kişi detayları: [HttpGet] [CONTACT_SERVICE_ENDPOINT]/api/Persons/GetPerson

Kişi ekleme: [HttpPost] [CONTACT_SERVICE_ENDPOINT]/api/Persons/CreatePerson

Kişi silme: [HttpDelete] [CONTACT_SERVICE_ENDPOINT]/api/Persons/DeletePerson

İletişim bilgisi ekleme: [HttpPost] [CONTACT_SERVICE_ENDPOINT]/api/Persons/CreateContactInformation

İletişim bilgisi silme: [HttpDelete] [CONTACT_SERVICE_ENDPOINT]/api/Persons/DeleteContactInformation

Report Endpoints

Rapor listeleme: [HttpGet] [REPORT_SERVICE_ENDPOINT]/api/Reports/GetReports

Rapor detayları: [HttpGet] [REPORT_SERVICE_ENDPOINT]/api/Reports/GetReport

Rapor talep oluşturma: [HttpPost] [CONTACT_SERVICE_ENDPOINT]/api/Reports/CreateReport

Teknik Detaylar

Sistemde asenkron iletişim Masstransit kütüphanesi ve RabbitMQ ile yapılmaktadır. Eventlerin produce ve consume edilmesin de Outbox ve Inbox pattern kullanılmıştır. Contact ve Report servislerin de PostgreSQL veritabanı kullanılmıştır. Her iki servis için ayrı ayrı veritabanı oluşturulmuştur. Servislerin gelişime açık ve esnek bir mimari olması için Clean Architecture uygulanmıştır. Her bir serviste unit testler XUnit ile yazılmıştır.

Kullanılan teknolojiler

  • .Net Core
  • PostgreSQL
  • Git
  • RabbitMQ
  • Entity Framework Core
  • Dapper
  • FluentValidation
  • MediatR
  • MassTransit
  • Quartz
  • Scrutor
  • Mapster
  • FluentAssertions
  • NSubstitute

Kullanılan Design Patternler

  • Repository
  • Unit Of Work
  • CQRS
  • Outbox ve Inbox Pattern

About

Microservis Telefon Rehberi Uygulaması

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published