Fatura Takip Sistemi
Fatura Takip Sistemi, Yıldız Holding bünyesindeki Finansal Operasyon Merkezi süreçlerinin yürütüldüğü kurumsal bir web platformudur. Yüzlerce şirket ve binlerce kullanıcı tarafından yoğun şekilde kullanılan sistem; fatura takibi, belge işleme, entegrasyon ve operasyonel finans süreçlerini destekler.
- Kurum / bağlam
- Yıldız Holding
- Kategori
- Web
- Dönem
- 1 Nis 2024 - 1 Mar 2025
Teknolojiler
C# ASP.NET Core Web API 3.1 Entity Framework Core 3.1 SQL Server NLog RabbitMQ Redis RestSharp ZXing Spire PDF Quartz Dapper iTextSharp 5.5 GhostScript TypeScript Angular 8 Azure MSAL Chart.js CryptoJS ExcelJS IV-Viewer PrimeNG FullCalendar HTML CSS JavaScript jQuery Jenkins Docker Docker Compose Git GitLab CentOS OpenShift
Fatura Takip Sistemi, Yıldız Holding bünyesindeki Finansal Operasyon Merkezi süreçlerinin yürütüldüğü kurumsal bir web platformudur. Yüzlerce şirket ve binlerce kullanıcı tarafından yoğun şekilde kullanılan sistem; fatura takibi, belge işleme, entegrasyon ve operasyonel finans süreçlerini destekler.
Proje Bilgisi
- Kurum / bağlam: Yıldız Holding
- Platform: Web
- Dönem: Nisan 2024 - Mart 2025
Proje Türü
- Proje bir full stack web uygulamasıdır.
- Frontend tarafı Angular, backend tarafı ise ASP.NET Core framework’ü kullanılarak geliştirilmiştir.
Mimari Yapı / Sistem Tasarımı
- Proje mimari olarak microservice architecture yaklaşımını kullanır.
- Ana katmanlar App, API, Scheduler ve veritabanı olarak ayrılmıştır.
- App, API ve Scheduler katmanları Docker ile container haline getirilmiş servisler olarak CentOS sunucularda yayınlanır.
- App katmanı, son kullanıcının eriştiği web uygulamasını ifade eder.
- Bu katman ASP.NET Core ile gelen Angular proje şablonu kullanılarak oluşturulmuştur.
- Bu yapı kendi içinde hem client app tarafını hem de bu uygulamanın ihtiyaç duyduğu API tarafını barındırır.
- API katmanı, OnePlus isimli mobil uygulamanın kullandığı servisleri ifade eder.
- Scheduler katmanı, Quartz kütüphanesi ile geliştirilmiş zamanlanmış görevleri içerir.
- Servisler birbirinden bağımsız şekilde çalışır.
- SQL Server veritabanı farklı bir sunucuda konumlandırılmıştır.
- Yoğun kullanım nedeniyle servis trafiğini dengelemek için Nginx ile load balancer kullanılır.
- Kullanıcı oturumları için ayrıca Redis servisi çalışır.
Kullanılan Teknolojiler
- Backend: C#, ASP.NET Core Web API 3.1, Entity Framework Core 3.1, Dapper, NLog, RestSharp
- Frontend: Angular 8, TypeScript, PrimeNG, Chart.js, FullCalendar, HTML, CSS, JavaScript, jQuery
- Veritabanı ve mesajlaşma: SQL Server, RabbitMQ, Redis
- Belge ve dosya işleme: ZXing, Spire PDF, iTextSharp 5.5, GhostScript, ExcelJS, IV-Viewer
- Güvenlik ve kimlik doğrulama: Azure MSAL, CryptoJS, AES, permission based authorization
- Zamanlama ve entegrasyon: Quartz, SOAP, REST, Ocean Middleware
- DevOps ve yayınlama: Jenkins, Docker, Docker Compose, Git, GitLab, CentOS, OpenShift
Öne Çıkan Teknik Detaylar ve Modüller
- Frontend için component based mimari tasarım uygulandı.
- PrimeNG ile kullanıcı dostu arayüzler oluşturuldu.
- Çoklu dil desteği sağlandı.
- Ocean Middleware aracılığıyla SOAP ve REST tabanlı servislere entegrasyon yapıldı.
- XML formatında veri yükleyebilme desteği sağlandı.
- Excel formatında veri yükleme ve çıktı alma işlemleri geliştirildi.
- AES algoritmasıyla belirli request ve response içerikleri şifrelendi.
- Performansı artırmak için stored procedure ve index kullanımları yapıldı.
- PDF uzantılı belgeleri işleyebilme ve gösterebilme özellikleri geliştirildi.
- Zamanlanmış görevler yardımıyla dış servis entegrasyonları sağlandı.
- Azure AD ile authentication süreci yönetildi.
- Permission based authorization özelliği geliştirildi.
- Docker ve Docker Compose desteği sağlandı.
- Jenkins Pipeline ile deployment süreçleri yönetildi.
- OpenShift ile Kubernetes desteği sağlandı.
Katılım Durumu ve Süre
- Proje, ID3 tarafından Yıldız Holding bünyesindeki FOMER için geliştirilmiştir.
- Bu projede yaklaşık bir yıl, Nisan 2024 ile Mart 2025 tarihleri arasında görev aldım.
Proje Yönetimi / Takım Yapısı
- ID3 bünyesinde Yıldız Holding projelerinden sorumlu iki ekip bulunuyordu: Ocean Middleware entegrasyon servisleri ekibi ve Sharks uygulama geliştirme ekibi.
- Ben Sharks ekibinde Yazılım Geliştirme Uzmanı olarak görev aldım.
- Projeye sıfırdan dahil olmadım; yıllardır kullanılan mevcut bir kurumsal sistem üzerinde çalıştım.
- Ekibimde bir İş Analisti / Proje Yöneticisi, Ekip Lideri, Kıdemli Yazılım Uzmanı, Junior Yazılım Mühendisi ve üç Stajyer Mühendis yer alıyordu.
- Stajyer mühendislerden birinin mülakatını yaparak şirkete alınma sürecine dahil oldum.
- Proje yönetiminde Agile metodolojisi kullanılıyordu.
- Müşteriden gelen talepler doğrultusunda Jira üzerinde task’lar oluşturuluyordu.
- Günlük iş bölümü Microsoft Teams üzerinden yapılan daily toplantılarıyla yönetiliyordu.
- Deployment süreci için iki haftalık veya aylık sprintler oluşturuluyordu.
- Sprintlerin tamamlanması sonrasında task’lar Git kullanılarak main branch üzerine merge ediliyordu.
- Branch çakışmaları olduğunda ekibe destek olarak conflict çözümünde aktif rol aldım.
- Deployment akışında önce UAT ortamına yayın yapılıyor, başarılı sonuç ve onay sonrasında prod ortamına geçiliyordu.
- Deployment aşamasını ben yönetiyordum.
- Sharks ekibi dışında müşteri tarafında dört kişilik bir Product Owner ekibi bulunuyordu.
Kişisel Katkılar ve Sorumluluklar
- PrimeNG kütüphanesi ile kullanıcı arayüzlerinin oluşturulmasına katkı sağladım.
- API katmanındaki endpoint’leri OnePlus mobil uygulaması için geliştirdim.
- App katmanının ihtiyaç duyduğu endpoint’leri yazdım ve mevcut endpoint’lerde refactor çalışmaları yaptım.
- XML formatında veri yükleme işlemlerini geliştirdim.
- ZXing, Spire PDF, iTextSharp ve GhostScript ile PDF belgelerinin işlenmesi, görüntülenmesi ve farklı formatlara çevrilmesi süreçlerinde çalıştım.
- Excel formatında veri yükleme ve dışa aktarma işlemlerini geliştirdim.
- Harici SOAP ve REST entegrasyon servisleri için zamanlanmış task’lar yazdım.
- Projenin Docker ile containerize edilmesi ve farklı ortamlarda yayına alınması süreçlerinde görev aldım.
- Stajyer mühendislerin mülakat ve eğitim süreçlerine destek verdim.
- Versiyon kontrolünde oluşan branch çakışmalarının giderilmesine yardımcı oldum.
- Gerekli request ve response içeriklerinin şifrelenmesi için middleware geliştirdim.
- Permission based authorization özelliğinin yazımı ve sisteme entegre edilmesi süreçlerinde görev aldım.
Yayın / Deployment Bilgisi
- Proje, Yıldız Holding bünyesindeki şirketlerin kullandığı internal bir sistem olduğu için dış dünyaya açık değildir.
- Platforma erişim yalnızca şirketin sunduğu VPN bağlantısı ile sağlanmaktadır.
- Yayınlama işlemleri şirketin on-premise CentOS işletim sistemli sunucularında gerçekleştiriliyordu.