Apartment Management Uygulama Tanıtımı

Apartman Yönetim Sistemi: Kullanılan Teknolojiler ve Teknik Kavramlar

\n\n

Bu yazıda, apartman yönetim sistemi projesinde kullanılan bazı önemli teknolojiler ve teknik kavramlar hakkında detaylı bilgiler sunacağız. Projemizde veri güvenliği, esneklik ve performans için Java, React, PostgreSQL, Flyway gibi araçların yanı sıra Server Side Rendering, multi-tenant (çok kiracılı) mimari, Event-Driven Architecture ve Apache Kafka gibi modern yaklaşımlar kullanılmıştır.

\n\n

1. Server Side Rendering (SSR) Nedir?

\nFile 2\n\n

Server Side Rendering (SSR), web sayfasının içeriğinin sunucuda hazırlanıp sonrasında kullanıcıya gönderilmesidir. Bu yöntemle, kullanıcılar tarayıcıda sayfayı açtıklarında hazır bir HTML sayfası alırlar ve bu sayfa hızlı bir şekilde yüklenir.

\n\n

SSRnin sağladığı avantajlar şunlardır:

\n
    \n
  • SEO Uyumlu: SSR sayesinde sayfa içeriği arama motorları tarafından daha kolay taranabilir. Bu, uygulamanın SEO açısından daha avantajlı olmasını sağlar.
  • \n
  • Hızlı Yükleme: Kullanıcıya gönderilen HTML sayfası, kullanıcı tarayıcısında hızlı bir şekilde yüklenir, özellikle ilk yükleme süresi düşer.
  • \n
\n\n

Projede React.js kullanarak geliştirdiğimiz uygulamada SSR sayesinde daha hızlı ve SEO uyumlu bir yapı sağlanmıştır.

\n\n

2. Flyway Nedir?

\nFile 3\n\n

Flyway, veritabanı şemalarını yönetmek için kullanılan bir database migration aracıdır. Flyway sayesinde projedeki veritabanı değişiklikleri takip edilebilir ve her yeni sürümde bu değişiklikler otomatik olarak uygulanır.

\n\n

Flywayin avantajları:

\n
    \n
  • Versiyon Kontrolü: Flyway, veritabanındaki her bir değişikliği (örn. tablo ekleme, sütun değiştirme) sürüm bazında yönetir. Bu sayede, kodda yapılan her değişiklikle uyumlu bir veritabanı güncellemesi sağlanır.
  • \n
  • Otomatik Geçiş: Flyway ile tanımlanan tüm geçişler (migrasyonlar) belirlenen sıraya göre çalıştırılır. Böylece ekipteki herkes aynı veritabanı şemasına sahip olur.
  • \n
\n\n

Bu projede Flyway kullanarak her tenant için ayrı şemalar oluşturulmakta ve veritabanı değişiklikleri kolayca yönetilmektedir.

\n\n

3. Multi-Tenant (Çok Kiracılı) Mimari Nedir?

\n\n

Multi-tenant mimari, aynı uygulamanın birden fazla müşteri (tenant) tarafından kullanıldığı bir sistemdir. Bu yapıda, her tenant uygulamanın ayrı bir bölümünü kullanıyor gibi görünür ve kendi verilerine sadece kendi erişebilir.

\n\n

Bu projemizde her tenant için ayrı bir veritabanı şeması oluşturularak veri gizliliği sağlanmaktadır. Örneğin, apartman yönetim sisteminde her bir site kendi şemasında yönetilir, dolayısıyla bir sitenin verisi diğerlerinden tamamen bağımsız olur.

\n\n

Multi-tenant mimarinin faydaları:

\n
    \n
  • Veri Güvenliği: Tenantlar (kiracılar) arasında veri paylaşımı olmadan yüksek düzeyde veri güvenliği sağlanır.
  • \n
  • Kolay Yönetim: Her tenantın verileri ayrıldığı için veritabanı işlemleri daha verimli ve yönetilebilir hale gelir.
  • \n
\n\n\n\n

4. Event-Driven Architecture (EDA) Nedir?

\nFile 1\n\n

Event-Driven Architecture (EDA), uygulamanın olaylara (events) dayalı olarak çalıştığı bir yazılım mimarisidir. Bu yaklaşımda, her bir olay belirli bir işlem veya işlemler dizisini tetikler. EDA, bir uygulamanın bölümlerinin birbirine bağımlı olmadan iletişim kurmasını sağlar ve sistemin daha esnek ve ölçeklenebilir olmasını sağlar.

\n\n

Bu mimarinin avantajları:

\n
    \n
  • Esneklik: Olay tabanlı mimari sayesinde, farklı hizmetler birbirine bağımlı olmadan işleyebilir. Örneğin, bir aidat ödendiğinde otomatik bildirim gönderilebilir.
  • \n
  • Gerçek Zamanlı Yanıt: Kullanıcıların veya sistemin belirli bir işlemi gerçekleştirdiği anda tetiklenen olaylarla hızlı yanıt alınır.
  • \n
\n\n

Projede, kullanıcıların eylemlerine göre bildirimler göndermek ve işlemleri gerçek zamanlı olarak takip etmek için Event-Driven Architecture kullanılmıştır.

\n\n

5. Apache Kafka Nedir?

\n\n

Apache Kafka, yüksek hacimli veri akışlarını gerçek zamanlı olarak işlemek için kullanılan popüler bir veri akışı platformudur. Kafka, olay tabanlı sistemlerin iletişimini sağlayan güçlü bir araç olarak, EDA ile birlikte etkin bir şekilde çalışır. Kafka’da veri, belirli konular (topics) üzerinden iletilir ve her bir olay ilgili konuya kaydedilir.

\n\n

Kafka’nın özellikleri:

\n
    \n
  • Yüksek Performans: Kafka, büyük miktarda veriyi düşük gecikme süresiyle işleyebilir ve gerçek zamanlı olarak aktarabilir.
  • \n
  • Dağıtık Yapı: Kafka, verilerin yüksek kullanılabilirlik ile birden çok sunucu arasında dağıtılmasını sağlar.
  • \n
  • Olay Günlüğü: Tüm olaylar, belirli bir süre boyunca saklanır ve bu sayede sistem olay geçmişine ulaşabilir.
  • \n
\n\n

Projede Kafka, özellikle olay tabanlı bildirimler ve işlem takibi gibi alanlarda kullanılmaktadır. Örneğin, bir aidat ödemesi yapıldığında bu olay Kafka aracılığıyla bildirim sistemine iletilir ve kullanıcıya bildirim gönderilir.

\n\n

Sonuç

\n\n

Bu projede, apartman yönetimini dijitalleştirirken kullanıcı deneyimini iyileştiren ve veri güvenliğini ön planda tutan bir dizi teknoloji kullanılmıştır. Server Side Rendering, Flyway ile otomatik veritabanı yönetimi, multi-tenant mimari, Event-Driven Architecture ve Kafka gibi özellikler, projenin işlevselliğini ve güvenilirliğini artırmaktadır.



\nWeb Linki \nMobil Linki

Tümünü Gör