İçeriğe geç
pitonmert

portfolio-tracker

ASP.NET Core, React, PostgreSQL ve piyasa verisi entegrasyonu kullanan, kendi sunucunuzda barındırabileceğiniz portföy takip uygulaması.

  • ASP.NET Core
  • React
  • TypeScript
  • EF Core
  • PostgreSQL
  • FastAPI
Varlık dağılımı halkası ve fiyat hareket çizgisi.

Amaç ve Kapsam

Varlık, alım/satım işlemi, nakit bakiye ve fiyat verisini birlikte izleyen kişisel portföy uygulaması. Açık ve kapanmış pozisyonları, işlem geçmişini ve portföy toplamlarını sunar. Fiyat sağlayıcısının kullanılamadığı durumlar için elle fiyat girişi bulunur.

Mimari ve Depo Yapısı

  • PortfolioTracker.API: özellik klasörlerine ayrılmış ASP.NET Core uygulaması; işlemler, varlıklar, fiyatlar ve portföy hesapları.
  • PortfolioTracker.Frontend: React, TypeScript ve TanStack Query kullanan web arayüzü.
  • market-data-service: borsapy sağlayıcısını HTTP üzerinden sunan FastAPI servisi.
  • tests: API entegrasyon testleri; istemci ve Python servisinin testleri kendi dizinlerindedir.

API, EF Core ile PostgreSQL’e erişir. Piyasa verisi entegrasyonu ayrı Python servisinde tutulurken portföy hesaplamaları API içinde kalır.

Çalışma Akışı

Alım ve satımlar Transactions kayıtlarına yazılır. API, varlık bazında işlemleri ve fiyatları kullanarak pozisyon hesaplarını üretir. PortfolioPositions tablosundaki türetilmiş kayıtlar, arayüzün pozisyon ve özet okumalarını besler.

Piyasa fiyatları arka plan işleriyle yenilenebilir veya elle geçersiz kılınabilir. Okuma modeli, işlem ve fiyat kayıtlarından yeniden oluşturulabilir.

Teknik Kararlar

İşlemler asıl veri kaynağı, pozisyon tablosu ise yeniden hesaplanabilir bir okuma modelidir. Böylece sunum için tutulan toplamlar ile orijinal hareketler ayrı sorumluluklarda kalır.

PortfolioCalculations, kalan maliyet üzerinden ağırlıklı ortalama maliyet ve gerçekleşen kâr/zararı hesaplar. Küçük miktar kalıntıları için kapanış toleransı kullanılır. Python servisindeki QuoteService, sembolleri normalleştirir ve hisse/fon sağlayıcısı seçimini API’den ayırır.

Sınırlar ve Doğrulama

Piyasa fiyatlarının erişilebilirliği dış sağlayıcıya bağlıdır. Eksik fiyat, fiyat sözleşmesinde kullanılabilirlik bilgisiyle taşınır; bütün varlıklar için kesintisiz veri garantisi verilmez. Repo kişisel kullanım ve öğrenme amaçlıdır; çok kullanıcılı bir SaaS olarak tanımlanmaz.

API, React ve Python katmanlarında test dosyaları bulunur. Bu incelemede hesaplama kodu ve veri akışı okundu; servisler çalıştırılmadı ve test sonuçları yeniden doğrulanmadı.

Kaynaklar

İnceleme tarihi: 8 Eylül 2026. İncelenen sürüm (9b049a4).